Small Flutter application displaying future ADEPS' walks.
Uses the ODWB platform API to retrieve data.
- Display walks list by date, either in list form or on a map
- Display walks list alphabetically, in directory-style
- Calculate distance between your position and the walks (requires to allow the app to use your position)
- Calculate distance and time between your home and the walks (requires to set home address in settings)
- Display forecast weathers 5 days before the walks
- Launch navigation to the selected walk
- Display a notification the day before with the nearest walk (requires to set home address in settings)
- Share walk infos button?
- Google Map API:
1.1 Generate 3 API keys:
- API key restricted to Android App. Select
Maps SDK for Android
API. Define the key inandroid/local.properties
:
googleMaps.apiKey=api_key
- API key restricted to IOS App. Select
Maps SDK for IOS
API. Define the key in aGoogleMaps.plist
file inios/Runner
folder:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>API_KEY</key>
<string>api_key</string>
</dict>
</plist>
- API key with no platform restriction. Select
Distance Matrix API
,Geocoding API
,Maps Static API
,Places API
API's. Define the key in a.env
file in root folder:
GOOGLEMAPS_API_KEY=api_key
1.2 Define the MAP_API as Google
in a .env
file in root folder:
MAP_API=Google
- MapBox API:
Define the MAP_API as MapBox
and the API token in a .env
file in root folder:
MAP=MapBox
MAPBOX_TOKEN=token
- The OpenWeather API key should be defined in a
.env
file in root folder:
OPENWEATHER_TOKEN=token
-
Configure Firebase:
Follow this guide: https://firebase.google.com/docs/flutter/setup Define following keys in
.env
file in root folder:FIREBASE_ANDROID_APP_ID=android_app_id FIREBASE_ANDROID_API_KEY=android_api_key FIREBASE_IOS_APP_ID=ios_app_id FIREBASE_IOS_API_KEY=ios_api_key FIREBASE_IOS_CLIENT_ID=ios_client_id FIREBASE_IOS_BUNDLE_ID=ios_bundle_id FIREBASE_PROJECT_ID=project_id FIREBASE_SENDER_ID=sender_id FIREBASE_STORAGE_BUCKET=storage_bucket
-
Information about the keystore should be set in the
android/key.properties
:
storePassword=<password>
keyPassword=<password>
keyAlias=key
storeFile=<path>/key.jks
- To generate the splash screen before release, use the following command:
flutter pub run flutter_native_splash:create
- To generate the launcher_icons before release, use the following command:
flutter pub run flutter_launcher_icons:main
- The release can then be build with the following command for android (use Xcode for iOS):
flutter build appbundle
If you want the app to load an initial dataset without connecting to the internet, place a JSON
file called walk_data.json
in assets
folder. This JSON must follows the schema of ODWB.
Due to copyright issues => below assets, files and folders are not included:
Android:
android/app/src/main/res/drawable*/ic_notification.png
android/app/src/main/res/mimap*/ic_launcher_foreground.png
android/app/src/main/ic_launcher-playstore.png
iOS:
ios/Runner/Assets.xcassets/AppIcon.appiconset
Flutter:
assets/dark/logo.png
assets/dark/logo-annule.png
assets/dark/splash.png
assets/light/logo.png
assets/light/logo-annule.png
assets/light/splash.png