The native ArcGIS Runtime SDKs help developers build applications that provide comprehensive spatial capabilities and deploy them to a variety of popular mobile and desktop platforms and devices. These SDKs enable users to explore and leverage the ArcGIS platform's Web GIS capabilities by accessing and working with data in the cloud but also taking data offline to perform various workflows such as editing, synchronizing, geoanalytics, geocoding, locating as well as routing. All native ready-to-use apps by Esri, such as Collector for ArcGIS, are based on ArcGIS Runtime technology. The new version 100.0 (formerly known as “Quartz”) is a major release with significant changes in terms of functionality, architecture, APIs, and licensing.
Highlights include 3D visualization and the use of new data formats as well as working seamlessly with all Web GIS platforms, such as ArcGIS Online and Portal for ArcGIS. Moreover, new capabilities and enhancements have been implemented for geometries, Smart Mapping, symbology, and many other features. Authentication has become much simpler, too.
Apps can now visualize 2D maps as well as 3D scenes, both relying on the same data sources. 3D scenes additionally use scene layers to render local 3D scene layer packages or 3D scene services, e.g. for visualizing 3D building models. Using elevation services or local raster data, you can incorporate elevation models into scenes. There is special 3D symbology for features as well as 3D options for rendering and displaying, such as extrusion, to manipulate the view and enhance features.
Mobile map packages, vector tile basemaps, and many other data formats are now available as data sources. Mapping has generally become more easy, e.g. by using preconfigured, ready-to-use maps from the cloud or as a data package rather than compiling them from different data sources on the client side. In addition to that, there are tools available for saving and sharing maps compiled on the client side.
The integration of ArcGIS Runtime into the concept of Web GIS has been significantly enhanced. Prior to this version, content already included web maps, services, and data. It is now possible to use this content to create, manipulate, and save workflows. Authentication Manager, a class that can be configured to implement, manage, and control security-related events, is now available for easy and centralized authentication handling.
Changing the Architecture and APIs
ArcGIS Runtime v100 architecture
All ArcGIS Runtime SDKs use the same C++ runtime core. This core controls the communication to the hardware of the end device and implements the business logic for visualization. It is responsible for accessing the data and the engines for analyses, navigation, labeling, and other operations. Platform-specific APIs for iOS, Android, .NET, Java, Qt/QML, and OS X all make use of this runtime core. As an example, the ArcGIS Runtime SDK for Android is made up of the Android API, the runtime core as well as the related documentation.
This C++ application programming interface (API) and the C application binary interface (ABI) between platform-specific APIs and the runtime core are new technology features. In the previous version, the APIs directly accessed the runtime core libraries which caused a higher programming effort (Interop) just for communication. This effort has been reduced significantly by the new interfaces. Another benefit is that new functionality is quickly implemented into all SDKs which in turn minimizes error susceptibility.
All platform-specific APIs have been completely redesigned. This was mostly necessary to incorporate the 3D functionality and implement the new way of accessing the runtime core. Additionally, APIs have been standardized to the most part (e.g. consistent use of class and method names). Error handling has been simplified, and a loadable pattern can now be used to monitor the asynchronous nature of loading data.
With ArcGIS Runtime v100.0, cross-platform development is also enabled with some SDKs. As an example: .NET developers may now use the ArcGIS Runtime SDK for .NET with incorporated Xamarin technology to develop cross-platform Xamarin apps for Android and iOS. You can also build and deploy to OS X as a platform using ArcGIS Runtime SDK for Java.
New Deployment License Model
With ArcGIS Runtime v100.0, Esri provides a new licensing model for deploying apps at four license levels: Lite, Basic, Standard, and Advanced. The functionality differs depending on which license level is acquired but common operations are provided whether you are online or offline. Lite level is available for free and enables users to create viewer apps with maps, geocoding, and simple routing. At the Basic level, developers can create apps for data collection.
Standard and Advanced level functionalities address developers of advanced GIS applications. These apps can provide access to additional data formats and analysis capabilities. The Standard and Advanced license levels come with an Analysis Extension, supporting a subset of the ArcGIS toolboxes Analysis, Network Analyst, Spatial Analyst, and 3D Analyst.
Two options are available to set the license level for your ArcGIS Runtime apps: deployment license key and named user (not available yet for Standard and Advanced).
Migration from ArcGIS Runtime Version 10.2.x to v100.0
Due to large-scale changes in the architecture and within the APIs, a simple migration from version 10.2.x to v100.0 is not possible. Developers need to rewrite apps, and some functionality from the previous version has not been included in ArcGIS Runtime v100.0 yet. Future releases will close this gap.
With ArcGIS Runtime v100.0, a new era has begun. It is an important foundation for all future requirements on how native apps leverage and support the concept of Web GIS and make use of the ArcGIS functionality. For ArcGIS Engine developers ArcGIS Runtime is now a valid option to create GIS applications using modern technology. Esri Inc. puts it in a nutshell: Building a platform for app developers for the future!