This page provides details about enhancements in the 200.0 (Beta) release of ArcGIS Maps SDK for Swift. It also lists deprecations, resolved issues, known issues, and more.
Enhancements
ArcGIS Maps SDK for Swift (Beta)
ArcGIS Maps SDK for Swift is designed for building powerful mapping applications using patterns and techniques familiar to Swift developers. It is the next-generation mapping API succeeding ArcGIS Runtime SDK for iOS, sharing a lot of underlying architecture, capabilities, and concepts, tuned to fit the latest Apple developer technology. Some highlights are listed below.
Aligned with Swift
Swift is modern and concise, promoting safety and developer productivity. ArcGIS Maps SDK for Swift closely follows Swift's API naming conventions and embraces many language features, such as default arguments, value types, optionals, and swift packages to make it feel intuitive and natural to Swift developers.
SwiftUI support
SwiftUI makes it easy to build multi-platform user interfaces with less code using a declarative approach. ArcGIS Maps SDK for Swift includes native SwiftUI Map
and Scene
components to display 2D maps and 3D scenes. These components have built-in support for user interaction and can be customized through well-known patterns such as SwiftUI modifiers. The accompanying open-source toolkit also provides a number of ready-made mapping components such as Scalebar, Compass, FloorFilter, and Popup to jump-start your application development.
Simpler with Swift concurrency
Swift concurrency makes it easy to manage complexity in your app by writing readable, asynchronous code. ArcGIS Maps SDK for Swift adopts Swift's structured concurrency features such as async/await to eliminate completion handlers and makes your code safer. It also allows you to easily integrate asynchronous workflows into SwiftUI using the task
modifier.
Mac Catalyst support
Mac Catalyst allows you to customize and run iOS apps on Mac computers. ArcGIS Maps SDK for Swift offers first-class support for developing mapping applications for macOS by leveraging high-performance Metal rendering, Apple silicon compatibility, and keyboard/mouse/trackpad input.
Geometry
New GeometryEditor class
A new GeometryEditor
class provides a simple way to create or edit geometries interactively in a map view. It supports a wide array of use cases, from creating quick notes on a map to allowing feature geometry editing workflows. The interactive use of GeometryEditor
is complemented by its support for programmatic creation and editing methods, providing a powerful way to guide and supplement the built-in UX workflows. The appearance of the edited geometry can be customized using the range of symbology available in the API.
The GeometryEditor
is built from the ground up as the successor to Sketch
in the ArcGIS Runtime SDK for iOS. It introduces a new vertex and edge selection methodology, along with finer-grained control over editing. It is the foundation for additional geometry editing capabilities that will roll out in future releases.
Utility networks
Run utility network traces offline
ArcGIS Maps SDKs for Native Apps can now run utility network traces (connected, subnetwork, upstream, and downstream) in a fully disconnected environment. You can create and fine-tune trace configuration options, or leverage named trace configurations to support even more complex traces while offline. The trace result types supported with offline utility networks are elements and functions. Offline tracing requires a mobile geodatabase with full utility network topology. These can be created using ArcGIS Pro as a standalone mobile geodatabase. In the future you will be able to create sync-enabled mobile geodatabases containing utility network topology using the OfflineMapTask
or GeodatabaseSyncTask
, or with offline map areas.
In this release, you can use the Utility
to determine which utility network operations are available with your data. For example, a sync-enabled mobile geodatabase created with ArcGIS Enterprise 10.9 containing utility networks supports querying associations but not tracing. However, a standalone mobile geodatabase exported with ArcGIS Pro 2.9 or later that includes a full utility network supports both querying associations and tracing.
Labels and annotation
Vertical text can display upright CJKV characters
Annotation features and labels displayed using ArcGIS Maps SDKs for Native Apps can now have their character glyphs rotated in place to appear vertically. This is primarily intended for Asian text (including Chinese, Japanese, Korean, and Vietnamese). It requires that the annotation be published from ArcGIS Pro with the text symbol's block progression property set to right to left, and that the layout of the overall text is closer to vertical than horizontal. See Text symbol properties in the ArcGIS Pro documentation for more information.
Indoor positioning
Positions are restricted to the surveyed area
In previous releases, indoor positions were interpolated for areas outside of the Indoor Positioning System (IPS) survey. Positions are now only shown for areas that have been surveyed.
Quality improvements
- Better compatibility with
Route
Tracker Location Data Source - More consistent ordering of
IndoorsLocationDataSource
time stamps - Improvements to positional accuracy and floor level estimation
Arcade
Support for Arcade 1.20
ArcGIS Maps SDKs for Native Apps now support Arcade 1.20. For more details, see the Arcade 1.20 release notes. Some enhancements include:
- New functions: StandardizeGuid and HasValue.
- A new profile for QuickCapture.
Note that the enhancement to the GetUser function to accept zero arguments always returns null, since ArcGIS Maps SDKs for Native Apps do not have the concept of an active portal.
Improved consistency with the online implementation
A trailing comma is now consistent with the online Arcade implementation. For example:
- Function definitions
function my
Fn(a,b,c,) {} - Function calls
my
Fn(10, 11, 12,) - Array literals
[1,2,3,]
- Dictionary literals
{ hello
:"world", good :"night", }
The checker that determines where function definitions are allowed has been improved. These checks are now consistent with the online implementation and prevent edge cases that could cause confusion around scoping rules. Function definitions within while
statements, inside other function definitions, and codeblocks of if
statements are not allowed.
Breaking API changes
- All API that was deprecated in 100.x has been removed in this release.
- In Arcade 1.20, the terms
import
andexport
are now keywords and are no longer available for use as variable or function names in an Arcade script.
Behavior changes
- Arcade expressions now support case insensitive lookup of attribute names for
Graphic
s (as they already do forOverlay Feature
s)Layer - If a
Label
expression attempts to use an attribute that does not exist, then no label will be produced (rather than assuming an angle of 0). This behavior is consistent with theDefinition. Angle Label
that produces the text.Definition. Expression
Deprecations
API deprecations
There are no API deprecations with this release.
OS and framework deprecations
There are no OS or framework deprecations with this release.
Issues resolved
- Third Party library
libexpat
has been upgraded to v2.5.0 - Third party library
zlib
has been upgraded to v1.2.13
Known issues
- Magnifier is currently not supported
- Freehand and Shape sketching are currently not supported
- Viewpoint animation is currently not supported
- Double-tap-and-slide-up-down gesture for zooming in/out on 2D maps is currently not supported
- Double-tap-and-drag gesture for look around in 3D scenes is currently not supported
- Augmented Reality functionality in the open-source toolkit is currently not supported
Changes in samples
What's new
- Migrated 27 samples from the iOS Sample Viewer to showcase commonly seen patterns in the new ArcGIS Maps SDK for Swift
- Completely redesigned sample viewer app using Apple SwiftUI
- Leveraged various new Swift features including
async
/await
, async sequences, structured concurrency,if let
shorthand, and more - Introduced the new authentication challenge handler pattern
Related topics
- System requirements for 200.0
- Install and set up
- Display a map (Tutorial)
- Product Life Cycle (Esri Support Site)