Skip navigation
All Places > AppStudio for ArcGIS > Blog > Author: TJin-esristaff
AppStudio for ArcGIS Desktop Edition provides feature-rich development tools to allow you further configure, customize, test, distribute, and build your apps easily and quickly. Many new features and enhancements are introduced in this release, as well as some key upgrades to the frameworks that you build your apps with. 
Upgrade ArcGIS Runtime to 100.2.1 
ArcGIS Runtime powers GIS capabilities in your applications and is fully supported by AppStudio. In this release, ArcGIS Runtime version has been updated from 100.1 to 100.2.1, which means all of the exciting new and powerful features, bug fixes, and enhancements added to ArcGIS Runtime 100.2 and 100.2.1 are available in AppStudio 3.0.
Upgrade Qt to 5.10
Behind the scenes, the underlying Qt framework has been upgraded from 5.9.1 to 5.10, which enables you to take advantage of new functionalities and enhancements received in Qt 5.10, such as new QML types and styles in Qt Quick Controls 2, a finalized Text-to-Speech module, an updated Qt WebEngine, and so much more. You also benefit from more than 100 bug fixes in Qt 5.10.   
Deprecations
AppStudio 2.1 will be the last release to support ArcGIS Runtime for Qt 10.2.6. If you wish to continue building apps using 10.2.6, please do not update your version of AppStudio to 3.0. AppStudio 3.0 will drop support for 32-bit iOS apps to help optimize an app’s performance on supported devices as well as conserve your device memory.  Please refer to this blog post for more information about deprecations. 
AppFramework.Dialogs plugin has been deprecated in AppStudio 3.0.  You will need to remove ArcGIS.AppFramework.Dialogs import statement to continue running the app.  
 
Note: This will not cause further issues for the apps that contain Dialogs plugin such as Quick Report, as the app only imported the plugin, and no longer used anything it provided.
To remove ArcGIS.AppFramework.Dialogs import statement from your existing Quick Report:
1.     Click Edit button to run Qt Creator 
2.     Navigate to CameraComponent.qml file
3.     Remove line 14 import ArcGIS.AppFramework.Dialogs 1.0 
       
 
Categorize sample apps 
Work has continued to make the sample searching experience as easy as possible. In this release, we have added a new combo box to categorize more than 60 samples in the New App dialog. With this improvement, you can now easily find a sample that you want to use based on its functionality.
   
New Samples and Layout 
We have added seven new samples (WMS Layer, Feature Layer shapefile - requires ArcGIS Runtime Standard License, GNSS Info, Replicator, SD Card, Network Check, OAuth + Biometric Authentication) and a Quick Capture enterprise template in this release to help you develop your own applications. The newly added ArcGIS Runtime samples demonstrate enhancements and GIS capabilities added to ArcGIS Runtime 100.2 and 100.2.1. You can also see how to connect to high-accuracy GPS receivers and read accuracy parameters from the GNSS Info sample app.  OAuth + Biometric Authentication sample uses OAuth 2.0 to log in to ArcGIS Platform.  It also implements the Secure Storage and the Authentication plug-ins.  
                   
Cloud Make improvements
With AppStudio 3.0, Cloud Make tool now supports newly introduced iOS application distribution mechanisms, such as distributing through the App Store, to members of your team, to your own organization, or to designated devices.
  
This release also introduces the ability to see the current status of cloud Make builds. Clicking on the notification bar on the cloud Make tool dialog will take you to the Active Cloud Builds view, where you will be able to see the progress of your builds on specific platforms. In addition, Could make Make error messages will be detected and reported to the notification bar.    
AppStudio Desktop 3.0 has deprecated ArcGIS Runtime 10.2.6; however, for users who have existing old Runtime app, can still use Could Make environmental to build old Runtime apps with AppStudio Desktop 2.1.   
Settings dialog UI improvements 
URL Schemes let you launch other apps from your app and as of iOS 9, the URL Schemes need to be whitelisted. We have added UI in the Advanced Settings dialog to allow you to specify launch URL Schemes.  
           
While adding support for the high accuracy GPS receiver, we also introduced a new field in the Advanced Settings dialog for specifying External Accessory Protocol Strings. This is needed for iOS apps, to provide a list of third-part external accessories that have whitelisted your app.
              
The Settings tool now provides the option to enable or disable multiple instances for Windows and Linux apps.
Image
      
Other enhancements 
·        Searching for an app using hashtags is no longer case-sensitive
·        Slovenian language support
·        Support for background external accessory property in appinfo, if High Accuracy Location is enabled in Settings.
·        Support for the new Android Runtime Permission Model
·        Upgraded toolchains (Visual Studio 2017, XCode 9)
·        Improved logging and error handling for Windows builds
 
We hope you enjoy the new features and enhancements added to Desktop in this release. A blog post on what’s new in Map Tour template is coming soon. 
Click this link to find all the blog posts related to the 3.0 release of AppStudio for ArcGIS. 
 
The Map Viewer template app allows you to view public or secured web maps in a native app.  You can also download and view Mobile Map Packages (MMPKs) in your Map Viewer app for offline use.  We are excited to announce the new features and enhancements that are introduced in this release.
 
Upgrade ArcGIS Runtime SDK to 100.2.1
 
ArcGIS Runtime level has been upgraded from 100.1 to 100.2.1, which means that new features added to Runtime 100.2 and 100.2.1 are also available in Map Viewer. This includes support for MMPKs containing Vector and Raster tile packages and Raster datasets. 
Note: An ArcGIS Runtime Standard license is required for accessing MMPKs that contain Raster datasets
Measure tool (NEW)
This release also adds a new Measure tool, letting users draw polylines or polygons on the map to measure distance or areas.  You can also set measurement units in the app to return different results.
                    
Secure Storage
Map Viewer just got safer and more powerful with the implementation of encrypting tokens and sensitive information into the system using the Secure Storage plugin
 
The sensitive information will be stored in the Keychain on macOS and iOS devices,the Keystore on Android devices, the Credential Locker on Windows devices, and in a keychain.ini file on Linux devices.   
Biometric authentication support (NEW)
With this update, we have implemented the Authentication plugin in conjunction with the Secure Storage plugin to allow you log into Map Viewer quicker and safer.  You can now log into Map Viewer through fingerprint scan on iOS, MacOS, and Android devices.  Additionally, Face ID is also supported for iPhone X users.  
                    
 
 
 
Better offline experience 
Since announcing support for offline mobile map packages (MMPKs) in the AppStudio 2.1 release, we have been continuing work on this feature for providing you a better offline experience. To help you manage your mobile data usage,  a warning message will be displayed when you are trying to download a MMPK using cellular data. We also introduced a Clear Cache button on the Menu page to remove downloaded MMPKs to help conserve your device’s storage capacity.  Previously, you were also required to sign into your portal or organization to download and view MMPKs. However, you may now choose to skip sign in to access MMPKs which are created using the ArcGIS Pro Publisher Extension and have the Enable Anonymous Use property enabled.
                   
New options in Gallery page to show online maps only, offline maps only, or both
We want to give you more control over your Map Viewer configuration. The list of items in the Gallery page can now be filtered to display web maps only, MMPKs only, or both web maps and MMPKs.  To do this, start AppStudio Desktop, open the Settings dialog when your Map Viewer app is selected, select Gallery, scroll down to the Maps to Show in Gallery and select the desired type of maps you would like to show.
Note:  You will need to sign into your portal or organization to download and view offline maps.  To display Sign In button on the Map Viewer Start page, you need to have Support secured maps enabled, which can be done in Settings > Map Viewer Properties > Gallery 
            
                  
 
Other enhancements 
·        Geosearch results are now displayed based on distance from the device location
·        Supports identifying features in a feature collection 
·        The back button on Android devices now moves the user to the previous page, rather than exiting the app
·        UI has been updated to support the iPhone X resolution
 
We hope you enjoy the updates to Map Viewer, available by creating a new template app on the AppStudio website or AppStudio Desktop. What’s new in Map Tour 3.0 blog post is coming soon!
Note: Map Viewer template includes ArcGIS Runtime functionalities, please do not forget to set your ArcGIS Runtime license before deploying your app into production.  AppStudio Desktop is capable of automatically generate a free Runtime Lite license for you (Settings > Advanced Settings dialog > Set Lite license).   
                
 
Click this link to find all the blog posts related to the 3.0 release of AppStudio for ArcGIS. 
The quick report template app allows you to collect and submit data and attachments to a public or secured feature service, be it point, polyline, or polygon hosted on ArcGIS  or your own Enterprise.  We’re excited to share the new features and enhancements added to Quick Report version 3.0 with you.  
               
