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.
The ArcGIS Platform contains a variety applications that cover common use cases. These applications include:
- ArcGIS Desktop - A desktop suite of GIS apps including ArcGIS Pro and ArcMap
- Collector for ArcGIS - Mobile data collection app
- Navigator for ArcGIS - Highly customizable, mobile routing solution
- Operations Dashboard for ArcGIS - Realtime, customizable dashboard
- Explorer for ArcGIS - Discover and view GIS data in your organization
- Workforce for ArcGIS - Mobile and web app for coordinating field work
- Survey123 For ArcGIS - Lightweight app for data collection and surveys
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.
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
- 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.
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.|
|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.|
|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.|
 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) ||Supported online, offline, and using Local Server.||Requires network connection.|
|Geometric network tracing ||Supported online, offline, and supported using Local Server.||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.|
 Build models in ArcGIS Desktop, and provide analysis to clients through geoprocessing services.
 Local Server is available on Windows and Linux in the ArcGIS Runtime SDKs for .NET, Java, and Qt.
 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:
|ArcGIS Runtime SDK for Android||✓|
|ArcGIS Runtime SDK for iOS||✓|
|ArcGIS Runtime SDK for Java ||✓||✓||✓|
|ArcGIS Runtime SDK for macOS||✓|
|ArcGIS Runtime SDK for .NET ||✓||✓||✓|
|ArcGIS Runtime SDK for Qt ||✓||✓||✓||✓||✓|
|Web AppBuilder for ArcGIS ||✓||✓||✓||✓||✓|
|AppStudio for ArcGIS ||✓||✓||✓||✓||✓|
|ArcGIS REST API ||✓||✓||✓||✓||✓|
 ArcGIS Runtime SDK for Java supports cross-platform development for Windows, Linux, and macOS desktop systems.
 ArcGIS Runtime SDK for .NET supports building applications for Windows desktops, tablets, and phones from a single codebase.
 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.
 AppStudio for ArcGIS apps can be extended using the ArcGIS Runtime SDK for Qt.
 ArcGIS REST API lets you to use web services in any platform capable of issuing HTTP requests.
- 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