- Kotlin as main language
- Using CLEAN architecture
- MVVM as presenter pattern
- Dagger 2 for dependency injection
- Coroutines and LiveData for asynchronous tasks
- Retrofit for network calls
- Navigation Component for fragments navigation
- JUnit and Mockito for unit testing