Quick Report version 3.0 highlights 
Ability to rename video attachments 
The Quick Report template gives you the ability to record video and audio as attachments to the feature service.  In this release, we have added the ability to rename video attachments in Quick Report app.
Note: Recording of video and audio is disabled by default. To enable these features, in AppStudio Desktop, open Settings > QuickReport Properties > Forms and scroll down to the Enable video recorder (BETA) and Enable audio recorder (BETA) buttons.
                               
New status message while uploading multiple attachments 
The upload page messages have been improved greatly in this release.  If multiple attachments are created for a report, each attachment uploading status will be reported separately on the Results page. 
               
Ability to limit maximum attachment number 
Previously, users could provide up to six attachments for each report to feature service.  We have been actively listening to your feedback and provided a new property to specify the maximum number of attachments to upload.  To set this property, open AppStudio Desktop, select your Quick Report app, open Settings QuickReport Properties Form, scroll down and choose a Maximum allowable number of attachments.      
                                       
Sort coded value domains alphabetically 
One of the most requested enhancements we got is to allow sorting Coded Value Domains alphabetically. In this release, we have introduced a new property, sortDomainByAlphabetical, to give the ability to change the Coded Value Domain in alphabetical order.  By default, sortDomainByAlphabetical is set to false, meaning the domain order is the original order based on the feature service. The property sortDomainByAlphabetical needs to be set to true to sort the domains alphabetically. To do this, start AppStudio Desktop > Click on the Edit icon to open Qt Creator, navigate to the appinfo.json file, and change sortDomainByAlphabetical to true.
             
Data Usage warning
To help you manage your mobile data usage,  a warning message will be displayed when you are trying to download an MMPK using cellular data.  
                
Other Enhancements
Other improvements made to Quick Report for the AppStudio 3.0 update include:
1.      ArcGIS Runtime version has been updated to 100.2.1 
2.      A scroll bar has been added to the Select Type page
3.      Update UI to support iPhone 8 and iPhone X
Note: the ArcGIS.AppFramework.Dialogs has been deprecated with 3.0 release.  You will see following error messages when running an existing Quick Report app created before 3.0 release (April 20th) on AppStudio 3.0.  
If you built a Quick Report app on AppStudio Website, please update Quick report template to version 3.0 by creating a new one.  If you built a Quick Report app on AppStudio Desktop, you need to remove ArcGIS.AppFramework.Dialogs import statement.  To do this:  
   1.     Click Edit button to run Qt Creator 
   2.     Navigate to CameraComponent.qml file
   3.     Remove line 14 import ArcGIS.AppFramework.Dialogs 1.0 
         
Note: Quick Report template includes ArcGIS Runtime functionalities, please do not forget to set your ArcGIS Runtime license before deploying your app into production.  AppStudio Desktop is capable of automatically generate a free Runtime Lite license for you (Settings > Advanced Settings dialog > Set Lite license).   
                
We hope you enjoy the updates to Quick Report and if you are curious about what’s new in Map Viewer, watch out for next blog post! 
Click this link to find all the blog posts related to the 3.0 release of AppStudio for ArcGIS. 

We are excited to announce that AppStudio for ArcGIS version 3.0 is now available to download.  This release focuses on upgrading underlying Qt framework, build infrastructure and the ArcGIS Runtime.  In addition, many new features and enhancements are added to AppStudio Desktop, Player, AppFramework, and three templates.

Few highlights of AppStudio 3.0 release:
  •  Underlying Qt framework has been upgraded to 5.10
  •  ArcGIS Runtime has been up upgraded to 100.2.1
  •  Sample apps available in AppStudio Desktop are now categorized
  •  Player now uses an app’s ArcGIS Runtime license if available 
  •  Map Tour template supports Mobile Map Packages, allowing it to work fully offline
  •  New Measure tool was introduced in Map Viewer template
  •  You can now limit the maximum attachments number for the Quick Report template 
  •  Support for connecting to high-accuracy GPS receivers and location accuracy parameters 
 
You can get the latest version of AppStudio for ArcGIS here.  Don’t forget to update the AppStudio Player app on your mobile devices from iTunes and the Google Play store or on your desktops from here.
                                                             AppStudio 3.0 new feature highlights 
AppStudio Desktop 
With this release, ArcGIS Runtime version has been updated from 100.1 to 100.2.1, which means all of the exciting new and powerful features, bug fixes, and enhancements added to ArcGIS Runtime 100.2 and 100.2.1 are available in AppStudio 3.0.  We also discontinued support for ArcGIS Runtime 10.2.6 on AppStudio Desktop; please read this blog post to learn more about this deprecation.  Additionally, we have improved the sample searching experience by adding a new combo box to categorize more than 60 samples.  Many enhancements are added to the cloud Make and Advanced Settings tool as well.  A blog post on what’s new in AppStudio Desktop is coming soon, so watch out for it!
               
                                                                  AppStudio samples are categorized 
AppStudio Player
As of the AppStudio 3.0 release, ArcGIS Runtime 10.2.6 and iOS 32-bit apps are no longer supported. This means the latest Player 3.0 available in the app stores will only run Appstudio apps built with the new generation of ArcGIS runtime 100.x. 
Just in case, if you still have apps that are built using the old generation of ArcGIS Runtime 10.2.6 that need to be tested we have released Player Classic separately in both Apple app store and Google play store.
Note that Player Classic doesn’t include new changes added to 3.0 release. Also, you are required to download and install Player Classic separately. You can install both Player classic and latest player both on the same device if needed.  
The existing Player in the app stores will be updated with all the new features and enhancements added to 3.0 release, such as supporting fingerprint login on Android and Face ID login on iPhone X, and applying for an app’s ArcGIS Runtime license when being run in Player.  Watch for an upcoming blog post on what’s new in Player 3.0!  
                   
                      Player uses app's Runtime license
AppStudio Templates
All three app templates - Map Viewer, Map Tour and Quick Report have received many exciting new features, enhancements, bug-fixes and improvements in user experience in this release.
  •   Map Tour now works fully offline with the support of Mobile Map Packages
  •   You can launch Map Tour at a specific page using custom URL Scheme 
  •   You can sign into Map Viewer quicker and safer using fingerprint, or face ID for iPhone X
  •   A new Measure tool is now available in Map Viewer to help you measure distance or area on the map
  •   Map Viewer gallery now supports new options to show  maps only, offline maps only, or both
  •   The Quick Report results page message has been improved, with reporting each attachment’s upload status to the  feature service. You can also rename video attachments in the Quick Report
  •   A warning message will be displayed when downloading Mobile Map Packages with cellular data on all three templates
We will publish three separate blog posts to provide you more information on template updates next week.  
                 
                                                                  New Measure tool in Map Viewer template
AppStudio Framework 
Two new beta plugins – Positioning, and Device – have been introduced in this release.  These allow you to create an app that interacts with high accuracy GPS receivers.  We also published a GNSS Info sample to demonstrate how to connect to a receiver and present location accuracy and satellite information.  Other changes in the AppFramework include:
  •   Biometric Authentication is now supported on Android 
  •   Encryption used in Secure Storage Plug-in is upgraded and as a result, the maximum length for a key or a value has been changed from 240 to 214
  •   Speed improvements have been made for secure storage on Android  
  •   The AppFramework.Dialogs plugin is now deprecated
  •   Text-to-speech has been moved out of beta and supported on all platforms

 

 

           

                                                                           GNSS Info sample

 

Bug Fixes

BUG-000095218

Symbology issue with applications created using the Story Map Tour template in the AppStudio for ArcGIS website is resolved.

BUG-000095405

Incorrectly formatted word "Display" in Settings is corrected

BUG-000099383

The Map Viewer template in AppStudio for ArcGIS now shows the default extent when opened on Android and iOS devices

BUG-000101053

Missing checkboxes in App Studio Make tool from AppStudio for ArcGIS Desktop on Arabic Mac OSX is corrected.

BUG-000101597

