Toolkit

ArcGIS Maps SDK for Swift offers an open source toolkit that contains ready-made UI components to simplify the development of mapping and GIS apps in Swift. Check out the examples project to see these components in action or read through the documentation to learn more about them.

To use Toolkit in your project:

Toolkit Components

  • Authenticator - Displays a user interface when network and ArcGIS authentication challenges occur.
  • BasemapGallery - Displays a collection of basemaps.
  • Bookmarks - Shows bookmarks, from a map, scene, or a list.
  • Compass - Shows a compass direction when the map is rotated. Auto-hides when the map points north.
  • FeatureFormView - Enables users to edit field values of a feature using pre-configured forms.
  • Floating Panel - Allows display of view-related content in a "bottom sheet".
  • FloorFilter - Allows filtering of floor plan data in a geo view by a site, a building in the site, or a floor in the building.
  • FlyoverSceneView - Allows you to explore a scene using your device as a window into the virtual world.
  • JobManager - Manages saving and loading jobs so that they can continue to run if the app is backgrounded or even terminated by the system.
  • OverviewMap - Displays the visible extent of a geo view in a small "inset" map.
  • PopupView - Displays details, media, and attachments of features and graphics.
  • Scalebar - Displays current scale reference.
  • SearchView - Displays a search experience for geo views.
  • TableTopSceneView - Allows you to anchor scene content to a physical surface, as if it were a 3D-printed model.
  • UtilityNetworkTrace - Runs traces on a web map published with a utility network and trace configurations.
  • WorldScaleSceneView - Allows you to integrate scene content with the real world.

Enhancements in 200.5

Feature Form

The Feature Form toolkit component now supports attachments. You can download and view existing attachments for a feature. You can also collect new attachments such as images or video from the camera or photos library, or other types of files on the device. You can also delete or rename existing attachments.

Preparing for Swift 6

This release makes it easier for your apps to enable Swift Complete Strict Concurrency Checking and ultimately adopt the Swift 6 Language Mode. Updates include:

  • Fix warnings when building with strict-concurrency
  • Mark thread-safe types as conforming to Sendable.

To learn more, see the Apple documentation on Sendable and Swift 6 migration video from WWDC.

Resources

Instructions

Swift Package Manager

  1. Open your Xcode project. In the menu bar, select File > Add Package Dependencies...
  2. In the search bar, enter https://github.com/Esri/arcgis-maps-sdk-swift-toolkit as the package repository URL.
  3. Optionally, select an option for the Dependency Rule if you want to specify an exact version or a range of versions to use.
  4. Click Add Package.
  5. Add import ArcGIS and import ArcGISToolkit in your source code and start using the toolkit components.

New to Swift Package Manager? Visit swift.org/package-manager/.

Access ArcGIS location services

The toolkit examples app has been updated to make use of the ArcGIS basemaps defined with default basemap styles. These basemaps take advantage of geographically load-balanced ArcGIS location services and allow you to monitor usage with API keys or access tokens from user authentication. To use the toolkit examples app, you must implement API key authentication or user authentication. For more information, see How to use an API key or How to implement user authentication.

SwiftLint

Both the toolkit and examples app support SwiftLint. You can install SwiftLint from here. It is not necessary to have it installed in order to build, but you will get a warning without it. The specific rules the linter uses can be found in the swiftlint.yml files in the Toolkit and Examples directories.

Issues

Find a bug or want to request a new feature? Please let us know by submitting an issue.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.