try the Location Reminders App :APK
A Todo list app with location reminders that remind the user to do something when he reaches a specific location. The app will require the user to create an account and login to set and access reminders.
-
✔️ Login/Register users using an email address or a Google account.
-
✔️ shows a map with the user's current location and asks the user to select a point of interest to create a reminder.
-
✔️ add a reminder when a user reaches the selected location
-
✔️ Reminder data should be saved to local storage.
-
✔️ For each reminder, create a geofencing request in the background that fires up a notification when the user enters the geofencing area.
The following tools were used in this project:
- Firebase authentication, Maps API
- Geofencing
- Kotlin, Coroutines
- Espresso, Mockito
- MVVM, LiveData
- Android Testing ,UnitTesting, MainCoroutineRule, FakeData Source, dependency injection, End-To-End
- Android Studio
Step by step explanation of how to get a dev environment running.
# Clone this project
$ git clone https://github.com/romanyn36/location_reminder.git
# Access
$ cd starter
1. To enable Firebase Authentication:
a. Go to the authentication tab at the Firebase console and enable Email/Password and Google Sign-in methods.
b. download `google-services.json` and add it to the app.
2. To enable Google Maps:
a. Go to APIs & Services at the Google console.
b. Select your project and go to APIs & Credentials.
c. Create a new api key and restrict it for android apps.
d. Add your package name and SHA-1 signing-certificate fingerprint.
c. Enable Maps SDK for Android from API restrictions and Save.
d. Copy the api key to the `google_maps_api.xml`
3. Run the app on your mobile phone or emulator with Google Play Services in it.
app contain testing :
- ViewModels, Coroutines and LiveData objects.
- FakeDataSource replace the Data Layer and test the app in isolation.
- Espresso and Mockito to test each screen of the app
- Test DAO (Data Access Object) and Repository classes.
- testing for the error messages.
- End-To-End testing for the Fragments navigation.
Right click on the `test` or `androidTest` packages and select Run Tests
- Koin - A pragmatic lightweight dependency injection framework for Kotlin.
- FirebaseUI Authentication - FirebaseUI provides a drop-in auth solution that handles the UI flows for signing
- JobIntentService - Run background service from the background application, Compatible with >= Android O.
This project is under Open Source license
Made by Romani