Security vulnerability with iOS applications created with AppStudio for ArcGIS is resolved.

BUG-000101602

iOS apps developed with AppStudio for ArcGIS are now getting compiled using the default iOS memory management framework.

BUG-000101822

The AppStudio for ArcGIS Map Viewer crash issue with time-enabled layer is resolved.

BUG-000101978

Security vulnerability with Android applications created with AppStudio for ArcGIS is fixed.

BUG-000102326

The issue with Map Scale settings of AppStudio for ArcGIS Map Tour not being honored when set in AppStudio for ArcGIS Desktop no longer exists.

BUG-000102917

An AppStudio for ArcGIS application created with the Map Viewer template shows numeric coded values rather than associated domain values.

BUG-000103139

A Map Tour template app in AppStudio for ArcGIS is able to retrieve an image that is successfully accessed when the same image is referenced in a Story Map Tour application in ArcGIS .

BUG-000103313

The OpenStreetMap basemap displays in an AppStudio Player for ArcGIS app that is created using the AppStudio for ArcGIS Map Viewer template.

ENH-000089905

Issues with Quick Report app in German are resolved.

We hope you enjoy all the new updates, features and bug fixes included in this release.  As always, we will continue to listen to your feedback and bring new features to improve your app development experience. A series of blog posts on what’s new in the templates, Desktop, and Player will be published soon.  So, stay tuned! 
Want to try AppStudio for ArcGIS? check this video to see how to sign up for a free trial.  

Today, we are pleased to announce the beta release of AppStudio for ArcGIS 3.0.  We encourage you to participate in the AppStudio 3.0 beta program to try out new features, report bugs you may find, and ensure your AppStudio apps work well.  The goal of the beta program is to gain valuable feedback and deliver a stable and high-performance product for everyone.  

Disclaimer: Do not build apps to be used in production or submit to app stores using the Beta builds.
What’s New
This beta release includes many new features, enhancements, UI updates, and bug fixes (Thank you!). Behind the scenes, the underlying Qt framework has been upgraded from 5.9.1 to 5.10, which enables you to take advantage of new functionalities and enhancements received in Qt 5.10.
With AppStudio 3.0, Android build tools have been upgraded to API level 23, and as a result, Android Runtime permission model and fingerprint authentication are now supported.  You can implement fingerprint authentication in conjunction with AppFramework Secure Storage plugin to allow you sign into you AppStudio apps faster and safer on all supported platforms.
 
Additionally, ArcGIS Runtime version has been updated from 100.1 to 100.2.1, which means all of the exciting new and powerful features, any bug fixes and enhancements added to ArcGIS Runtime 100.2 and 100.2.1 are available in AppStudio 3.0.   
A full list of new features and enhancements of AppStudio 3.0 can be found at Early Adopter Program website
Deprecations
AppStudio 2.1 will be the last release to support ArcGIS Runtime for Qt 10.2.6.  For more information about deprecating 10.2.6, check this blog post. If you wish to continue building apps using 10.2.6, please do not update your version of AppStudio to 3.0.  
AppStudio 3.0 will drop support for 32-bit iOS apps. If you have created AppStudio iOS apps before you might not have realized but it did support both 32-bit and 64-bit variants of your app and any dependencies such as ArcGIS Runtime. Following the device statistics and latest technology trends, we decided to drop building apps for the diminishing 32 bit iOS devices out there. Just targeting 64-bit iOS will not only help optimize an app’s performance on supported devices but also conserve your device memory. As a side effect, you will also see a significant reduction in app binary size (~50% savings).
 
AppFramework.Dialogs plugin has been deprecated in AppStudio 3.0 Beta version, therefore, the following dialog will appear when running apps contain AppFramework.Dialogs plugin (such as Quick Report 2.1 or below). You will need to remove ArcGIS.AppFramework.Dialogs import statement to continue running the app. 
Note: This will not cause further issues with 2.1 Quick Report, as the app only imported the plugin, and no longer used anything it provided.
     
             
For example, to remove ArcGIS.AppFramework.Dialogs import statement in Quick Report:
1.     Click Edit button to run Qt Creator 
2.     Navigate to CameraComponent.qml file
3.     Remove line 14 import ArcGIS.AppFramework.Dialogs 1.0 
        
  
Note: If you built a Quick Report app using AppStudio Website, please update Quick report template to version 3.0 by creating a new one.  
  
Getting Started 
The beta program is open to anyone, you can join our Early Adopter Community to get access to the latest versions of AppStudio 3.0.
 
Download AppStudio Desktop 
You can download the beta version of the AppStudio Desktop 3.0 here
 
Download AppStudio Player (iOS)
Please leave your email to this forum thread so that we can add you to Apple’s Test Flight program to download AppStudio Player 3.0 (Beta).
 
Download AppStudio Player (Android)
You can go to early adopter website to download AppStudio Player 3.0 (Beta) on your Android device as well. 
 
You are now all set to start testing the AppStudio 3.0 Beta!
 
Feedback 
Your feedback is highly appreciated and it will help us to improve the final release of AppStudio for ArcGIS 3.0. For bugs and any issues you may find, please submit a bug report. You can also join the beta forum to provide feedback.     
 
The final release is scheduled to release in mid-April.  We want to thank everyone who contributes to AppStudio for ArcGIS 3.0 in advance and wish you happy testing! 
This functionality is currently in beta, meaning functionality isn’t yet finalized, and we’re looking forward to your feedback.

Applications can communicate with each other through a variety of ways. For example, you can use a custom URL scheme to launch one app from another one and invoke actions specified in the link, check out this blog post for understandingSurvey123's custom URL scheme. You can also use the newly added inter-app communication functionality to pass text or a URL to another app. Inter-app communication functionality brings up the standard iOS, macOS or Android share sheet that allows you to share text or URL to other applications. For instance, instead of copying a URL, navigating and pasting URL into another app, you can easily share a URL in the source app by triggering share sheet using inter-app communication functionality. This blog post explains how to achieve this. 

 

First of all, you need to enter data or copy data to the clipboard.

    property url urlInfo: "https://appstudio.arcgis.com/"

    Column {
        spacing: 10

        TextField {
            id: inputText
            placeholderText: "Enter some text"
        }

        Text {
            id: sampleURL
            text: urlInfo
        }

        Button {
            id: copyURL
            text: "Copy as URL"

            onClicked: {
                AppFramework.clipboard.copy(sampleURL.text)
            }
        }
    }

 

Once data is entered or copied to the clipboard, you can use the AppFramework.clipboard.share(QJSValue) method to share text or a URL to other apps. The following code snippet shows how to share input text across apps.

 

        //Share input text
        TextField {
            id: inputText
            placeholderText: "Enter some text"
        }

        Button {
            id: shareURLButton
            text: "Share as Text"

            onClicked: {
                AppFramework.clipboard.share(inputText.text)
            }
        }

 

The following code demonstrates how to share a URL from clipboard. 

 

        // Share URL from clipboard
        Text {
            id: sampleURL
            text: urlInfo
        }

        Button {
            id: copyURL
            text: "Copy as URL"

            onClicked: {
                AppFramework.clipboard.copy(sampleURL.text)
            }
        }


        Button {
            id: shareURL
            text: "Share as URL"

            onClicked: {
                AppFramework.clipboard.share()
            }
        }

 

Inter-app Communication Sample App

 

The Inter-app Communication sample app is available on AppStudio Desktop.  To create an app based on this sample, follow these steps:

 

  • Open AppStudio Desktop
  • Click on the New App button 
  • Search and select Inter-App Communication sample 
  • Click on the Create Button

   

 This sample is also available in the appstudio-samples GitHub repo.                   

 

Hopefully, this blog post gives you some idea of what this functionality is currently capable of.
Feedback and suggestions are welcomed in the comment section below, and I would also like to hear
how you plan to use this feature in your own AppStudio apps.

 

To learn more about Inter-app communication, check out the API Guide.  

AppStudio 2.1 has introduced Secure Storage plugin (BETA) that provides a way to store and access sensitive information such as credentials, tokens etc. With Secure Storage, your data is now encrypted and store in the system provided keychain and can only be accessed by the app.  Let’s dive deeper to find out what is Secure Storage and how to use it.   

 

Note: This functionality is currently in BETA, which essentially means go ahead and use it but there might be slight modifications/enhancements made in the future releases based on usage and feedback. This also means that we are looking forward to your feedback. 

 

