Skip navigation
All Places > AppStudio for ArcGIS > Blog > 2019 > March
2019

The AppStudio Framework (AppFramework) provides QML components used when creating apps in AppStudio for ArcGIS. AppFramework library of components is unique in that it has features and capabilities that are neither natively provided by the underlying Qt framework nor the ArcGIS Runtime but are necessary and commonly used for developing apps. We are excited to share new features and enhancements added to AppStudio 3.3 beta release with you in this blog post.

 

Support for AppConfig and Enterprise Mobile Management (EMM)

We have included a new AppFramework.Management plugin to support Enterprise Mobile Management (EMM), which allows you to manage and secure your apps and data across mobile devices. Please check this blog post for more information.

 

Browser View Component Enhancements:

We have introduced BrowserView component in the previous release, which brings you a full Safari web browser experience for iOS devices, we have been continuing working on BrowserView to support Chrome web browser experience for Android. Besides, you can customize the native browser view (Safari and Chrome) by changing the background and controls color with newly introduced primaryColor and forgroundColor properties in the BrowserView component. The following code snippet demonstrates how to define the BrowserView component and invoke a browser view.

 

 

import ArcGIS.AppFramework.WebView 1.0

Button {
   anchors.centerIn: parent
   text: qsTr("Open BrowserView")
   onClicked: {
   browserView.show()
     }
  }

BrowserView {
  id: browserView
  anchors.fill: parent
  primaryColor:"#8f499c"
  foregroundColor: "#f7d4f4"
  url: "https://www.esri.com/en-us/arcgis/products/appstudio-for-arcgis"
   }

  

Browser View Sample

Browser View Sample is available on AppStudio Desktop and AppStudio Player. To find this sample in AppStudio Desktop, first, launch AppStudio Desktop > click on the New App button > click on Search icon > type Browser View. You can also find the Browser View sample in the AppStudio Player, launch Player on your mobile device > go to Samples page > search for Browser View. 

                

                                                  Browser View Sample (available on AppStudio Desktop and Player)

 

Support for changing status bar color and theme 

We have introduced a new StatusBar component in ArcGIS.AppFramework.Platform plugin, which provides you access to manage the appearance of the status bar such as changing status bar color and theme color. In addition, we have also created a new AppLayout component, which can handle various heights of the status bar across devices especially devices with a notch. It should be used along with the StatusBar component.  You will need to set your App object as the contents of the delegate property within an AppLayout object. The sample code below demonstrates how to use AppLayout component.

 

import ArcGIS.AppFramework.Platform 1.0
AppLayout {
    width: 480
    height: 640
    delegate: App {
        id: app
           ...
    }
}

 

Note: Status bars are not displayed by default on these devices; it first has to be enabled by setting the property display.statusBar to true in the app's appinfo.json

 

                           

                                                    Status bar sample (available on AppStudio Desktop and Player)

 

 

DocumentDialog component enhancements

DocumentDialog component was introduced from the last release, it allows access your device's native document picker and returns a selected file path. With AppStudio 3.3 beta, we have improved the DocumentDialog preference by adding restrictions while selecting files only available on the device's local storage. 

 

Note: You will need to declare your app needs storage permission for Android when using DocumentDialog to access external resources and information. AppFramework provides a FileFolder component, which can invoke storage permission dialog. For example, you can include the following code into your app.

 

// Show storage permission pop-up on Android 
FileFolder {
        id: fileFolder
        path: AppFramework.userHomePath    }
 
    Component.onCompleted: {
        fileFolder.makeFolder()
    }

 

Also, please don’t forget to enable external storage capability in the AppStudio Desktop > Settings first.

DocumentDialog Sample 

We have implemented the Document Dialog feature into an existing "Edit Feature Attachments" sample app. When you try to add a new attachment, a native document picker will open, which is invoked by the DocumentDialog from AppFramework Platform plugin.

 

                             

                                               Edit Feature Attachment sample (available on AppStudio Desktop and Player)

 

                                                       

 

