Developers

What's new in ArcGIS Maps SDKs for Native Apps 200.1

The ArcGIS Maps SDKs team is pleased to bring you the first update to the 200.x series of Native Maps SDKs: 200.1.

This release sees some exciting new features that we’ve been working on for some time, as well as the new Swift and Kotlin SDKs graduating from beta to being production ready.

Real-time

One of the most requested features for the Native Maps SDKs has been access to real-time or streaming data services. Dynamic and rapidly updated data enables whole new classes of client applications like flight tracking, emergency response coordination, and monitoring weather conditions to name but a few.

We’ve been looking forward to delivering this support to you for some time now, and if you’ve watched the Developer Summit plenary or been to one of our recent conferences, you’ll have had a sneak peek at this. What we’re delivering is no ordinary stream layer.

We decided to support streaming data by reflecting the way real-world objects change across both space and time. Furthermore, because our SDKs have always been about more than merely displaying information, we also ensured that streamed data participates in user interactions and in answering questions in the context of the world around it, just like any other spatial data.

Dynamic Entities
The result is Dynamic Entities, a powerful new set of APIs and capabilities for working with streaming data.

Dynamic Entities in 2D
Dynamic entities driving both a 2D map display and a chart

A dynamic entity is more than just a single data point read from a stream. It represents a real-world object across a stretch of time, including current and historical observations, and the Native Maps SDKs can handle tens, even hundreds of thousands of these at once. Also, a dynamic entity isn’t just for tracking moving assets like a fleet of buses; it can represent a range of data streams like stationary sensors or point-in-time events.

Some key elements of the new dynamic entities capabilities are:

At its simplest, you could get started by creating a Dynamic Entity Data Source and a Dynamic Entity Layer and adding that layer to your map or scene. The Dynamic Entity Layer connects to its data source and takes care of retrieving and displaying the current and historical Dynamic Entity Observations which make up the Dynamic Entity itself.

Just as with any feature service, you specify how the dynamic entity and its observations are displayed by defining renderers, and you can visually link a dynamic entity’s observations together with a track line. In addition to supporting renderers, Dynamic Entity Layer supports labeling, identify, selection, and callouts, and works in both 2D and 3D.

But you can do so much more. You can filter the data that is received from the streaming data source, and sophisticated purge rules allow you to control how much historical data is cached locally in your app at any one time.

Your app can respond to events to know when new observations arrive or are purged, or when new dynamic entities are detected, or when old dynamic entities have been fully purged. You can even listen to events on individual dynamic entities to focus on changes to particular real-world objects.

Dynamic Entities in 3D
A scene view of streaming flight data, following one of the flights.

This first release of Dynamic Entities can connect to ArcGIS stream services (i.e., ArcGIS Velocity and ArcGIS GeoEvent Server streams). Future releases will add support for additional sources, including custom data feeds.

As you can see, there’s a lot of incredible functionality already, but these capabilities are just the beginning of what we have planned for dynamic entities.

For more information, see this excellent blog post, as well as the dynamic entity documentation for .NET, Swift, Java, and Qt (the Kotlin SDK will add dynamic entities in an upcoming release).

Utility Network

We also continue to build out capabilities around the utility network, adding new trace configuration options as well as support for offline isolation and subnetwork traces on hierarchical networks.

We continue to work on additional key offline utility network capabilities, which we will be rolling out over the next few releases.

Indoors

Indoor location now includes a level ID, a key requirement for integrating your indoor location with floor aware maps, allowing location, map, and floor picker components to seamlessly work together driven by the user’s location.

We’ve also improved the Indoor Location Data Source’s path snapping algorithms for a smoother, more accurate indoor location experience.

Edge Rendering

Edge rendering is a useful part of 3D visualization when dealing with untextured 3D Object Scene layers. Web scenes and web clients have supported this for some time, and we expand on the support added in 200.0 by adding edge rendering on iOS.

Geometry Editor

Geometry Editor was introduced with the 200.0 release of the Swift SDK. It is built from the ground up to be a successor to Sketch Editor and introduces a new vertex, edge, and multipart selection methodology along with finer-grained control over the editing experience. It paves the way for enhanced geometry editing capabilities that we have planned for future releases.

Geometry Editor with multipart line and freehand drawing
Multipart line editing, selection cycling, and freehand lines in the Geometry Editor.

Geometry Editor is now available for use in the Swift, Kotlin, Java, and Qt SDKs (.NET will follow suit it in a future release). Please note that Sketch Editor will continue to be available for Java, Qt, and .NET SDKs for some time yet as we build out Geometry Editor functionality.

Other improvements:

As is always the case, we’ve also been busy fixing bugs and making sure our 3rd party libraries are up to date.

Swift and Kotlin SDKs

In addition to all the new features and bug fixes, 200.1 marks the first production release of the new ArcGIS Maps SDK for Swift and ArcGIS Maps SDK for Kotlin. Released in beta at 200.0, these two SDKs now join the .NET, Java and Qt SDKs as fully supported production-ready SDKs.

We’ve taken the opportunity to listen to both external and internal feedback during the 200.0 beta and made several improvements to both the Swift and Kotlin SDKs, so they feel even more natural to use for Swift and Kotlin developers. If you’ve been using the beta SDKs, a list of these changes can be found in the release notes for each of the two SDKs. And if you haven’t because you’ve been waiting for the production releases, then now’s the time to jump on in!

The 200.1 release of the ArcGIS Maps SDKs for Native Apps continues to build on the great foundation of the 200.0 release. The entire team has worked hard to deliver production-ready SDKs for Swift and Kotlin development as well as introducing dynamic entities, enhancing the offline utility network capabilities, and so much more. For more details on what’s new with 200.1, check out the release notes for .NET, Java, Qt, Swift, and Kotlin.

Download and get started

To get your hands on the 200.1 release, go to the ArcGIS Developers web site, browse to the ArcGIS Maps SDK page of your choice and download the SDK. You can also reference the SDK through NuGet, Gradle for Java or Kotlin, or Swift Package Manager. If you’re new to developing with the ArcGIS Maps SDKs for Native Apps, each SDK (.NETQtJavaKotlin, and Swift) has rich guide documentation, API Reference, Tutorials, and samples. Simply sign up for a free ArcGIS Developer account and you’ll be able to access everything you need to develop your app.

About the authors

Nick Furness

Nick Furness is a Product Manager for the ArcGIS Maps SDKs for Native Apps, and Game Engines, specializing in Swift and iOS. He's spent over 20 years working in the GIS space building projects ranging from small mom-and-pop solutions all the way up to enterprise utility and national government deployments. Nick presents at various Esri Developer Summits, the User Conference, and many other events, almost always talking about something to do with the Native Maps SDKs although you might find the odd bit of JavaScript thrown in there.

Connect:

Rex Hansen is a Product Manager for the ArcGIS Maps SDKs for Native Apps and ArcGIS Maps SDKs for Game Engines. He has over 25 years of experience in GIS, spatial analytics, and computer mapping. Currently, he guides the development of native technologies in the GIS industry to use authoritative geospatial content and analysis in offline workflows, photorealistic experiences, and immersive, extended reality solutions.

Connect:

Mike Branscomb is a Product Manager for the ArcGIS Maps SDKs for Native Apps and ArcGIS Maps SDKs for Game Engines. With over 20 years of experience working in the Esri ecosystem, he specializes in .NET, Local Server, and 3D Scene Layers. Mike is also a Scrum Product Owner with over 10 years of experience guiding teams through the product development lifecycle.

Connect:
0 Comments
Inline Feedbacks
View all comments

Next Article

Multi-Scale Contour Styling in ArcGIS Pro

Read this article