Kotlin Android application to counter anything with retention time, storing and dark theme.
This simple app uses a lot of popular libraries. Most of the libraries are in the stable version, unless there is a good reason to use non-stable dependency.
- Jetpack:
- Android KTX - provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
- AndroidX - major improvement to the original Android Support Library, which is no longer maintained.
- View Binding - allows you to more easily write code that interacts with views.
- Lifecycle - perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- LiveData - lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
- Room - persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- ViewModel - designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
- Coroutines - managing background threads with simplified code and reducing needs for callbacks.
- Dagger2 - dependency injector for replacement all FactoryFactory classes.
- Material Design - material design components for Android.
- Timber - a logger with a small, extensible API which provides utility on top of Android's normal Log class.
- and more...
- Robolectric - industry-standard unit testing framework for Android.
- JUnit - a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.
- Mockito - most popular Mocking framework for unit tests written in Java.
- Mockk - provides DSL to mock behavior. Built from zero to fit Kotlin language.
- TestObserver - special observer which helps to easily test LiveData and make assertions on them.
- AndroidX - the androidx test library provides an extensive framework for testing Android apps.
- and more...
- Ktlint - an anti-bikeshedding Kotlin linter with built-in formatter.