Overview

SecureStorage singleton is part of the SecureStorage module, it allows you to store and retrieve data directly with ease in a cross-platform wayIn its first implementation, you can store as key value pairs and retrieve data as a string format and each value is limited to 240 characters (technical limitation to provide cross-platform support). However, there is no limit on how many key/value pairs you can create. 

 

On a side note, when testing your app that uses SecureStorage inside of player make sure there are no collisions with key names since inside player both your app and the player app will be using the same keychains. You can easily make your key unique by adding a prefix such as your app name.

 

Supported Platforms

  • Android
  • iOS 
  • Mac OS
  • Linux
  • Windows

 

SecureStorage provides two methods and a signal (event):

 

Method:

  • Bool setValue (String key, String value) – Returns a boolean value indicating the data was stored encrypted in the system keychain. This method is also used to remove the existing keys from the keychain by providing a valid key name and empty string for the value.  

Note:

  • If you use the same key twice the previous one will be overwritten
  • Keys cannot be null or empty
  • If you enter a valid key with empty string, it will remove the key present in the keychain
  • String value(String key) – Returns string value which is the data associated with the key

 

Signal:

  • error(String errorMessage) - Emits when there is an unacceptable behavior when you try the above methods

 

How to use Secure Storage plugin  

This step - by - step tutorial will walk you through how to use Secure Storage plugin in your AppStudio apps.

 

Step 1

Import Secure Storage plugin statement 

 

import ArcGIS.AppFramework.SecureStorage 1.0

 

Step 2

Store data into system Keychain 

    TextField {
        id: key
        placeholderText: "Enter key"
    }

    TextField {
        id: value
        placeholderText: "Enter value"
        anchors.left: key.right
    }

    //Click on the button to store data into the keychain
    Button {
        id: secureButton
        text: qsTr("Secure Data")
        anchors.top: key.bottom
        onClicked: {
            SecureStorage.setValue(key.text,value.text)
        }
    }

 

Step 3 

Add a Retrieve button, click on the button to retrieve data from Keychain. 

    //Click on the button to retrieve data
    Button {
        id: retrieveButton
        text: qsTr("Retrieve Data")
        anchors.top:secureButton.bottom
        onClicked: {
            retrieveData.text = qsTr("Value: ") + SecureStorage.value(key.text)
        }
    }

    //Display retrieved data
    Text{
        id: retrieveData
        anchors.top: retrieveButton.bottom
    }

 

Step 4 

Display the error message while failing to store and retrieve data 

    Text {
        id: errorData
        anchors.top: retrieveData.bottom
    }

    Connections{
        target: SecureStorage
        onError: {
            errorData.text = errorMessage;
        }
    }

 

Secure Storage Sample 

We have provided a sample to help you learn how to use Secure Storage plugin.  It is available in AppStudio Desktop 2.1 via "New App" dialog:

 

  • Open AppStudio Desktop
  • Click on the New App button 
  • Search and select Secure Storage sample 
  • Click on the Create Button 

This sample is also available in the appstudio-samples GitHub repo

 

 

If you have any feedback or suggestions, let us know in the comments! 

 

To learn more about Secure Storage,  check out the API reference.  

Note: This functionality is currently in BETAwhich essentially means go ahead and use it but there might be slight modifications/enhancements made in the future releases based on usage and feedback. This also means that we are looking forward to your feedback.

 

The Map Viewer template now supports offline maps, which means you can now download and view secured and public Mobile Map Packages (MMPK). An MMPK consolidates a single map or multiple maps into a single file so that you can share with your ArcGIS organization or directly download to your mobile device for offline use. This blog post will show you some tips and tricks for creating MMPKs in ArcGIS Pro and explain how to configure Map Viewer template to consume offline maps (MMPKs) from the organization. 

 

Creating MMPKs in ArcGIS Pro

MMPKs can be created using the Create Mobile Map Package tool in ArcGIS Pro 1.2 or higher. This help document will help you get started with creating and sharing an MMPK.  Here are a few tips and tricks that I want to share for when you are creating an MMPK for your Map Viewer app.

 

Tips and Tricks

1. Adding Bookmarks – It’s always useful to add spatial bookmarks to provide shortcuts for future reference. When you are creating an MMPK, don’t forget to create bookmarks that can be used in your Map Viewer app. To do this:

 

                            Open ArcGIS Pro > Map > Bookmarks > New Bookmark > name the bookmark 

                       

                                                              Map Viewer Template - Bookmarks in Offline Map

 

 

2. Creating a locator for feature searchMMPK supports locators for searching features and places. So if you want to enable searching of features in your Map Viewer app, you need to add a locator which is configured for feature search. To do this, you will need to add a locator provider or create a locator in ArcGIS Pro.

 

Note: The locator for places is not yet supported in Map Viewer at 2.1. If your MMPK already contains offline geocoder it will not be used in the template.

                    

Map Viewer Template Feature Search in Offline Map

 

3. Adding tags – Entering an ArcGIS query in your app’s settings is one way to find and display MMPKs in the Map Viewer Gallery. Adding meaningful tags not only is a useful way for you and your ArcGIS organization members to quickly and easily find MMPKs, but it is also one of the requirements to display MMPKs in the Map Viewer Gallery.  Please refer to Query and display MMPKs in the Map Viewer Gallery section below for more information about query MMPKs with tags.

 

4. Changing map metadata

  • Title – A map’s metadata title will be displayed at the top of the Map details Info panel. If you have multiple maps in the MMPK, the metadata title will also show on the Offline Maps Layer panel as the chosen options. By default, the metadata title is “Map”. You can always rename your map before uploading your MMPK.
  • Summary and Description – A map’s metadata summary and description will also be displayed on the Map Viewer Info panel. You can provide additional information on the Map Viewer by adding metadata summary and description while creating an MMPK.

Note: One way to edit metadata information in ArcGIS Pro is to right-click on your map, then select Properties > Metadata.

                                                            Map Viewer Template - Offline Map Details

 

Configuring Map Viewer to consume MMPK

 

NoteWe will be using AppStudio desktop standard edition to configure the template. These options are not available on the AppStudio basic or on AppStudio website.  

 

Step 1 Creating a Map Viewer template

Open AppStudio Desktop and sign in with a Standard license account.  Click on the New App button > Templates > Map Viewer to created a new app based on the Map Viewer template.

 

 

                           

 

 

Step 2 Registering your app

Sign-in is required to access and view MMPKs. This requires a Client ID, also known as an App ID to allow you to sign in. AppStudio Desktop 2.1 has provided a quick and easy way to generate a Client (App) ID to allow users to sign-in to your app, by navigating through AppStudio Settings > Advanced Settings, then clicking on the Register button.

Note: You can only register your app after uploading your app. So upload your app at least once before trying this step.

      

            

 

 

 

Step 3 Enable Sign-in button

The Sign-in button is disabled by default in the Map Viewer template. To enable the Sign-In button, go to AppStudio Settings > Gallery, and enable Support secured maps.

 

 

      

                                                                                

 

Step 4  Query and display MMPKs in the Map Viewer Gallery

Just like when querying web maps, you can query MMPKs by item ID or tags. To display all of the MMPKs that have a specific tag in the Gallery page, you can simply enter the tag in the Settings > Gallery > Maps query.  You can also enter an item ID in the Maps query field to search and display a specific MMPK in the Gallery.  Note that if you want to specify more than one MMPK in the app, please use the following format:

                                                                        (id: item A ID OR id: item B ID)

 

               

 

Step 5 Testing your App

Double click on the Map Viewer template app to run your app on Desktop with AppRun.  Your offline maps (MMPKs) will appear in the  "Offline Map" section of Gallery and you can download and view them from there.  You can also quickly test your apps on a real device using AppStudio Player.    

 

Hopefully, this blog post helps explain this new functionality, and please let us know how we can improve this feature in the comment section below.

AppStudio 2.1 release has introduced a new Biometric Authentication plugin that provides a layer of security to authenticate a user in an app via fingerprint scan. This blog post shows how you can enable Biometric Authentication in your apps along with usage.

 

Please note: This is a BETA feature and is currently available on Windows, iOS, and macOS. Support for Android devices is being worked on and should be available in the next version of AppStudio. We are looking for your feedback while using it in your own AppStudio apps. (You can see that we have added this to the AppStudio player.)

 

