Types of Genero Mobile apps

A mobile app is an app that runs on a mobile device, such as a tablet or a phone. There are different types of mobile apps.

When you are developing your app, and you execute the app on your development machine for display on a device or emulator, you are running the app in development mode.

When you follow the procedure to deploy your application to the device for testing or to distribute your app to your end users, you have a deployed app. A deployed app might be an app that executes irrespective of network availability, it might be an app that accesses device peripherals, it might be an app that requires network access.

Here are the categories, or application types, for deployed apps.

Standalone apps

A standalone app has the DVM and display client entirely on the mobile device. This app executes irrespective of network availability and can access device peripherals such as the camera, contacts, email, calendar, GPS, and storage via exposed APIs (front calls). For database needs, this app can only connect to a local SQLite database.
Note: The DVM refers to the dynamic virtual machine, which is the process that runs the app.
Diagram showing both Genero Mobile Client and DVM on mobile device.

Figure 1. Standalone app

Partially-connected apps

A partially-connected app has the DVM and display client entirely on the mobile device, yet this app includes items that require a network connection. This app must be able to run when no network connection is available. This app uses a network API to talk to any back-end.

Examples include:
  • Web Services performed with JSON over HTTP; use RESTful methods to write data synchronization routines. With this example, business logic executes within the device’s Virtual Machine and the user is able to store captured data to a local SQLite database. When the network becomes available, the user synchronizes the stored data with the remote server’s database.
    Note: As of Genero Mobile 1.1, you can also write a Web Service using SOAP.
  • A web component that runs Google Maps.

This app first operates without a network connection, and must be able to run without a network connection. Once network connectivity is restored, the app can perform network-dependent tasks such as synchronizing with a remote database, make a web service call, or use a web component.

If you are using GMI, and the device goes into standby mode, the application does not run in the background and activities with the network are suspended.

Diagram showing mobile device with both Genero Mobile Client and DVM on one side, web server with DVM and DBMS on the other side. Communication is bi-directional using JSON http over wireless.

Figure 2. Partially-connected app (example showing data synchronization via JSON)

Client-server apps

With a client-server app or connected app, the bulk of the app runs on a remote server and the display client sits on the mobile device.

As with any deployed app, this app first starts on the mobile device; the DVM for the deployed app runs on the mobile device. The role of the deployed app, however, is to connect to a remote corporate server as an online terminal. It is the deployed app that launches the remote application using the runOnServer frontcall. The remote application's DVM and business logic reside on the remote server, somewhere in the network. The remote application is not limited to a SQLite database.

In the event that the network is interrupted, the Genero Mobile client app is suspended until service resumes.

Diagram showing mobile device with Genero Mobile Client one side, web server with Genero Application Server and DVM on the other side. Communication is bi-directional using http over wireless.

Figure 3. Client-server app

See Running mobile apps on an application server in the Genero Business Development Language User Guide for more information.