MyTodoTaskManager is an application to remind a user different kinds of tasks like watch TV shows, movies and read books.
Android Application developed with Kotlin, Clean Architecture, MVVM pattern, Koin, Coroutines, Retrofit, Room, JWT and MockK for testing.
Currently available on the Play store.
Go to Releases to download the latest version.
MyTodoTaskManager is based on MVVM and Repository patterns.
The app uses coroutines and Room database as local cache to avoid API calls.
The API (Back-end) URL is deployed on Heroku: todo-task-manager-heroku
You can find the API project in: todo-task-manager-github
- Minimum SDK level 21
- Kotlin based + Coroutines for asynchronous.
- JetPack
- LiveData - notify domain layer data to views.
- Lifecycle - dispose of observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Room Persistence - construct a database using the abstract layer.
- Architecture
- MVVM (View - DataBinding - ViewModel - Model)
- Repository pattern
- Koin - dependency injection.
- Retrofit2 & Gson - construct the REST APIs.
- OkHttp3 - implementing interceptor, logging and mocking web server.
- Timber - logging.
- Material-Components - Material design components for views.
Unit Tests verify the interactions of use cases between repositories and dao & REST api requests.
-
You can test the application running it in local, this is the default API server:
buildConfigField "String", "SERVER_URL", '"https://pers-task-manager.herokuapp.com/api/"' -
Also, you can run API project in local, following:
-
In the app file build.gradle you have to add:
-
If you use emulator
buildConfigField "String", "SERVER_URL", '"http://10.0.2.2:8080/api/"' -
If you use your phone
buildConfigField "String", "SERVER_URL", '"http://[your local server IP address]:8080/api/"'
-
- Upgrade Kotlin, Java, Gradle and dependencies versions
- Add Room DB migration to create TitleInfo table
- Populate suggested titles for TV shows and movies using the API (Back-end) to invoke IMDb API provider
- Add radio buttons to choose between TV Shows and Movies to filter suggested titles

