What is an app item?

AppStudio apps are stored as items in ArcGIS. Whether you create a new app or one from a template, every app is comprised of the same core files along with your own custom content. You can share your app item between your own devices, with others, or issue a request to Esri's cloud make service to generate operating system specific installation files. The following describes the files that are included in your app item.

Appinfo

Appinfo is a configuration file that contains information that defines the operation of your app. If your app contains any properties that have been defined in its settings, these are stored in the Appinfo file and can include:

  • Capabilities, for example, use of audio, bluetooth, camera, location sensors, microphone, network and storage.
  • Deployment platform choice.
  • Minimum display size, portrait or landscape specifications.
  • Custom defined properties.
  • Resources, for example, background and app icon images.
  • Translation files and their location.

Appschema

Appschema is a configuration file that defines how to present the custom defined properties of an app to the user in AppStudio Settings. The second tab of the Settings tool—by default this is labeled as Properties, but can be customized— displays all custom defined properties. Depending on definitions in Appschema each property can be displayed with UI that assists the user to change the property or as a simple list of properties for editing.

For example if a property is defined to be of type "image", an image browser is presented a preview of the image is displayed.

Property types include:

  • Note—Text to be shown on screen, useful to describe a group of properties.
  • String—Includes attributes of placeholder (placeholder text), regex (validation regular expression pattern) and error (error message shown if value is invalid).
  • Number—Includes attributes of placeholder (placeholder text), minimum (minimum value allows), maximum (maximum value allowed), precision (maximum number of digits after the decimal point) and error (error message shown if value is invalid).
  • Boolean—Presents the user with a boolean control.
  • Richtext—Includes attribute of placeholder (placeholder text).
  • Options—An array of objects containing label and value attributes.
  • Color—Presents the user with a color picker.
  • File—Includes attributes of folder (folder name) and filters (array of strings containing file filters).
  • Image—Includes attributes of folder (folder name) and filters (array of strings containing file filters).

For each property you can define:

  • Type—One of the types described above.
  • Name—Name of the property. Cannot contain spaces.
  • Label—Label for the property. Can contain spaces.
  • Hint—Hint text to help the user define the property.
  • Value—Default value for the property.

Properties can be categorized so they can be presented to the user in groups. For example categories can be displayed as tabs. Both the title of the properties tab and the category tabs can have custom titles.

Iteminfo

Iteminfo is a configuration file that contains information that defines the ArcGIS item. This includes:

  • Access information and permissions.
  • Thumbnail, item name, summary, and description.
  • Owner, organization, and group information.
  • Tags and keywords.

QML/JavaScript

The .qml and .js files form the structure of your app. If you use a featured template to create an app, you see numerous .qml files. If you created a new app in AppStudio, you see only a single .qml file, however your app can use any number of .qml files. JavaScript can be written inside your .qml files (as shown in the featured apps) or can be referenced by your QML from external .js files.

Assets

Assets include background, button and logo images, as well as any other data you want to include with your app. These assets must be found in your project folder to be included in your ArcGIS item, and any subsequent distributions or installation files.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.