It is a TO-DO list application with a location feature that reminds the user
with actions associated with a location of his choice when he's in the surrounding area.
This project was made within the Android Nanodegree
- Firebase Authentication
- Google Maps API
- Geofence API
- MVVM Architecture
- Testing
- Unit Tests: ViewModel/LiveData, Test Double (Fake), Coroutines, and Room testing.
- Integration Tests: Repository-Database, and UI Controller-ViewModel.
- Instrumentation: Fragment Test, Activity Test, and Application Navigation.
- Kotlin: Default language used to build this project
- RecyclerView: A ViewGroup that contains the views corresponding to your data. Each individual element in the list is defined by a view holder object.
- Navigation Component: Android Jetpack's Navigation component, used for Fragment-based navigation
- Coroutines: A concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
- Firebase Auth: backend services for use the SDKs and in-built UI libraries to authenticate the user in the application
- Mockito: a Java-based framework used for unit testing of Java applications.
- Maps SDK: a library for embedding highly customized maps within Android applications
- Material Component: Interactive building blocks for creating a user interface.
- Android Architecture Components: a collection of libraries that help design robust, testable, and maintainable apps: Room (a SQLite object mapping library), LiveData (builds data objects that notify views when the underlying database changes), ViewModel (stores UI-related data that isn't destroyed on app rotations)
- Databinding: A Jetpack support library that allows to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically
- Android Jetpack WorkManager library: allows to schedule work to run one-time or repeatedly using flexible scheduling windows.
Welcoming Page | Selecting Login method | Selection Map |
Selecting Location | Details Fragment | Listing Fragment |
- Register with your account or link with your google account to the appliction.
- Click on the floating red (save icon) button in the listing screen after the authentication process.
- Click on Add reminder button
- Select location on the map
- Add title of the place you want to save.
- Add describtion of the location which will be selected (optional)
- Click on save reminder
- Make sure to give Background permission
- It's all set and you're geofence is active