Types of apps

There are many kinds of workflows or tasks that can be accomplished using the ArcGIS Platform. You can extend an existing ArcGIS application like ArcGIS Pro, customize a configurable application to your specific needs, or create a completely custom application from scratch.

ArcGIS apps

The ArcGIS Platform contains a variety applications that cover common use cases. These applications include:

Many of these applications can be scripted or extended to add new capabilities.

Configurable apps and app builders

ArcGIS Online and ArcGIS Enterprise include many pre-built configurable applications for you to customize and extend. These applications can be downloaded and customized by developers. The ArcGIS Online help includes a comparison of configurable apps.

In addition to the configurable apps, ArcGIS also has two app builder solutions - Web AppBuilder and AppStudio. Web AppBuilder uses a WYSIWYG widget-based interface to build web apps, while AppStudio publishes mobile applications based on templates. Both of these builders have options for deeper customization by using Web AppBuilder Developer Edition and AppStudio Standard.

Custom apps

ArcGIS APIs and SDKs let developers build custom applications for specific needs. There are a variety of APIs and SDKs targeting different use cases and platforms. You should carefully compare your options in order to choose the right SDK for your project.

Choosing an ArcGIS API or SDK

With Esri's ArcGIS APIs, SDKs, and development tools, you can develop robust location-based applications for just about any modern platform. Esri's solutions address native and web development targeting mobile (Android, iOS, Windows) and desktop (Java, Windows, Linux, macOS) platforms and devices. Using the ArcGIS API for JavaScript you can deploy your app on any modern web browser. Solutions can be built without code for non-developers, minimal coding for developers (Web AppBuilder, AppStudio), or APIs and SDKs that allow developers to build one codebase and deploy it across multiple platforms (Qt, .NET, Java, JavaScript).

ArcGIS software development patterns are similar at a high level across ArcGIS Runtime SDKs and the ArcGIS API for JavaScript. When choosing an approach for creating your own ArcGIS-based applications, it's helpful to have an understanding of the general differences between native and web apps as well as the differences with ArcGIS capabilities.

  • Native strategies offer the best device integration and the most out-of-the-box functionality for apps that have both connected and offline workflows, but they require native development skills. You can use ArcGIS Runtime SDKs to create native apps for a variety of device platforms.
  • Web strategies use HTML, JavaScript, and CSS hosted on a web server and delivered to the user's device or desktop using its web browser. This strategy is best if you don't know which devices your users have or you need to reach a wide audience. You can use ArcGIS API for JavaScript to create web client solutions.

User and team needs

Your most important development goal should be to deliver the best experience and functionality for the audience who is using your app. Consider the following questions when choosing the right platform for your app:

  • Who is the target audience (internal or consumer public)?
  • What functionality (mapping, advanced spatial analysis, etc.) is required to support the application?
  • Are your users sometimes disconnected and do they need the app to run offline?
  • What skills does your current development team have?
  • What data and web services are required to support the application?
  • Are there requirements for device integration, such as use of the device's GPS, compass, media, calendar, contacts, text messaging (SMS), notifications, etc.?

General differences across platforms

Consideration Native strategy Web strategy
Which devices do your users prefer? Target each operating system (OS) and deliver the best native experience. This means writing an app for each OS or taking advantage of cross-platform development options. Build a single web application for use in browsers on all devices.
What skills do you have? Requires skills developing on each native platform (for example, Objective-C for iOS, Java for Android, and .NET for Windows). However, several Runtime SDKs provide cross-platform development options. Requires HTML, JavaScript, and CSS knowledge.
Do you want to distribute the app through a store (App Store, Google Play, Windows Store, Amazon)? Distribution through a store is supported. Distribution through a store is supported with use of additional frameworks[1].
Access to device capabilities Access to all device capabilities (touch, GPS, compass, calendar, media, contacts, camera, and so on) Limited to what the browser running the app supports. For example GPS is supported on most modern browsers. Some mobile browsers also allow accessing the camera and using the devices compass.
Performance Native performance Typically less than native performance.
Maintenance across multiple devices and desktops App updates require ad-hoc, enterprise, or store distribution. App updates are immediately available to all users on all devices[2].

[1] ArcGIS API for JavaScript lets you distribute your app in a browser and a hybrid app on multiple platforms with PhoneGap, Apache Cordova™, Intel® XDK, Trigger.io, or Electron.
[2] If using a hybrid strategy, an app build and deploy is required.