Overview

BiometricAuthenticator singleton is part of Authentication module, it currently supports on devices that have a built-in fingerprint sensor or portable reader.  Such as your iPhone or Mac with new touch bar or Windows devices with built-in fingerprint reader or a portable USB one. 

 

BiometricAuthenticator has the following properties:

 

  • supported – Return a boolean value whether your device supports this functionality
  • activated – Return a boolean value whether your device is activated to use this functionality
  • message – Set a custom message in the authentication dialog.  

It has to be set before calling authenticate() method

  • errorMessage – It's a read-only property which returns the error message on authentication. By default, it returns “No Error” for unsupported devices.

Make sure that you check for this property only when a device is supported

Methods:

 

  • authenticate() – Invoke the native biometric authentication dialog (also known as touch id for iOS and macOS)

 

Signals:

  • accepted() – This signal is emitted when a user is successfully authenticated
  • rejected(Reason reason) – This signal is when emitted when a user fails to authenticate along with the reason for failure

 

Requirements

  1. Your device needs to have a built-in fingerprint sensor or portable reader
  2. Fingerprint must be enrolled in your device

 

How to implement fingerprint authentication

 

This step - by - step tutorial will get your familiarized with BiometricAuthenticator and help you get you started with the fingerprint authentication.

  

Step 1 

Enable Biometric Authentication capability, to do this:

Open Desktop > Select your app > Click on Settings > Capabilities > Enable Biometric Authentication 

                                   

Step 2

Import Authentication Module 

 

import ArcGIS.AppFramework.Authentication 1.0

 

Step 3 

Check if biometric authentication is activated or not. Rectangle color will turn to green if biometric authentication is activated and it will turn to red if it is not activated

 

App {
    id: app
    width: 400
    height: 640

    property color successColor: "green"
    property color errorColor: "red"

    Rectangle {
        anchors.fill: parent
        color: BiometricAuthenticator.activated ? successColor : errorColor
    }
}

 

Step 4

Add a button to call authenticate() method 

 

        Button {
            id: touchIDButton
            anchors.centerIn: parent
            text: "Touch ID"
            onClicked: {
                BiometricAuthenticator.authenticate()
            }
        }

 

Step 5 

Add a custom message on the fingerprint dialog

 

                                 

 

        Button {
            id: touchIDButton
            anchors.centerIn: parent
            text: "Touch ID"
            onClicked: {
                BiometricAuthenticator.message = qsTr("Custom Message")
                BiometricAuthenticator.authenticate()
            }
        }

 

Step 6

Display fingerprint status message with the BiometricAuthenticator signals.  When a fingerprint is successfully authenticated, the accept signal will emit and “Success” text will print out.  When fingerprint fails to authenticate, the reject signal will emit and print out "Fail"

 

        Text {
            id:statusMessage
            anchors.top : touchIDButton.bottom
            anchors.horizontalCenter: parent.horizontalCenter

            Connections {
                target:BiometricAuthenticator

                onAccepted :{
                    statusMessage.text = qsTr("Success")
                }
                onRejected: {
                    statusMessage.text = qsTr("Fail")
                }
            }
        }

 

Step 7

Upload and test in the AppStudio Player 

 

 

Biometric Authentication Sample

We have provided a sample app to demonstrate how to use Biometric Authentication plugin for your apps. 

To create an app based on this sample, follow these steps:  
  • Open AppStudio Desktop
  • Click on the New App button 
  • Search and select Biometric Authentication sample 
  • Click on the Create Button 

 This sample is also available in the appstudio-samples GitHub repo

 

 

                

 

We would greatly appreciate any comments or suggestions on how we can improve Biometric Authentication plugin.  Please leave your comments down below or email us your feedback.  

 

To learn more about Biometric Authentication plugin, please check our API guide and API reference.  

In this release, we continue our work on improving UI/UX and adding new functionalities to AppStudio Desktop. 

Here is a quick list of new features and handy improvements:

 

  • New Material Design layouts
  • Improved UI/UX for Desktop tools
  • Support Universal Windows Platform (UWP) app
  • Fully redesigned AppMake tool
  • New Community Panel  
  • Easily register a Client (App) ID via AppStudio Desktop
  • AppUpload tool enhancements
  • Delete Apps from your ArcGIS organization using AppStudio Desktop
  • Support localization of apps running in AppRun

 

Please continue reading for more details on the above features.

 

New Material Design layouts

Material design, which takes inspiration from paper and ink forms, is a visual and interactive card-based design standard developed and used by Google. We have released five brand new ready-to-use layouts based on Material Design Guidelines that will not only help you get started in creating material design apps with AppStudio but also help you get familiarized with the latest Qt Material Control style. Please read this blog post to learn more about Material Design layouts.  

 

 

                           

                             

Easily register a Client (App) ID via AppStudio Desktop

An App ID (or Client ID) allows users to sign in to the ArcGIS platform (online or your own on-premise portal) with OAuth and collect usage statistics.  We wanted to improve your app registration experience by providing a Register button to help you generate an App ID right away. This feature will be very handy especially when using the secured/offline maps feature in the Map Viewer template.

As an added convenience we also take care of adding the appropriate redirect url needed by AppStudio apps (urn:ietf:wg:oauth:2.0:oob). 

 

Please make sure to upload your app first before generate an App ID

 

         

 

 

Improved UI/UX for Desktop tools

The AppStudio for ArcGIS 2.0 release introduced a brand-new user interface for AppStudio Desktop, with better usability and many new features. In this release, we’re continuing our work on improving UI/UX, this time for few AppStudio Desktop tools.  AppSettings, AppUpload, and AppConsole tools have received UI updates.

 

    

 

Support Universal Windows Platform (UWP) app - BETA

UWP is the universal app platform for Windows 10. UWP apps can run across many Windows devices, such as Windows 10 powered PC, tablet, phone, Xbox, and more. AppStudio for ArcGIS, as a cross-platform application developing tool, has added support for UWP apps in this release. Just like how you build apps for other platforms, all you need to do to create a UWP app is to simply check the box next to the Universal 32 bit, Universal 64 bit, or Universal ARM on the cloud Make interface.           

 

 

Note: UWP apps are currently only supported for cloud Make, and cannot be made with local Make.

          Also ArcGIS Runtime apps are not yet supported for UWP (we are working on it).

 

AppMake tool gets a makeover

AppMake tool has been completely redesigned with the new intuitive UI&UX to make your app-building experience easier and better. Many new features and enhancements were also added to the Make tool such as improved analysis messages and cloud Make support for UWP.

 

       

 

 

Community panel 

We have implemented a new community panel in the AppStudio Desktop Gallery. The community panel provides live contents of AppStudio Geonet questions, blogs, YouTube, and tweets so you can easily access and engage with us and our community.  This we hope will encourage you to easily read and follow all the developments and also participate in the community to help your fellow AppStudio app developers.

 

        

 

Improvements to AppUpload tool

Upload tool is frequently used and very useful but it lacked one feature which is sharing. You (our users) asked us to directly provide a way to change sharing options for the app so that its easy for others in your org or even for your customers to download the app. 
We are now (thanks to your feedback) offering sharing options directly in the AppUpload tool so that you can easily share your apps with a single click. 

 

           

 

 

Deleting apps from ArcGIS org via AppStudio Desktop

One other feedback we received was to make it easier to manage your apps with in your org. While it was easy to create and update apps we did not have option to delete apps from your org. With this release, you can easily delete the AppStudio app (appears as native application item in your org), with the Delete button in the AppStudio Gallery opening a dialog to choose to delete your app’s files locally, or from both local and online locations.

 

            

 

 

 

Supporting localization of apps running in AppRun

If an app running in AppRun has a translation file that matches the system’s current locale, AppRun will now automatically load the translation file. This new enhancement is essential for testing your apps in multiple languages. 

 

 

                                                       

 

 

Click this link to find all the blog posts related to the 2.1 release of AppStudio for ArcGIS.   Look out for new Plugins blog posts coming soon.

This new release brings many new exciting features and enhancements to all three AppStudio templates - Map Viewer, Map Tour, and Quick Report.  Here is a list of update highlights for each template:

 

