How It Works


1. Architecture modelling

UbiqMobile application consists of one or more components connected via interfaces. The components can be of the following types:

  • User application components that serve mobile users’ sessions. Components of this kind are similar to the traditional UI-based mobile applications.
  • Service application components that permanently exist in the system, don’t correspond to user sessions and have no UI.
  • Standard library components of different types (such as persistent data access, authentication, etc).

The component structure of the application is determined by graphical architectural diagram that can be created and edited by visual architectural designer within UbiqMobile SDK. Some preinstalled architectural templates for typical application architectures are included into SDK as well.

2. Initial code generation

When architecture diagram for the application is created, UbiqMobile solution should be built. During building process, a set of C# subprojects is automatically generated – one project per each non-library component from the architecture diagram.

For each component, initial C# source template containing system classes initialization and interface-related code, is automatically generated.

For components representing mobile users’ sessions, default blank UI forms are automatically generated as well.

3. Creating UI

UbiqMobile provides flexible UI model for the applications that doesn’t depend on client devices’ form factors. Mobile screen forms are stored in the resource files of special type (.ubiqml) inside the appropriate subprojects. For external representation of UI forms, custom xml-based format (ubiqml) is used that is close to XAML format in its logical structure.

To view and edit UI elements, UbiqMobile SDK provides Visual UI Designer tool. UI controls can be edited either in visual mode or in text mode within this tool. All changes in UI controls are displayed synchronously in both visual and textual (.ubiqml) views.

4. Adding custom business logic

To implement business logic of your application, you should add your custom code to each non-library component of the app. Initially the subprojects already contain source C#-files with automatically generated initial code. That code includes initialization of system objects and definitions of the interfaces specified in the appropriate component. For adding custom code, a separate automatically generated source file (UserSection.cs) is specially purposed. If one source file is not enough for the business logic of the component, it is possible to add other source files to the project. All sources containing custom code remain untouched during automatic re-generation of the subprojects.


With UbiqMobile, you can debug your application in emulation mode, just like you do it in native mobile IDEs. In UbiqMobile SDK, when you press “Debug” button in the IDE, server and client emulators are launched. Both emulators are already configured to run the developing application. The client emulator can simulate various types of mobile devices with different form factors (more than 10 screen size patterns are available, including vertical/horizontal orientation models). For debugging multi-user applications, multiple devices of different types can be simulated within single emulator instance.

Both server and client emulators are integrated with Visual Studio debugger so one can debug the application in traditional way, setting up breakpoints and going through the application step-by-step.

In practice, up to 90% of debugging work can be done in emulation mode without deploying the application onto real mobile devices.


1. Deploying server-side application components

The majority of the application business logic and data processing is concentrated in server-side components.

Server components of the applications can be hosted

  • In public cloud (by default – Microsoft Azure)
  • In private cloud
  • On dedicated server

Within UbiqMobile SDK, server part of application can be deployed onto the server in one click.

2. Access your application from mobile device

To access your application from the mobile device, two types of mobile clients can be used:

  • Universal container application
  • Individual “personalized” applications

The universal container is a thin mobile client that provides access to multiple UbiqMobile applications. Once client of this type is downloaded from the appropriate mobile app store and installed on the mobile device, it provides universal access to all UbiqMobile application deployed onto the cloud or dedicated server. All available applications are listed in the directory so you can switch between them from the mobile device at any time.

Another way is to create individual mobile clients for each application developed. Just customize universal mobile client component using special SDK wizard tool and send request to the remote build service that automatically builds mobile clients for the selected mobile platforms and sends back set of binary executables (.apk, .xap, .jar files, etc.) that can be signed and published in the appropriate mobile app stores.