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.
Figure 1. Standalone app
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.
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.
Figure 2. Partially-connected app (example showing data synchronization via JSON)
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.
Figure 3. Client-server app
See Running mobile apps on an application server in the Genero Business Development Language User Guide for more information.