Map Viewer

  • Support for secured web maps
  • Ability to download and view Mobile Map Packages (BETA)
  • Display grids
  • Option to specify the number of maps to display in gallery 
  • Enhancements to Geosearch experience 
  • Ability to adjust font size

 

Quick Report

  • Support for audio and video attachments (BETA)
  • Annotation support for images
  • New calendar control

 

Map Tour 

  • New design for Gallery and side panel
  • New basemap switcher 
  • Labels for Map pins
  • Pinch-to-zoom ability for the images
  • Ability to adjust font size

Below are details on the above features:

 

Map Viewer Template:

Support for secured web maps

Previously, you could only view public web maps in the Map Viewer template app. In this release, we’re expanding your ability to access private web maps and web maps shared with your organization with a login requirement (supports for OAuth 2.0 and SAML authentication).  Once you have successfully logged in, you will see secured web maps highlighted with a lock icon.  You will automatically be logged in the next time you open Map Viewer template app. To enable this functionality, you need to prepare for this within AppStudio Desktop:

  1. Register your app – Upload your app first, then go to Settings > Click on Advanced button > Register > Close > Apply
  2. Enable secured web maps - Go to Settings > Gallery > click on Support secured maps button

 

               

 

.

Ability to download and view Mobile Map Packages (BETA)

As of 2.1, the Map Viewer template supports Mobile Map packages (MMPK). You can now download both public and private MMPKs from your organization or portal to your device, and access them when you are offline. MMPKs can contain multiple map layers, bookmarks, attachments, media, and address locators.  Map viewer template now supports for viewing all of the above features besides for address locators( will be supported in next release).  You can also easily remove downloaded MMPKs to save the device memory.      

 

Remember to include your MMPKs to your query string just as you do to your web maps. Once your app launches, sign into your portal or organization to see your MMPKs. The MMPKs will appear in the 'Offline Map' section of your gallery and can be downloaded from there. This section is visible only if your search query returns MMPKs.

 

Due to licensing restrictions, when using the default template, you must sign in to your Organization or Portal to download or view offline map.

 

Display grids

Grids are widely used to identify locations on a map in an easily-read format. With this new release, we provide options to display Latitude Longitude Grid, UTM Grid, USNG Grid, or MGRS Grid on the map. 

 

                  

                   
                 

 

Specify the number of web maps to display in gallery

Previously, the number of the web maps provided in the gallery had a maximum of 25. You can now specify a number of web maps available in the gallery, which allows you to increase or decrease it as desired. To configure the number of the web maps, you need to prepare for this within AppStudio Desktop:

 

Open AppStudio Desktop > Select your Map Viewer template app > Click on the Settings > Map Viewer Properties > Gallery > enter the number in the Total results to show in gallery filed

 

 

Geosearch Enhancements  

We have refined the Geosearch functionality in the Map Viewer template app. As you enter an address, we are offering a list of address suggestions to help you fill out faster. We also improved the geo-searching experience by sorting search results based on the direction and how far they are from the user’s current location.

 

                        

 

 

Better experience with Media chart 

Now when you hover over or tap on the chart, you will be able to see the responding numbers displayed on the top of the chart. The chart distance is also improved so that you can now see all of the axis labels. 

 

 

                        

 

 

Adjust font size

We have implemented the font size control for the Map Viewer template. You can now adjust the font size in the Side Menu. 

 

 

Quick Report Template:

Support for audio and video attachments (BETA)

Quick Report 2.1 template gives you the ability to record a video (limited to 30 seconds) and an audio (limited to 2 minutes). You are able to send video and audio as the attachments to the feature service provided for Quick Report.  To enable this functionality, you need to prepare for this within AppStudio Desktop:

 

Go to Settings > Form, and scroll down to the bottom to Enable video recorder (BETA) and Enable audio recorder (BETA) buttons.

 

 

                           

 

                                      

Annotation support for images

Image annotation has been one of the biggest requirements for our users and is now available in the Quick Report 2.1.  We are providing a variety of annotation features such as free draw, changing stroke width, adding text comments, and changing ink color to allow you quickly and easily edit photos. We also support Smart Draw functionality, which adds power to the annotation feature to help you enhance drawing experience.  Annotation tool is smart enough to recognize and correct various shapes such as line, circle, oval, and rectangle.  If you are drawing a line with the Smart Draw mode, it will automatically change into an arrow and display a text box for you to add notes next to it.    

       

 

                       

 

 

 

                 

New calendar control

 

The calendar has been updated with new intuitive controls for selecting date and time.

 

 

 

 

 

 

 

 

 

Map Tour Template:

 

New design for Gallery page and side panel   

Map Tour Gallery page now has a clean and intuitive new design.  Side panel for large screen design has also received a new design to not only match the Gallery page style but also provide a better image and text view experience for each point in the tour.  

 

     

       

 

 

 

 

                                                                                                  

Basemap switcher            

 

You can now change the basemap using a newly added basemap switcher on the Map page.  

 

 

 

 

 

 

 

 

 

 

 

        

Labeling Map pins     

 

Map pins now have labels. On each pin is a number corresponding, to the order of the pin in the tour.

 

 

 

 

 

              

 

 

                                                                 

 

Pinch-to-zoom ability to the images              

 

You can now pinch to zoom in on images, and double-tap to release the zoom. This allows you to interact with map tour photos at different levels.

 

 

 

 

 

 

 

 

 

 

Adjust font size

We are launching new settings that offer you more control over the application font size. You can now increase or decrease the font size in the side menu.

 

To learn more about what's new in AppStudio Desktop and Plugins, look out for blog posts coming soon!

We are excited to announce the release of the AppStudio for ArcGIS 2.1. This release brings a lot of new features, enhancements, and bug fixes, all to improve your app development experience and to provide more functionality to implement into your apps.

 

Highlights of 2.1 are as follows:

 

  • New community panel added to Desktop
  • UI/UX improvements for AppStudio Desktop tools
  • New Material Design layouts
  • Map Viewer template supports secured Web Maps and offline map packages (MMPK)
  • Quick Report template supports audio and video attachments
  • AppStudio Player improvements - Biometric, IWA authentication  
  • New Plugins in AppFramework – Biometric Authentication, Secure Storage, High Accuracy GPS, and Inter-app share
  • Support for non-runtime apps to run on Windows Universal Platform (Beta)
  • Underlying Qt framework has been upgraded from 5.8 to 5.9.1

 

You can get the latest version of AppStudio for ArcGIS at AppStudio for ArcGIS | ArcGIS.  Don’t forget to update the mobile companion app AppStudio Player on your device from iTunes and Google Play store.

 

AppStudio Desktop

In this release, we continue our work on improving UI /UX for AppStudio Desktop tools. Many new features and handy improvements for Desktop are also included, such as Material Design layouts, a new community panel in the Desktop Gallery, support for building UWP apps using cloud Make tool, ability to delete apps both locally and in the organization, ability to share apps directly from the Desktop, easily generate client ID and many many more. Watch out for a detailed blog post to learn more about all the new big and small changes to the AppStudio Desktop very soon.    

 

 

AppStudio Player

With 2.1, on iOS (MacOS and Windows) devices, you can now login more securely using the newly added biometric authentication functionality (Touch ID). You can enable this feature in the Player Settings

Note:Support for Android device will be coming in the next release

 

AppStudio Player now supports Integrated Windows Authentication (IWA) on Portal for ArcGIS. This is a requested feature for users who have configured Player to work with an IWA security to sign in and connect to ArcGIS Online or Portal for ArcGIS.  This new feature makes it seamless to use a Windows account to log into Player easier and faster.

 

 

                                                              

 

 

AppStudio Templates

All the three templates - Map Viewer, Map Tour and Quick Report have introduced new features, enhancements, and improvements in user experience.

 

You can now view secured web maps contents in the Map Viewer template. In addition to that, you can also download and view Mobile Map Package (MMPK).  Quick Report template now supports audio and video attachments (Beta). A new basemap switcher was added to the Map Tour template and the side panel to view photo and description along with the map for the large screen was improved.  

 

Check this blog post to learn more about what's new in AppStudio templates.

 

AppStudio Framework

 

We listen to your feedback carefully and have improved documentation and code samples for the usage of the AppFramework.  This is available both inside the Qt Creator help and online.

 

