Create application which:
- Track location and sends them to cloud database.
- Show all those locations on the map.
- Implement users registration/login via email and password.
- If app can't send location to server cache it locally and send later.
- Tracking period should be each 5 second.
- Tracking should be restored after reboot and update.
- When app is on foreground, listen for changes in cloud database, download new locations and show them on map.
- Language - Kotlin
- Architecture - Single activity
- Architecture pattern - MVVM
- UI pattern - Single-Activity
- Android Architecture Components
- Firebase Auth
- Firebase RealtimeDatabase
- RxJava2
- RxAndroid
- RxKotlin
- Dagger2
-
In project root folder create apikeys.properties file. Populate file with api keys:
- yandexMapApiKey for Yandex MapKit
- firebaseRealtimeDatabaseUrl for Firebase Authentication and Firebase Realtime Database
-
In app module root place google services configuration json
- google-services.json
-
In project root folder place firebase project name configuration file
- .firebaserc