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
- New to ArcGIS? Explore our documentation: Guide | API Reference
- New to Flutter? See our Get started guide.
- Sample code: sample code demonstrating the capabilities of ArcGIS Maps SDK for Flutter and how to use them in your own app.
- Tutorials: step-by-step instructions to build apps that incorporate ArcGIS Maps functionality.
- Capabilities & API parity
- Got a question? Ask the community on our forum.
Libraries
- arcgis_maps
- ArcGIS Maps SDK for Flutter