An increasing amount of work is being done on phones and tablets. Employees often use their mobile devices for both personal and professional reasons – installing work apps alongside their personal apps on their phones. At Nintex, our mobile apps are used throughout many enterprises and we aim to provide features that make it easy for businesses to deploy our apps to their employees’ devices.
Enterprise mobility management (EMM) has become an important strategy for companies to help manage and secure corporate data on employee-operated devices. Mobile device management (MDM) helps enforce and monitor device security policies, while mobile application management (MAM) provides ways to enforce data security at the application level.
As developers of mobile software, providing features that support customizable and convenient rollouts of our apps via MDM is possible using iOS and Android APIs provided by each operating system. Managed application configuration is a tool supported by most MDM platforms that allows us to provide additional options for IT admins deploying our apps.
What is a managed app configuration?
Managed app configuration is a system feature that iOS and Android apps can integrate to provide IT admins with configurable app properties that can be deployed via MDM. By exposing keys and values that your app supports configuring through MDM, you give more convenience and customization to customers deploying your software to their users.
For example, you could allow IT admins to configure the company-specific login domain of the app so that their employees don’t have to manually enter it after installing the deployed app. Or you could give the option for IT admins to disable a certain feature for their business users so they never see it when running your app.
Configuring these options remotely is then as simple as providing known keys and values in a chosen MDM solution to send to the app.
How to implement managed app configuration
Let’s look at a quick example of providing app configuration in a native iOS application.
Our pretend app allows users to view a list of customer feedback. These messages may contain links, and the default behavior for our app is to simply launch the system browser when a user taps a link in a messages.
We recognize that some companies may prefer to disable this behavior for security reasons so we will provide an app configuration setting that they can set when deploying our app via MDM.
In iOS, managed configurations are received via the UserDefaults API, stored under the com.apple.configuration.managed key. When our app receives an updated configuration from an MDM, we can observe these changes and check for known keys/values to adjust the app’s behavior accordingly.
Our example RemoteConfigurationManager class simply observes changes to the managed app configuration and changes our global allowOpeningLinksExternally setting if the configuration key and expected value type have been received.
Then, when we decide to open an URL externally, the managed setting is respected:
You can see from this example that it’s quite easy to provide IT admins with additional customization when deploying your app to their enterprise via MDM.