Exciting new plugins (Beta) now are available with 2.1:

 

  • Biometric Authentication - Authenticates user within the app through fingerprint scan
  • Secure Storage Stores data encrypted in the system Keychain
  • Devices - Provides data on connected devices (e.g. printers, weather sensors, laser scanners)
  • Positioning - Provides high-accuracy positioning and satellite data from a capable device
  • Inter-app Share (AppFramework Clipboard extension) - Brings up the standard iOS, macOS or Android share sheet that allows you to share text or URL to other application

 

         

                    

 

We are excited about the addition of these new plugins. It's just not about new, a bunch of bug fixes and enhancements have also gone into the existing plugins based on your feedback (Thank you). We have also added new samples showcasing how to use the plugins from both the 2.0 and the 2.1 release. These samples are available in AppStudio Desktop and are just a click away.  We are planning to write a detailed blog post highlighting some of the new plugins and use cases in the near future.

 

Note: These new plugins are currently in beta, so we’re looking forward to your feedback in how to improve these features in the future.

 

We hope you enjoy all the new updates, features and bug fixes included in this release.  As always, we will continue listening to your feedback and bringing new features to improve your app development experience.  Do not forget to share your awesome app with us to be showcased in the AppStudio Apps Showcase Gallery

 

                                      Follow us on Twitter @appstudioarcgis for latest updates and news

 

List of support issues addressed

BUG-000087195

AppStudio Player: Return to Gallery (App Exit) translation issues got fixed

BUG-000095416

Issue with untranslated Sign In page

BUG-000103775

In AppStudio for ArcGIS, a Map Viewer app does now utilize 'feature search' from all layers within the referenced web map.

BUG-000103906

Successfully signing in after clicking the 'Upload' or 'Make' button redirects users to the 'Upload' or 'Make' window.

BUG-000106828

Fields that have a range domain applied to them now appear in AppStudio Player for ArcGIS.

In this tutorial, you will learn how to quickly create a native app that loads a public Web Map and display current device location on a map using AppStudio for ArcGIS. We will take advantage of ArcGIS Runtime for the mapping, one of the five ready-to-use Material Design Layouts available for the app and device GPS for location.  

 

Time required: 10 - 20 mins (if the prerequisite software is installed)

 

You will create an app that looks like the illustration below, the main features of this app include:

  • Load a public Web Map
  • Tap on the Add button to display Web Map name on a pop-up
  • Tap on the Home button to return to the initial Web Map extent
  • Tap on the Location button to display the current device location

 

Final result:

 

Code behind:

 

Getting ready:

  1. You will need AppStudio Desktop (Standard). If you are new or have not yet licensed AppStudio Standard please watch this tutorial to get started with a trial account.
  2. You will need to download resources (attachment) to follow the tutorial.

 

Step 0. Create a new App:

Let’s start from one of the readily available layouts in the AppStudio Desktop called "Simple Layout(Material Design)".

  • Open AppStudio Desktop
  • Click on the New App Button
  • Click on the Layout tab
  • Choose Simple Layout (Material Design) and click on the Create button
  • Once the app is created, click on the Edit Title icon on the top of the side panel to rename the app.  We can call it "My first app", click on the Save Changes icon.  
  • Click on the Edit icon on the side panel to open the Qt Creator IDE
  • By default, the first QML file used by the app will be loaded into the Editor (MyApp.qml)

 

Step1. Import statements

You can tell the app which modules, components, or plugins you want to use by adding an import statement. For example, to use the material style in the app, we need to add the import statement import QtQuick.Controls.Material 2.1.  In this step, you need to add three more import statements in order to use ArcGIS Runtime as well as enable location-based function.

 

//ArcGIS Runtime
import Esri.ArcGISRuntime 100.1

//GPS
import QtPositioning 5.8
import QtSensors 5.2

 

Step 2. Change primary color property. 

Material primary color can be used to develop your branding color. Material accent color holds the accent of the theme, it can be same as the primary color.  In this step, let’s change the primary color from "#3F51B5" to "#8f499c"

 

    readonly property color primaryColor: "#8f499c"

Keyboard shortcuts to save changes

Windows: Ctrl + S

MacOS: command + S

 

Keyboard shortcuts to run apps in Qt Creator 

Windows: Shift + Alt + R

MacOS: shift + option + R

 

Your app should look like this at this point  

Step 3. Header

The Simple Material Design Layout already has a header on it, therefore, we do not need to add any additional code in this step. I want to point out that ToolBar QML type is used to define the header.  The header height is 56 units and the background color is Material.Primary color.  Inside the ToolBar, RowLayout QML type was used to position the contents.

 

Step 4. Load a Public Web Map

In this step we will be adding a map to the app using ArcGIS Runtime. Remember that the import was added earlier in Step 1.

 

The MapView is a virtual class from the ArcGIS Runtime that renders data in a map and allows users to interact with the map. The initUrl property inside the Map QML type is used to initialize the web map. The initUrl can be item details page url, map view page url, or sharing data url.  

 

Please add the following code below the comment // TODO:-Add Code here to the MyApp.qml file

under the comment.// TODO:-
Add Code here
under the comment.// TODO:-
Add Code here
under the comment.// TODO:-
Add Code hereto MyApp.qml file

 

        MapView{
            id:mapView
            anchors.fill: parent
            Map{
                id:map
                initUrl: "http://www.arcgis.com/home/item.html?id=7811ccdb71c84635a7a42eb020403615"
            }
        }

 

Step 5. Add Web Map Name to the Pop-Up

Let us replace the default text shown while clicking on the Add icon with the Web Map title. To do this, go to Dialog component and replace the Label text property with the following code. Note that the value is a property binding to the item title of the webmap as loaded by the Map (this is really awesome and so convenient. QML rocks!!!)

 

text: qsTr(mapView.map.item.title)

 

            

 

Your app should look like this at this point 

Step 6. Add Float Action Button Component

Now let's change gears a bit and try to structure our app by using re-usable components for the UI like buttons.

 

In QML, any snippet of code may become a reusable component. A file-based component is created by putting a QML element into a separate QML file. The file name is the element name and you can use the component by calling its file name. I have created a file-based reusable float action button component for Home button and Location button. The attached folder contains reusable component file FloatActionButton.qml. Once you have downloaded the attachment, you can add this file to the app project.  To do this, go to AppStudio Desktop and choose the app that you are working on

  • Click on the Files icon on the side panel
  • Create a new folder and name it “controls”
  • Copy and Paste FloatActionButton.qml file to the “controls” folder

You should be able to see this in the Qt Creator

 

 

Now that the FloatArctionButton component is added to the project, you might wonder how to use it? First of all, you need to add the import statement.  After that, you can directly call the file name which is same as the component name FloatActionButton in the main file (MyApp.qml) to use the Float Action Button component.

import "controls"

 

Step 7. Add Home Button and location Button Image

The next step is adding the Home button and Location button image to this project. (please find images in the attached folder) To do this,

  • Go to AppStudio Desktop and choose the app that we are working on.
  • Click on the Files icon on the side panel
  • Copy and paste home.png and location.png to the assets folder.

You should see this in the Qt Creator

 

 

Step 8. Add Home Button

We will use a positioning elements ColumnLayout to arrange Home button and Location button by stacking them on top of each other. Let’s add the following syntax inside the MapView QML type and below the Map QML type.

 

            ColumnLayout{
                anchors{
                    right: parent.right
                    rightMargin: 16 * scaleFactor
                    verticalCenter: parent.verticalCenter
                }
            }

 

Inside the ColumnLayout QML type, let’s add the Home button by calling the Float Action Button component name  FloatActionButton.  Please add the following code.  Note that when clicking on the Home button, we will call the setViewpointWithAnimationCurve method, it is used to return to initial Web Map extent. The first parameter of this method map.initialViewpoint sets the viewpoint, the second parameter 1.0 is the number of animation seconds, and the last parameter Enums.AnimationCurveEaseInOutCubic is a type of animation. 

 

                FloatActionButton{
                    id:homeButton
                    imageSource: "./assets/home.png"
                    onIced: {
                        mapView.setViewpointWithAnimationCurve(map.initialViewpoint, 1.0, Enums.AnimationCurveEaseInOutCubic)
                    }
                }

 

 

 

Your app should look like this at this point 

 

Step 9. Set Up Location Source

