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 AppConnect components are managing the app.

  • AppConnect Not Available

  • AppConnect is not yet available on the device because the Ivanti client app is not yet installed on the device. The app runs as a regular app. If the Ivanti 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 Ivanti client app is installed. The reason is that users often launch the app before installing the Ivanti 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 Ivanti 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.

Figure 1. Dual-mode app state transitions