Remake and slight overhaul of the Mappy app, 16 months later, which was developed to showcase the integration of Mapbox in Flutter. Currently, it's only available for Android, as I'm waiting for my new MacBook Pro to arrive š¤¦. I will update the project in the future, I promise.
This documentation will explain the necessary steps to get the application up and running on respective platforms, Android and iOS (coming soon). In both cases, you need to gather appropriate credentials, these are the public and private (or secret) tokens.
- Secret token needs to have
Downloads:Read
scope - Public token is usually the default public token, or a newly generated token marked as public
Create a gradle.properties
file in Gradle user home folder (typically USER_HOME/.gradle
) with the following contents:
MAPBOX_DOWNLOADS_TOKEN=YOUR_SECRET_MAPBOX_ACCESS_TOKEN
Next, copy the public token somewhere accessible, for example, in android/app/src/main/res/values/strings.xml
(this file is mentioned in android/.gitignore
for this particular reason)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="mapbox_access_token">YOUR_MAPBOX_ACCESS_TOKEN</string>
</resources>
Obviously you don't need to do it this way, but just find a way to keep the public (access) token somewhere handy.
Start by installing dependencies and running the code generation task
flutter pub get
flutter pub run build_runner build
To run the app, provide the public access token via --dart-define
flutter run --dart-define=ACCESS_TOKEN=<public-access-token>
You can use the trivial unit test to check if points of interest are fetched correctly from Mapbox's Search API
flutter test --dart-define=ACCESS_TOKEN=<public-access-token>