In this step, we need to set up location source by adding LocationDisplay QML Type.  PositionSource is used to provide the device’s current position.  The import for this was already added in Step 1. Please insert the following code below the ColumnLayout QML type.

 

            locationDisplay {
                positionSource: PositionSource {
                }
            }

 

Step 10. Add Location Button

The last step is to add a Location button below the Home button by adding the following code.  Note that there are three different location display modes in the ArcGIS Runtime. In this case, we are using Enums.LocationDisplayAutoPanModeRecenter.

 

                FloatActionButton{
                    id:locationButton
                    imageSource: "./assets/location.png"
                       onIced: {
                          if (!mapView.locationDisplay.started) {
                              mapView.locationDisplay.start()
                              mapView.locationDisplay.autoPanMode = Enums.LocationDisplayAutoPanModeRecenter
                              colorOverlay.color = "steelblue"
                          }else {
                              mapView.locationDisplay.stop()
                              colorOverlay.color = "#4c4c4c"
                        }
                    }
                }

 

 

 

Since this is an ArcGIS Runtime based app do not forget to add a free lite license (check the tip below, it's pretty easy)

To set a free Runtime Lite license (remove watermark from the map):

1. Click on the Settings icon on the side panel

2. Click on the Advanced button

3. Click on the Set Lite License button and Close Advanced Settings

4. Click on the Apply button

 

And that it, it is that easy to create your own mapping application with AppStudio. Now you can use AppStudio Player to test the app on different devices and also use Cloud Make to build executables of your app to distribute them in the store or within your own enterprise/business.

 

Interested to learn more about how to write similar apps as in this tutorial or even more advanced desktop or mobile apps with AppStudio, then you will not want to miss watching and learning from the recent recordings from the two-day workshop (Yes its free ).  Here is the link for about 12 hours of content to become an expert in writing apps. Happy coding!

 

                                

 

We are excited to announce the release of five brand new beautiful material design layouts.  These ready-to-use layouts will not only help you get started in creating material design apps with AppStudio but also get you familiarized with the latest Qt Material Control style.  You can find these layouts in the AppStudio Desktop Edition.

 

What’s Material Design

Material design, which takes inspiration from the study of paper and ink, is a visual and interactive card-based design tool that was announced by Google in 2014.  Google’s initiative is to develop a much cleaner and more colorful unified user experience that can be adapted across different platforms and different device sizes.  Many Google applications were revamped to follow the material design principles (such as Gmail, Google Drive, Google Calendar, YouTube, etc.).

 

Material Styles

The new Qt Quick Controls 2.0 comes with three styles: Default, Material, and Universal.  We added support for Material Style, which is based on the Material Design Guidelines, and Universal Style, which is based on the Microsoft Universal Design Guidelines in the AppStudio for ArcGIS 2.0 release.  The material style is not a native Android style; it is a cross-platform control style that runs on any platform.  You may have noticed that one of the AppStudio templates, the Map Viewer template app, has been updated to the material design standard.

 

New Material Design Layouts

We released five brand-new material design layouts to help you get started with implementing the material design in your apps.

 

Simple Layout (Material Design)

 

This is a one-page simple layout with a header and a floating action button on it.  When you tap the floating action button, a dialog will pop up with the message “Welcome to AppStudio” on it.

 

 

 

Multipage Layout (Material Design)

 

This is a multiple page layout using a StackView QML type demonstrates how to navigate between different pages in your app. You can press the button to go to the next page and press the back icon on the header to go back to the previous page.

 

 

Side Menu Layout (Material Design)

 

The side menu layout is one of the most demanding and popular layouts. When you hit the menu icon on the top right, a navigation drawer slides in from the left with all of the navigation options on it. You can find this layout in many popular apps such as Twitter, Gmail, and Uber.

 

 

Tab Layout (Material Design)

 

This tab layout is extremely useful when there are multiple tabs in a page.  When you hit different tabs, the corresponding item shows up on the page.

 

 

Onboarding Layout (Material Design)

 

The onboarding is the very first thing you see after downloading an app.  Onboarding screens introduce you to the app and demonstrate how to use the app. SwipeView QML Type is used in this layout to navigate between different pages by swiping.

 

 

             

   

 

How to Get Material Design Layouts

  1. Open AppStudio Desktop
  2. Click on the New App Button
  3. Click on the Layouts tab
  4. Select the Layout and click on the Create button

 

 

You can also create your own material design app without using material design layout.  All you need to do is add the import statement when creating a new app.  

 

import QtQuick.Controls.Material 2.1

  

I hope you are as excited as we are about the new material design layouts. Now it is your turn to create some awesome apps with the material design style.

 

Trying to build an app that has an easy to use address finder functionality? Look no further, we are excited to release a brand new beautiful, intuitive and ready-to-use geocoding sample app built with latest ArcGIS Runtime 100.1 and following Google's Material Design guidelines. The source code of this sample is available both in the AppStudio Desktop as well as online at arcgis-appstudio-samples GitHub repo.  

 

  • You can directly download and run the sample app on your AppStudio Desktop, AppStudio Player, or even build an app on any supported platform.  
  • Check out the code of the sample app and use it to your own amazing AppStudio app
  • It's also a great resource to learn more about QML, building beautiful interfaces using Material Design, AppFramework, and ArcGIS Runtime concepts.  

 

Few features and highlights of the sample:

 

When you type an address or a point of interest, a list of suggestions based on the input address will show up, which provides you with a better geocoding experience.  As you can see, when typing 380, the search returns all of the possible results containing 380.  This auto-complete function not only avoids user provide invalid address but also saves time typing out an entire address.                        

        

 

 

This geocoding sample app does more than just search for places. We improved the geo-searching experience by sorting search results based on the direction and how far they are from the user’s current location. A campus icon and the distance will be displayed at the beginning of the returned address. As I search for Starbucks, the results that I got are sorted by distance, which is extremely helpful for me to choose the closest Starbucks on the way back home.

            

     

AppStudio for ArcGIS 2.0 now supports ArcGIS Runtime Version 100.1, which means many features such as 3D scenes, raster data, mobile map packages, and vector tiles can be used in your mapping applications. This geocoding sample app takes advantage of new runtime capabilities and uses the World Street Map, which is a vector tile layer as the basemap. The vector tile layer delivers a high-resolution display across devices. It also performs faster than raster tiles due to the fact that it has a smaller file size. The vector tile layer provides unique capabilities for customization, such as changing its label fonts, symbology, content, and more.

 

           

 

Can't wait? Let's get started:

 

  1. Download AppStudio Desktop Edition from here (if you have not already)
  2. Click on the New App button
  3. Search for the Geocoding sample app
  4. Choose the Geocoding sample app and click Create
  5. Now you can run the app and also upload it to your org and use the Player to play it in your own device of choice.
  6. If you want to learn more about the code, click the 'Edit' icon on the side panel to view and edit source code

 

               

 

 

When you open the app project from Qt Creator.  The first folder, “controls” contains four files, which are used to complete the user interface. Each file is a customized control component, which can be reused by calling the filename. For example, the MapRoundButton.qml file includes the snippets of QML code that defines a round button interface; it is used three times for three round buttons on the right of the map. To load a component:

  1. Import a component. In this case, we use import "../controls" statement
  2. Load a component by calling the QML filename.                                                                                                     Note that in the MapArea.qml file, the MapRoundButton component matches the QML filename.

            

 

The second folder, “images,” contains all of the system icon images for the Geocoding app. You will find the most important source code from the third folder; “views.” The GeocodeView.qml includes QML code that implements the geocoding function.  Take a look at imports; you might notice the import Esri.ArcGISRuntime 100.1 statement. ArcGISRuntime SDK integrates mapping and GIS capabilities and empowers this geocoding sample app. Geocoding is implemented with the LocatorTask class. You can pass an online locator URL or create an offline locator and pass the file path to the LocatorTask. ArcGIS Online World Geocoding service is used in this sample. You will be able to find the LocatorTask class from the GeocodeView.qml file (line 285).

LocatorTask {
    id: locatorTask
    url: "http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer"
}

 

The MapArea.qml file includes the QML code that imports the base map, complete action button interface, and the button's 'click' functionality, as well as drawing a pinpoint of the reach results on the map.

 

And that was a quick look at the structure and code of the geocoding sample app.  I hope you find it helpful to implement geocoding functionality to your own amazing native apps.  More exciting sample apps will roll out soon!