AppFramework.checkCapability enhancements

AppFramework.checkCapability() now supports BackgroundLocation as a capability to determine whether it is enabled in runtime.

 

You can try above new features and enhancements from AppFramework with AppStudio Desktop and Player version 3.3 beta, AppStudio Desktop 3.3 beta is available at Early Adopter Community and AppStudio Player 3.3 beta is available at Apple's TestFlight and Android Beta Program.

 

The API References of above new features and enhancements are available at Qt Creator help documentation included with the AppStudio Desktop 3.3 (Beta) install.      

 

We hope you enjoy all the new features and enhancements added to the AppFramework. For bugs or other issues, you may find, please submit a bug report or join the beta forum to provide feedback. You can also send us an email to appstudiofeedback@esri.com.

 

Become an AppStudio for ArcGIS developer! Watch this video on how to sign up for a free trial.

 

Follow us on Twitter @AppStudioArcGIS to keep up-to-date on the latest information and let us know about your creations built using AppStudio to be featured in the AppStudio Showcase.

 

The AppStudio team periodically hosts workshops and webinars; please click on this link to leave your email if you are interested in information regarding AppStudio events.

Managing the safety and security of mobile devices, apps and data in your enterprise network is now more important than ever. With AppStudio 3.3 Beta we have added support for managed app configuration, also known as AppConfig, when managing and deploying your apps through your Enterprise Mobility Management solution.

  

What are EMMs and MDMs?

Enterprise Mobility Management (EMM) is a set of people, processes and technology focused on securely and efficiently managing systems and devices (desktop, server, and mobile). This includes setting policies, pre-configuring settings, applying restrictions, deploying apps, and setting profiles and assignment policies to deliver apps to your managed devices. The management of mobile devices is one of the many components available as part of an EMM solution.

  

There are a number of Mobile Device Management (MDM) solutions that can help you implement your EMM solution for managing your enterprise mobile devices, and these MDM solutions include support for what is known as Mobile Application Management (MAM). Here are just a few of the available MDM solutions that many of the Esri apps have already been tested and deployed with: VMware AirwatchMicrosoft Intune, MobileIron Cloud, Samsung Knox, Citrix XenMobile, IBM MaaS360, Cisco Meraki.

  

What is managed app configuration?

Managed app configuration allows apps to be remotely configured through an EMM solution. In order to use managed app configuration, the app must be installed on the device and managed via an MDM solution. While managed app configuration is a feature supported by most of the popular MDM providers, it's best to check with your provider if this feature is supported.
  
In general, MDM providers support AppConfig using key-value pairs. In AppStudio we are following the guidelines found within the AppConfig community's xml standard specification for iOS, Windows, MacOS and Linux. On Android, we support Android's Restriction Manager xml spec.
  
Note: Currently, managed app configuration in AppStudio is only supported on iOS and Android platforms.
  
Adding managed app configuration settings in your MDM

Below is an example of how to set the key-value pairs when creating an assignment, from within the VMware AirWatch MDM console:

  

  

How to read the managed app configuration settings in an AppStudio app

In AppStudio 3.3 beta we have added a new plugin called AppFramework.Management which needs to be imported for your apps to read the settings provided by the MDM. This plugin contains a ManagedAppConfiguration singleton component that provides access to policyDefaults, which are the default key-value pairs the app honors and policySettings which is the list of configured key-value pairs the MDM provides.

  

Defaults

In order to specify the defaults that your app supports, you can use the following new appinfo properties:
  
"management": {
        "android": {
            "restrictionFile": "restrictions.xml"
        },
        "configurationSchema": "specfile.xml"
    },
  
Settings
To make reading policy defaults and settings easier, we have also provided two new helper methods: value and defaultValue. They work by fetching either the default value of the app or the settings value that the MDM has provided with the given key.
  
For instance, this is how your AppStudio app would read the portalUrl and portalName keys specified by the MDM in the above example:
  
