Skip navigation
All Places > AppStudio for ArcGIS > Blog > Author: NManocha-esristaff

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.

New Capabilities are introduced in the AppFramework as a part of AppStudio 2.0. These capabilities are not provided natively by Qt. Following capabilities are currently in beta

 

  •     Local Notification

  •     Vibration

  •     Background Location

  •     Promises

 

These capabilities are currently in Beta. What does that mean?

 

 What it means is that we are looking forward to your feedback, the use cases, what you like and what you want us to  improve upon. It also means that if you choose to implement these plugins in Production App. Future changes may affect  your app may require additional changes to support these functionalities in your app.

 

1. Local Notification - This is a new plugin added to the AppFramework. It provides developers the ability to implement in-app notification to end users such as an alert, message or geotification. When the Local Notification gets triggered on the client device the Notification icon appears in the Notification bar which is same as the application icon. The Notification icon cannot be customized or modified. Users may choose to have one or multiple notifications within the app. Every notification scheduled has a corresponding id available to distinguish between multiple Local Notifications.

 

 Note:- An app running within Player or AppStudio Desktop (AppRun) will show the notification icon of Player or                      AppRun respectively when triggered.

 

 

 Platform Support

  •     iOS
  •     Android
  •     Windows
  •     Mac
  •     Linux

 

 How to implement Local Notification in an AppStudio App?

  • Use the following import statement

        import ArcGIS.AppFramework.Notifications.Local 1.0

  • Enable the “Local Notification” capability within the AppSettings of the App
  •      Use the component "LocalNotification" which takes three input parameters to schedule a notification
    •      Title – The title of the message
    •       Message – The description of the message
    •       Time (in seconds)- Time after which the notification will be triggered on the end user device. 

 Sample Code   

 

 API Reference

 

   Properties

  • bool supported (read only)- Returns a boolean if the device supports local notification.

       Note: This property is supported on Android API 19+ versions.

 

   Methods                            

  • object schedule(string title, string message, int timeInSeconds) -  returns a Variant object which is id of the scheduled notification    
  • Title - The title of the message as string value
  • Message -The description of the message as string value
  • Time (in seconds) -Time after which the notification will appear on the end user device as int

               For e.g. 5 seconds means the notification will be triggered in 5 second                 

               var id = notification.schedule(title, message, duration)

  • bool clear(object id) -This method will clear the pending notification from the list of scheduled notifications
    • object id - The id of the notification to be clear.
    • Returns bool - Indicates whether the notification is cleared from the list of scheduled notifications. 

             For e.g. 

             bool success = notification.clear(id) 

             Note: It will return false for invalid inputs and for notifications which have already triggered.

  • void clearAll() - This method clears all the pending (yet to be triggered) and active (already triggered) notifications along with badge numbers for iOS apps.

             For e.g. 

             notification.clearAll()

 

  Signals

  • triggered(object id) - This signal is emitted when the  local notification is triggered.
    • object id-It takes an id of the scheduled notification.

 

2. Vibration (Singleton) - New plugin added in AppFramework with AppStudio 2.0 version. This allows developers to enable vibration within an app. It is a non visual feedback or alert. Common use cases to provide vibration are to indicate an event such a message received or finished creating a model making a network request or just an alert etc.

Note: Currently, there is no way to provide number of seconds as an input for it to vibrate. On android device, it will vibrate for 1 second and on iOS it will use the system default.

 

          

Platform Support

  •      iOS
  •     Android
  •     Windows
  •     Mac
  •     Linux

How to implement Vibration in the AppStudio App?

  •     Use the following import statement

      import ArcGIS.AppFramework.Notifications 1.0

  •     Enable the Vibration capability within the AppSettings of the App
  •     Call the Vibration.vibrate()

 

API Reference

   Properties

  • bool supported - Returns a boolean value indicating whether your device supports vibration or not.

 

   Methods

  • void vibrate() - Method call to initiate a vibration on the client device from the app. The device will continue to vibrate for system default vibration settings (in seconds) or until the app is closed.

        For e.g.

          if(Vibration.supported) {

                 Vibration.vibrate()

           }

 

 

3. Background Location - New capability has been introduced to AppStudio 2.0 which allows the apps to use location data in background mode. Some of the common use cases using this capability are logging location data using position source, or trigger a notification, geo-fencing etc. This capability is currently available for mobile platforms only as this is already supported on desktop.

 

Platform Support

  •     iOS
  •     Android
  •     OSX
  •     Windows
  •     Linux

 

