Toolkit

The ArcGIS Runtime SDK for iOS offers an open source toolkit that contains components to help simplify your iOS app development. 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

  • Augmented reality (AR) - Integrates the scene view with ARKit to enable augmented reality (AR).
  • 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 up.
  • Floor filter - Shows sites and facilities, and enables toggling the visibility of levels on floor-aware maps and scenes.
  • JobManager - Suspends and resumes ArcGIS Runtime tasks when the app is background, terminated, and relaunched.
  • LegendViewController - Displays a legend for all the layers in a map or scene contained in an AGSGeoView.
  • MeasureToolbar - Allows measurement of distances and areas on the map view.
  • PopupController - Display details and media, edit attributes, geometry and related records, and manage the attachments of features and graphics (pop-ups are defined in the popup property of features and graphics).
  • Scalebar - Displays current scale reference.
  • TemplatePickerViewController - Allows a user to choose a template from a list of AGSFeatureTemplate when creating new features.
  • TimeSlider - Allows interactively defining a temporal range (i.e. time extent) and animating time moving forward or backward. Can be used to manipulate the time extent in a MapView or SceneView.

Resources

Instructions

Swift Package Manager

Xcode 14
  1. Open your Xcode project. In the menu bar, select File > Add Packages...
  2. In the search bar, enter https://github.com/Esri/arcgis-runtime-toolkit-ios 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/.

Cocoapods

  1. Add pod 'ArcGIS-Runtime-Toolkit-iOS' to your podfile
  2. Run pod install. This will download the toolkit and the ArcGIS Runtime SDK for iOS which the toolkit depends upon and then configure your project to reference them both
  3. Add import ArcGIS and import ArcGISToolkit in your source code and start using the toolkit components

New to cocoapods? Visit cocoapods.org

Manual

  1. Clone or download this repo
  2. Drag and Drop the arcgis-runtime-toolkit-ios folder into your project through the Xcode Project Navigator pane
  3. Add the ArcGISToolkit library in your app, by adding it to the Frameworks, Libraries, and Embedded Content section of the General pane for your app target. The ArcGISToolkit library contains the ArcGIS Runtime SDK for iOS library, so you don't need to add that separately
  4. Add import ArcGIS and import ArcGISToolkit in your source code and start using the toolkit components

Access ArcGIS location services

The toolkit examples app has been updated to make use of ESRI 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 set an API key or authenticate an ArcGIS user. For more information, see Access services and content with an API key.

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.