ArcGIS Maps SDK for Flutter

Use ArcGIS Maps SDK for Flutter to build native mobile apps that incorporate capabilities such as 2D data visualization and editing, geocoding, and routing, for deployment to iOS or Android platforms.

Platform support

  • Use a macOS development host to deploy to iOS & Android mobile devices.
  • Use a Windows development host to deploy to Android mobile devices.

For more information, view our detailed System requirements.

Capabilities

The first release of the ArcGIS Maps SDK for Flutter does not include the full set of APIs and capabilities that are available in the other ArcGIS Maps SDKs for Native Apps. These missing APIs and capabilities will be introduced in subsequent releases. For more information see our API parity page.

Get started

Once you have added arcgis_maps to your app as a dependency, run the following command to download and install arcgis_maps_core:

dart run arcgis_maps install

Note on Windows: this step requires permission to create symlinks. Either run this step in an elevated "Administrator" command prompt, or go to "Settings > Update & Security > For developers" and turn on "Developer Mode".

Then add "arcgis_maps_core" to your .gitignore file.

# Miscellaneous
arcgis_maps_core
...

For additional information, see our Install and set up guide.

If you are new to Flutter development or ArcGIS, check out our detailed Get started guide.

Platform specific configuration

Android

Update minimum requirements by editing the android/app/build.gradle file:

  • Set Android NDK 25.2.9519653 minimum
  • Set Android SDK 26 minimum
android {
    ...
    ndkVersion "25.2.9519653"
    ...
    defaultConfig {
        ...
        minSdk 26
        ...
    }
...
}

Update the Kotlin version by editing the android/settings.gradle file:

  • Set Kotlin version to 1.9.0
plugins {
    ...
    id "org.jetbrains.kotlin.android" version "1.9.0" apply false
}

iOS

Set iOS 16.0 minimum by editing the ios/Podfile file. First uncomment the line and then update the version number.

platform :ios, '16.0'

Configure arcgis_maps_core by adding the Runtimecore and arcgis_maps_ffi pods to the Runner target section

target 'Runner' do
  ...

  pod 'Runtimecore', :podspec => '../arcgis_maps_core/ios/Runtimecore.podspec'
  pod 'arcgis_maps_ffi', :podspec => '../arcgis_maps_core/ios/arcgis_maps_ffi.podspec'

  ...
end

Use pod update to configure Pods

cd ios && pod update && cd ..

Additional permissions

Some of the capabilities of ArcGIS Maps SDK for Flutter require additional keys and permissions when you deploy your app. See our detailed Install and set up guide.

Using the API

Add an ArcGISMapView Widget to the widget tree, assign an ArcGISMapViewController and apply an ArcGISMap.

...
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ArcGISMapView(
        controllerProvider: () => ArcGISMapView.createController()
          ..arcGISMap = ArcGISMap.withBasemapStyle(BasemapStyle.arcGISImagery),
      ),
    );
  }
...

For information and a list of available classes, see our API Reference. We also have Sample code demonstrating the capabilities of ArcGIS Maps SDK for Flutter and how to use them in your own app, as well as tutorials providing step-by-step instructions to build apps that incorporate ArcGIS Maps functionality.

API key authentication

The above example code uses ArcGIS Location Platform basemaps, which can be accessed with an API key access token. To obtain an access token, see our Get started guide.

If you already have an access token, set it in the main() method of your application:

void main() {
    ArcGISEnvironment.apiKey = 'YOUR_ACCESS_TOKEN';
    ...
}

Additional resources

Libraries

arcgis_maps
ArcGIS Maps SDK for Flutter