Dual-mode app states

An app must maintain a dual-mode state that indicates whether it is behaving as an AppConnect app or a regular app. It stores this state persistently, so that when it next launches, it knows how to behave. The possible states are:

Undecided

The app has initialized for the first time and has not yet decided whether to run in AppConnect Mode or Non-AppConnect Mode.

AppConnect Mode

The app is running as an AppConnect app. It supports the AppConnect features, such as authorization, data loss prevention, and secure file I/O.

In AppConnect Mode, the app can change state only to Non-AppConnect Mode, and only if the app user requests the change using a user interface provided by the app.

Non-AppConnect Mode

The app is running as a regular app.

In Non-AppConnect Mode, the app can change state only to AppConnect Mode, and only if the app user requests the change using a user interface provided by the app.

Pending AppConnect Mode

The app changes to this state if the device user explicitly requests a change from Non-AppConnect Mode to AppConnect Mode using the app’s user interface. For example, device users in an enterprise sometimes have installed and used an app before the enterprise requires it as an AppConnect app. In this state, the app is waiting for a notification from the AppConnect library to find out whether MobileIron AppConnect components are managing the app.

AppConnect Not Available

AppConnect is not yet available on the device because the MobileIron client app is not yet installed on the device. The app runs as a regular app. If the MobileIron client app is later installed, on subsequent launches the app will decide whether to run in AppConnect Mode or Non-AppConnect Mode.

It is important for an app to delay its decision to run in AppConnect Mode or Non-AppConnect Mode until after the MobileIron client app is installed. The reason is that users often launch the app before installing the MobileIron client app. If the app decides on Non-AppConnect Mode, it can not leave that state without user actions, such as using an app-provided user interface, or re-installing the app. The AppConnect Not Available state allows apps to automatically change to AppConnect Mode when re-launched after the MobileIron client app is installed.

The following diagram summarizes the state transitions that a dual-mode app implements. See High-level dual-mode app behavior for more information about these state transitions.