How to implement Background Location in the AppStudio App?

  •      Enable the Background Location capability in AppSettings of the App

 

Best Practices

You can monitor the state of the application using the following property 

 Qt.application.active

 

 

4. Promises - Often while creating your apps, you may want to make something happen after something else is done. You may want to want to make an asynchronous request and perform something on completion of the request. Or you may simply want to execute set of operations in a particular sequence. Promises can be used to manage such asynchronous computation, allowing for separate processes to continue in parallel.

 

Promises are a pattern that helps with one particular kind of asynchronous programming: a function (or method) that returns a single result asynchronously. One popular way of receiving such a result is via a callback. Promises provide a simpler alternative for executing, composing, and managing asynchronous operations when compared to traditional callback-based approaches. The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulting value.

 

A promise can be in one of 3 states:

  • Pending - the promise’s outcome hasn’t yet been determined, because the asynchronous operation that will produce its result hasn’t completed yet.
  • Fulfilled - the asynchronous operation has completed, and the promise has a value.
  • Rejected - the asynchronous operation failed, and the promise will never be fulfilled. In the rejected state, a promise has a reason that indicates why the operation failed.

When a promise is pending, it can transition to the fulfilled or rejected state. Once a promise is fulfilled or rejected, however, it will never transition to any other state, and its value or failure reason will not change.

We’re pleased to announce that version 1.4 of AppStudio for ArcGIS is now available.  You can get the new version of AppStudio by logging into http://appstudio.arcgis.com or downloading AppStudio Desktop and Player from the download page.

Key new features of this release include:

  •   Framework Documentation: We’ve greatly expanded our documentation of the AppStudio Framework in Qt Creator, with more property and method descriptions and demonstrative code samples to help you understand the framework’s tools. You can also now press F1 while a component is highlighted in Qt Creator to directly open the help to the relevant section. 
  •   Text to Speech Support (Beta Functionality): An early version of text-to-speech functionality is now available in the AppStudio Framework. This feature is still in beta, and is subject to be refined or changed significantly in future releases.
  •   Android x86 for cloud and local Make: Previously, AppStudio’s Make tools could only build Android apps for ARM processors; while these would work for Android devices using x86 processors, they would be slower and less effective than an app built specifically for an x86 processor. Now, both cloud and local Makes are able to build x86 Android apps, allowing these devices to run at their full potential. Plus users can take advantage of installing the x 86 player app directly on emulators and the x86 specific devices.

 

AppStudio Template new features:

  •   Map Tour

  1. Offline Support – Map Tour now gets cached locally by default on the device. This gives users the ability to view and interact with the apps at places with limited or no network connectivity. All features of the app are available while offline, except for the map. That means pictures, thumbnails and text cached locally on the user’s device. With the ability to clear the cache.
  2. Map Pins have been refreshed with new look.
  3. ‘Learn more’ provides information about a specific map tour. This is particularly useful when you have multiple Map Tours in the gallery. This helps end users to get you know more about the MapTour currently being viewed. This includes the description, thumbnail and last updated information about the Map Tour


  •   Quick Report 


  1. Polyline and Polygon based feature services layers - Users can now report Polyline or Polygon geometry features. The functionality lets user draw or edit their desired paths or polygons on the map. On successful submission the feature gets created using the drawn geometry. The measured length and area for the drawn geometry is also provided in various units. This functionality is available online only. In offline mode the Map is not available.
  2. Secured feature services - You can consume ArcGIS secured REST services using OAuth2 token based authentication. When using the app for the first time it prompts user with a sign-in dialog which creates a new token. The generated token is available locally for any subsequent logins. Similarly, if the app goes offline you are still able to sign in automatically using the previously generated token when creating or editing a report.
  3. Back button support -The back button has been implemented for the Quick Report Template, which means now users can use the device back button to go back to the previous page anytime within the application.
  4. Improvements to Add Details page - Better user experience when working with the Add Details Page. There is a clear button to clear the text field. There is also Done button (enabled for iOS) which makes it easier to hide the keyboard when the user has finished inputting the information in text field. 
  5. Image Viewer - Ability to zoom in and out the image attachments.  Also gives ability to change the image name and add location information to the image.


  •   All three templates have received bugfixes and UI/UX improvements.
  • Other Improvements:
  1.   Qt Updates: Qt components have now been upgraded to 5.8.0.
  2.   Language Support Improvements: AppStudio and AppStudio Player now support Bosnian and Indonesian.

 

 

