Offline Support: Users can use the application even when offline, with data synchronized when online connectivity is available.

Technology Stack:

  • The application is developed for the Android platform using Kotlin programming language.
  • The application follows the Model-View-ViewModel architectural pattern for separation of concerns and maintainability.
  • Persistence is managed using Room, an SQLite object mapping library, for storing todo items locally.
  • Retrofit library is used for making HTTP requests.
  • Kotlin Coroutines are used for asynchronous programming, allowing for smooth handling of background tasks and network calls.
  • Dagger Hilt is used for dependency injection, providing a modular and maintainable codebase.
  • JUnit and Mockito are used for writing unit tests to ensure code quality and reliability.