Skip to content

Latest commit

 

History

History
80 lines (55 loc) · 3.83 KB

File metadata and controls

80 lines (55 loc) · 3.83 KB

MyTodoTaskManager

License Build Status

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.

Download

Currently available on the Play store.

Get it on Google Play

Go to Releases to download the latest version.

Screenshots

play

Technical details

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

Tech stack

  • 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 Testing Frameworks

Unit Tests verify the interactions of use cases between repositories and dao & REST api requests.

  • JUnit - a programmer oriented testing framework.
  • MockK - a mocking library for Kotlin.

Local environment

  • 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:

    Readme todo-task-manager

  • 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/"'
      

Updates version 1.1.0

  • 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