Connections {
        target: ManagedAppConfiguration
        onPolicySettingsChanged : {
            portalName.text = ManagedAppConfiguration.value("portalName", false, "ArcGIS");
            portalUrl.text = ManagedAppConfiguration.value("portalUrl", false, "www.arcgis.com");
        }
        onPolicyDefaultsChanged : {
            defaultPortalName.text = ManagedAppConfiguration.defaultValue("portalName");
            defaultPortalUrl.text = ManagedAppConfiguration.defaultValue("portalUrl"); 
        }
    }
Note: AppStudio for ArcGIS 3.3 beta downloads are available through the Early Adopter Community.  
Using the sample app
A new sample app called "Managed App Config" which demonstrates all of the above configurations is now available for you to try. You can find this sample app in the latest AppStudio Desktop edition:
  
1.   Launch AppStudio Desktop
2.   Select New App
3.   Select the Search Icon
4.   Type: Managed App Config
5.   Select the "Managed App Config" sample
  
                                                                         Managed App Config sample app 
  
Please try out this new feature with your favorite MDM provider and give us your feedback by leaving your comments below or email us at appstudiofeedback@esri.com.
  
To find out more about Esri’s ongoing efforts to support our customers implementing EMM solutions, you may also be interested in reading about Mobile Application Management and Esri’s Field Apps. Additionally, for more information about Esri's approach to Mobile Application Management, please read our ArcGIS Secure Mobile Implementation Patterns on the ArcGIS Trust website.

Templates downloaded from AppStudio desktop have been updated to work with the AppStudio 3.3 beta. The AppStudio website will be updated when version 3.3 goes final. These updates include:

 

  •       Quick Report supports multiple feature layers
  •       All templates now supports Qt 5.12
  •       Support for Hindi language for all templates
  •       Bug fixes and minor UI improvements

  

Quick Report

 

  • Quick Report now supports multiple feature layers (configurable with AppStudio Desktop only) from a single feature service in the template. This has been one of the top enhancement requests over the past year. When configuring multiple feature layers, you can now have a mix and match of different geometry types. For example, you can configure one or more point feature layers, polyline and/or polygon feature layers in the same app while allowing end users to collect desired field data across different layers or geometries on the fly.

 

      How to configure multiple feature layers? -  First, you need to configure multiple feature layer IDs in the        AppStudio desktop template app Settings. E.g. in the wildfire feature service (currently the default feature service for       the template) if you want to include all three layers, you need to add the Layer IDs as “0,1,2” in the AppStudio       Desktop > Settings > Form > Layer IDs of the feature service field (see screenshot below). 

 

 

 

      When you run the app, you will see a new Report Galley page (see screenshot below), which includes the                      configured feature layer options in it. You are allowed to add as many layer IDs as you want as long as they are       hosted under the same feature  service. This will work with both secured and public feature services.

 

 

  • Known issues – If you experience crash right after submitting the report in your existing Quick report application based on version 3.2 template or before, please update your app using the Quick Report 3.3 template code. 

 

Map Viewer

 

  • Bug fixes and enhancements
  • Known issues – If you experience crash when accessing web maps in your existing Map Viewer application within the latest AppStudio 3.3 Desktop or Player, please update your app using the Map Viewer 3.3 template code. As this issue has been fixed.

 

Map Tour

 

  • Number of bug fixes and small improvements have been made under the hood.

 

 

Please feel free to test and provide your feedback through the GeoNet or emailing the team at appstudiofeedback@esri.com.

 

 

Become an AppStudio for ArcGIS developer! Watch this video on how to sign up for a free trial.

 

Follow us on Twitter @AppStudioArcGIS to keep up-to-date on the latest information and let us know about your creations built using AppStudio to be featured in the AppStudio Showcase.

 

The AppStudio team periodically host workshops and webinars; please click on this link to leave your email if you are interested in information regarding AppStudio events.