ArcGIS capabilities and features across platforms

Desired capability Native strategy Web strategy
Offline data access and app usability Offline use is built into the app and includes offline map viewing, editing with sync, geocoding, routing, and analysis. Some local storage is possible in modern web browsers. Offline operation is possible but requires custom development.
Routing and geocoding Online and offline are supported. Requires ArcGIS Desktop to author offline data sources. Requires network connection.
GeoEnrichment (demographic, business and landscape data sets) Requires network connection. Requires network connection.
Geometry operations like clip, buffer, intersect, simplify, union, and split Offline is supported and recommended. Offline is supported and recommended.
Model-based analysis (geoprocessing) [1] Supported online, offline, and using Local Server[2]. Requires network connection.
Geometric network tracing [3] Supported online, offline, and supported using Local Server[2]. Requires network connection.
Advanced cartography and symbology including support for rotation, offset, vector/font based symbols and military symbology (2525b-2, C, and D) Fully supported. Support for rotation and offset. Full support is available from Map Services via exported images.
Display and animate large numbers of features Display and animation while maintaining smooth and fast map navigation is fully supported. Supported but not recommended for large numbers.
Local file-based data (vector and raster) offline Offline and local access to vector and raster data is built in. Not supported.
Vector Tile basemaps Online and offline. Requires network connection.
Real-time GIS, such as stream layers Not supported. Supported.
3D Online and offline (Scene packages with elevation source). Requires network connection.

[1] Build models in ArcGIS Desktop, and provide analysis to clients through geoprocessing services.
[2] Local Server is available on Windows and Linux in the ArcGIS Runtime SDKs for .NET, Java, and Qt.
[3] Supported through model-based analysis (geoprocessing service) such as valve isolation trace.

Cross-platform development with ArcGIS

Several ArcGIS APIs and SDKs let you write your application once and deploy to multiple platforms in the following ways:

Android iOS Windows macOS Linux
ArcGIS Runtime SDK for Android
ArcGIS Runtime SDK for iOS
ArcGIS Runtime SDK for Java [1]
ArcGIS Runtime SDK for macOS
ArcGIS Runtime SDK for .NET [2]
ArcGIS Runtime SDK for Qt [3]
ArcGIS API for JavaScript [4]
Web AppBuilder for ArcGIS [4]
AppStudio for ArcGIS [5]
ArcGIS REST API [6]

[1] ArcGIS Runtime SDK for Java supports cross-platform development for Windows, Linux, and macOS desktop systems.
[2] ArcGIS Runtime SDK for .NET supports building applications for Windows desktops, tablets, and phones from a single codebase.
[3] ArcGIS Runtime SDK for Qt lets you write once and deploy to Android, iOS, Linux, macOS, Windows, and others. Code written using the QML API must be compiled natively for each target platform, but it is the same code for each platform. There are no differences in the Qt QML API or Esri Runtime for Qt between platforms, which allows for cross-platform application development with a single code-base. To achieve this, some compromises must be made. For example, the available UI controls must exist on all platforms; specific UI components that only exist on one platform cannot be used when building cross-platform code. However, for a large percentage of use cases, the QML API will be a good choice.
[4] ArcGIS API for JavaScript lets you distribute your app in a browser and a hybrid app on multiple platforms with PhoneGap, Apache Cordova™, Intel® XDK, Trigger.io, or Electron.
[5] AppStudio for ArcGIS apps can be extended using the ArcGIS Runtime SDK for Qt.
[6] ArcGIS REST API lets you to use web services in any platform capable of issuing HTTP requests.

Hybrid strategies

Hybrid strategies use a mix of web app content (HTML, JavaScript, and CSS) and native components to build native applications. This includes frameworks such as Apache Cordova or Electron. Hybrid app strategies are often used if:

  • Expanded access to native device capabilities (such as push notifications, contacts and calenders) and storage is desirable.
  • Development teams have extensive experience with web apps and little experience with native apps.

The main approach used in hybrid apps is to embed web content into a native application by using an API such as WebView (on Android) or UIWebView (on iOS), which is a specialized version of the standard mobile browser accessible via an API. More advanced strategies include leveraging JavaScript with even tighter integration into the native platform such as using Electron for building desktop applications. Esri does not provide specific frameworks for hybrid application strategies.