ENH-000095804

Updated the documentation of the Map Tour app in AppStudio for ArcGIS to clarify the different requirements between the mobile app and the web app that it will be based on.

BUG-000102543

Updated the Quick Report template in AppStudio for ArcGIS to display range or coded value domain fields.

BUG-000102416

Fixed the bug in Story Map Tour template in AppStudio for ArcGIS regarding numeric symbols that are present in ArcGIS Online Story Map.

BUG-000101893

Native Map Tour app created with AppStudio for ArcGIS Desktop now displays the application when Map Tour is created using a map service.

BUG-000099809

Fixed the issue regarding inconsistent behaviour with random characters displaying in the search bar on iOS devices when setting the font size in the text field in AppStudio for ArcGIS.

BUG-000099740

Fixed the issue regarding the list order of map tour points getting reversed in AppStudio for ArcGIS when using AppStudio Player on iOS devices if the base Story Map Tour app is created using image URLs.

BUG-000097388

Estimate strings in Make build progress dialog are no longer truncated.

BUG-000096987

Corrupted Chinese characters that are in Italic font in AppStudio for ArcGIS Player for Android is fixed.

BUG-000096986

Missing text on Sign In page in AppStudio for ArcGIS Player for Android platform is fixed.

BUG-000095977

Updated the documentation of the Map Tour app in AppStudio for ArcGIS to clarify the different requirements between the mobile app and the web app that it will be based on.

 

A new and big feature of AppStudio for ArcGIS version 1.2  is support for Portal for ArcGIS 10.4 or higher. What does this mean for all the developers creating apps using AppStudio for ArcGIS?

 

You can now upload and store your AppStudio apps on-premises using Portal for ArcGIS account settings. Prior to version 1.2 you could only upload apps to using your ArcGIS organizational account. However, some of you expressed requirement for hosting apps on-premises using Portal for ArcGIS which runs on your infrastructure (either running locally or in the cloud).

 

Here is how you configure AppStudio for ArcGIS to work with Portal for ArcGIS.

 

1. Click on the new Settings icon

 

2. By default, ArcGIS Online is configured. You can go ahead and add the portal url to the list. If you have many please choose the appropriate one.

 

 

3. Now when you sign in to AppStudio for ArcGIS, you will be presented with the authentication screen of the portal. Something similar to the screen shown below (Note that each Portal might have a difference authentication set, you will see the same authentication screen as you would while signing in on a browser)

 

 

4. Once you successfully sign in you will see the portal that you have configured as shown in the screen shot below:

 

 

5. When you are ready to upload or update your app to on-premises Portal for ArcGIS. Click on the Upload button as shown below. Then finally click the Add button.

 

 

6. Once the app is successfully uploaded. It should be accessible online using a browser as shown below.

 

 

 

How does this affect my Apps & Templates?

Now you know how to sign-in and upload apps using your on-premises Portal for ArcGIS. Lets talk about different scenarios you may wish to use when building apps in conjunction with Portal for ArcGIS.

 

1) App hosted on your Portal and the content such as webmaps, feature services etc also hosted on your Portal for ArcGIS. For e.g. MapViewer application settings consuming webmap hosted on your portal would look like.

 

 

2) App hosted on your on-premises Portal for ArcGIS but the content is hosted on arcgis online. For e.g. MapViewer application settings consuming webmap hosted on arcgis online would look like.

 

 

3) App hosted on ArcGIS online but the content comes from your portal. In this case your application settings would be same as 1).

 

In the first two scenarios you would sign-in to AppStudio for ArcGIS using your on-premises portal account and in the third scenario you would sign-in using ArcGIS online organizational account to upload your app.

 

Few things to note if you configure AppStudio for ArcGIS with on-premises Portal:

 

1. The whole point of supporting on-premises portal with AppStudio was the requirement that source code of the app cannot be hosted online in the cloud (in your own hosted ArcGIS orgnization). This also implies you do not want AppStudio service to have access to the app source code. Which then implies that our awesome Cloud Make infrastructure (which makes your life easier and does all the heavy lifting) cannot get to your source code to build the app(s). You still have local make to the rescue but you voluntarily take on the responsibility and the effort of building apps and having appropriate environment setup to build. Please refer to this documentation on Local make to get you started.

 

For e.g. When the application is hosted on arcgis online. You have options to build your executables using Cloud make and Local make

 

However, when the application is hosted on your end using portal. You only have an option for building using Local make