The Runtime team is pleased to announce the latest release of the Runtime SDK for iOS (see the release notes, and the announcement on the ArcGIS blog).
Yet again, we follow the track based approach (don't expect that to change soon), so there's lots of new functionality for Defense/Public Safety, and Utility customers, as well as improving platform support. There's nothing particularly specific to iOS developers this time around, but some pretty cool new functionality nonetheless:
- New offline map capabilities: There are 3 new pieces to play with:
- Checking the publishing status of a preplanned map. Previously you would have to trust that the preplanned offline map had finished generating (fairly reasonably if they're done overnight) but you couldn't exactly tell. Now there's an API to check whether the preplanned map has finished packaging and is ready to download. Tell your users! I mean, in a nice UX…
- Download an offline map for view only: This one seems a bit subtle, but it's very helpful. Typically, when you download an offline map, the feature data that comes with it comes in a geodatabase that is registered with the server. That allows us to track edits and let you sync edits up. But it's a resource held on to on the server, and when you're done with the offline map you'd have to unregister the geodatabase. If you know you're not going to edit and sync (either preplanned or on-demand), you can tell the API and we'll make sure you don't put that extra burden on the server. You also won't need to unregister stuff when you're done with the map.
- Online services in an offline map: What's that? An oxymoron? Well, not quite. Sometimes you want to use an offline map for when you're offline, but still bring in live data for context if you happen to have a network connection. Weather is an obvious example. But you could include wildfires, flooding, traffic, etc.. With the last release we added the ability to do this with with Mobile Map Packages from ArcGIS Pro. Now you can do it with Offline Maps from ArcGIS Online. Just specify that you want to include layers that can't be take offline in the AGSGenerateOfflineMapParameters or AGSGenerateOfflineMapParameterOverrides.
- Lots of new Utility Network stuff: New trace types… Getting geometries back directly in trace results (rather than getting elements and then having to get geometries for them)… Return function results from a trace…
- OGC API - Features: It's still a specification in progress, but we cover most of what's in Part 1. We'll be improving this over the next releases.
- AGSRouteTrackerLocationDataSource: This one is pretty neat. Just create this with a AGSRouteTracker, and set it as the AGSMapView.locationDisplay.dataSource and your blue dot will intelligently snap to the route you're navigating. You could do this before by creating your own custom location data source, but it was quite a bit of work. You're welcome! Actually, I'm mostly just sorry we made you do all that work.
- Know if a layer is having trouble getting data: This goes well with the new online data in offline maps. You can watch the layer view state and there's now a Warning type that lets you know we've been able able to get to the layer source, but had some trouble getting data out of it (e.g. if your network connection went awol). The error will tell you more.
- Tookit updated: The toolkit has some updates and fixes. See this blog post for more details.
There's much more new stuff to play with too (and lots more to come in December with Update 10). Check out the release notes for more details, and as always we hope you enjoy the new capabilities. Please feel free to DM me and let me know what you're building!