Starting today, Runtime developers have new toolsets for developing apps! Esri is pleased to announce that ArcGIS Runtime 100.0, the project also known to many of you as “the quartz release”, is now available! Version 100.0 of the family of ArcGIS Runtime SDKs is the next generation of ArcGIS Runtime technology. This major release introduces a treasure trove of new and revolutionized capabilities, as well as purposefully redesigned APIs from previous releases.
A new beginning
The 100.0 release is the first release in the newly-architected family of Runtime APIs, and it’s only the beginning. It reflects the next generation of ArcGIS Runtime, re-designed from the ground up. This new architecture has enabled new capabilities and performance optimizations and provides API and functional consistency across all of the Runtime SDKs. The entire API was re-imagined to incorporate these new capabilities and innovative ideas from all of the ArcGIS Runtime SDKs. With great new and powerful features that are available now for your apps to go to market with, 100.0 also includes some features labeled as BETA. These are preview features that we welcome your input on, and these will be released as FINAL in updates that are planned for 2017.
What’s inside? The highlights
This release of the ArcGIS Runtime puts the map and the scene at the heart of the API to allow developers to quickly leverage the ArcGIS platforms Web GIS capabilities. The following are just a few of the benefits of this new release. While in no way exhaustive, it is a pretty long list, so here we go…
On desktop platforms, 3D has been brought to the ArcGIS Runtime for native app development. Build 3D scenes with raster, tiled and vector data sets including 3D specific symbology for enhancing viaualization of your geographic data. 3D surfaces can be used with scenes, with surface data sources coming from raster files or from elevation services. Scene layer packages (.slpk’s) can be created with ArcGIS Pro and deployed to a device for 3D visual display in a disconnected, offline environment. All 3D capability is Beta on mobile platforms (Android, iOS, Windows 10 Mobile).
Maps and scenes
The Map object has been split out from the view that displays it, to represent the model or viewmodelcomponent in a Model-View-Controller (MVC) or Model-View-ViewModel (MVVM) architecture. This same design is also implemented for Scene objects. These important objects at the heart of the ArcGIS Runtime have an API that follows the ArcGIS Web GIS information model. They contain operational layers, basemaps, bookmarks, popups and other ArcGIS specific data to be leveraged in your apps. They also include convenient APIs to instantiate them from URLs, portal items or default basemaps so you can get great maps working quickly.
GeoViews (MapView and SceneView) are solely responsible for display and interaction, separating concerns from the model objects (Map and Scene) and allowing the APIs to be simplified and harmonized between the 2D and 3D worlds. The Views contain Graphic Overlays, as well as operations to easily identify features and graphics without having to write any layer type specific code.
Vector tiled basemaps
You can use vector tiled layers in your ArcGIS Runtime app. These layers are similar to raster-based tiled layers but they are faster, smaller, and look better on high resolution devices. They also differ in the way cartography is delivered. Instead of raster pixels, vector tiled layers deliver cartography using vectors so cartography is rendered at runtime, leveraging all the available pixels on the device. The file format is binary and conforms to the Mapbox vector tile specification. Vector tiled layers don’t contain any feature data and they don’t support identify or search operations.
Using, authoring and editing maps
The mapping API seamlessly integrates with the portal API, allowing you to access portal content and use them as maps. You can also edit existing maps or author completely new maps and save them back to the portal, which can then be used elsewhere in the ArcGIS system.
To make things easy for you, the APIs for common operations such as editing, searching, geocoding or routing are the same whether you are online or offline. Offline maps with great symbology, place search and directions can be packaged with ArcGIS Pro, side loaded onto your device and used in Runtime apps through Mobile Map Packages. A mobile map package is a set of items bundled together for transport, often for use in offline workflows. The items are one or more maps, their associated layers and data, and optionally networks and locators. A mobile map package also includes metadata about the package. You can also take your connected ArcGIS based feature and tiled layers offline on demand with dedicated Tasks and associated Jobs. The GeodatabaseSyncTask works with ArcGIS feature services to take features offline in a mobile geodatabase (.geodatabase file) and allow them to be edited and synced. The ExportTileCacheTask extracts tiles from a tiled ArcGIS map service as a tile package (.tpk file) and allows them to be viewed offline.
Graphics and Graphic overlays
Graphics have always been used to display temporary application data on top of a map. To formalize this usage, graphics are now added to GeoViews (MapView or SceneView) as overlays. This ensures that graphics are always displayed on top, even when map layers are reordered. This also makes it convenient to switch out maps while still keeping the graphics in place. It is now also possible to identify graphics overlays in a map view via a single convenient method.
Military symbology API
On desktop platforms, the API and workflow for using Military symbology has been greatly simplified in this release. You can now use military dictionary style files as the basis for a Dictionary Renderer which can be applied to graphics overlays OR feature layers. This capability is Beta on mobile platforms.
You can now visualize raster data on desktop devices from many popular raster file formats such as DTED (Digital Terrain Elevation Data), GeoTIFF, RPF (Raster Product Format), NITF (National Imagery Transmission Format), HRE (High Resolution Elevation), Erdas Imagine, and more. Change the visualization of raster data by computing hillshades, applying colormaps, or stretching the statistical distribution of pixel values. This capability is Beta on mobile platforms.
Centralized handling of authentication
All security and authentication related aspects are managed by a new AuthenticationManager class which helps to unify and centralize how authentication is performed regardless of the security solution in place. The authentication manager issues an authentication challenge whenever security related events are encountered. Developers can monitor these challenges and respond with credentials to get access to secured resources, or allow the authentication manager to prompt the end user for credentials.
Geometry and geometry builders
The fundamental geometry objects remain the same – point, multipoint, polyline, and polygon but they are immutable and cannot be modified once they are created. The constructors on geometry objects allow them to be created easily in one shot if their coordinates are known. You can also use geometry builders to progressively construct new geometries, either from scratch or by using an existing geometry as the starting point and then manipulating its coordinates.
Better handling of asynchronous resources
Resources, such as maps, layers, tasks etc, that load metadata asynchronously to initialize their state adopt the loadable pattern. This pattern makes the behavior of loading state more consistent and uniform, and also makes its asynchronous nature more explicit. Loadable resources do not automatically load their state. They load lazily, when asked either by the developer, or by other objects that depend on it. The status of a loadable resource can be easily monitored to determine if it is loading, loaded successfully, or failed to load, and you can retry loading it if it failed to load.
It’s now easier to determine where errors occur in the stack so you can provide better error messages to your users. A new standardized error domain property is available, which indicates if the error occurred client-side within the ArcGIS Runtime or server-side from an ArcGIS Server service or web service. A consistent error code property can be used to further diagnose what the error was and what error message should be displayed to the user.
There are some specific enhancements and new capabilities that are unique to the different SDKs as well. For example, one significant addition to the ArcGIS Runtime is support for Xamarin. While in beta, the ArcGIS Runtime SDKs for .NET and Xamarin were separate products. With this commercial release of version 100.0, the ArcGIS Runtime SDK for Xamarin and ArcGIS Runtime SDK for .NET have been combined into a single product, the ArcGIS Runtime SDK for .NET, where .NET represents the .NET Platform. This product contains APIs for WPF, UWP, Xamarin.Android, Xamarin.iOS, and Xamarin.Forms which let .NET developers share source code and build native mapping apps for Windows, Android, and iOS platforms. All documentation and samples have been combined on the ArcGIS Developers web site as part of the ArcGIS Runtime SDK for .NET. The product is delivered as a single download (Visual Studio extension – VSIX) on the ArcGIS for Developers web site. In the near future the product will be available for download from the Visual Studio Gallery and as packages on NuGet.org.
With respect to expanded platform support, this is the first commercial release to support Windows 10. ArcGIS Runtime SDKs for .NET, Java, and Qt can be used to build classic Windows desktop apps and .NET can be used to build Windows 10 Universal apps for use in production. In addition, ArcGIS Runtime SDK for Java introduces support for the macOS platform at this release. Please see the Java SDK release notes for more details.
A product name change has been made for OS X. The name ‘ArcGIS Runtime SDK for OS X’ has been changed to ‘ArcGIS Runtime SDK for macOS’. This reflects a change by Apple to provide more consistent naming for their operating systems.
A new web site for ArcGIS developers
We’re excited to bring you a re-envisioned, redesigned ArcGIS Runtime developers web site experience that we feel will get you to the key resources and tools quickly and effectively. Here, you’ll find the product overview, motives and value propositions for the Runtime, and be able to launch into those specific SDK platforms you need.
Get started today
Start by going to the ArcGIS Developers web site, browse to the home page for your SDK of choice, and get the SDK. If it’s your first time with us and you don’t have an ArcGIS Developer subscription, simply sign up for a free account and you’ll be able to have access to everything you need.
Alternatively, you can contact Esri Customer Service or your regional Esri distributor and order the SDKs on media.
The Quartz Beta programs are now officially over, so GeoNet is the best place for you to collaborate with fellow quartz developers and Esri staff. Each Runtime SDK has it’s own subspace under Native app developers. To all of our faithful beta testers, we would like to thank you sincerely for your participation in the betas and for helping us build a product that best suites your needs.
You’re ready, we’re ready. ArcGIS Runtime SDK 100.0 is here. Let’s build some great ArcGIS solutions together! We look forward to continuing to support your success!
The ArcGIS Runtime Team