A technical challenge that requires using the modern Android development tools
- Clean Architecture & MVVM
- Kotlin
- Jetpack Components ( Navigation, Paging3, Lifecycle, ViewModel )
- Retrofit, OkHttp
- Kotlin Coroutines
- Coil
- Dagger Hilt
- Firebase services (Crashlytics & Cloud Messaging)
- Project running properly between Android 5.0 (API 21) and Android 12.0 (API 31) 🗸
- Error handling and displaying a proper message when internet connection is slow or not available 🗸
- Adding localization for both Turkish and English languages 🗸
- Adhering to SOLID principles 🗸
- Publishing the project on a public repository (GitHub, Bitbucket etc.) 🗸
- Java or Kotlin can be used as programming language. Using Kotlin is a plus. 🗸
- Navigation component / navigation graph should be used for screen transitions. 🗸
- MVVM (Model-View-ViewModel) structure should be used. 🗸
- Dependency injection (dagger-hilt) should be used. 🗸
- View binding should be used. 🗸
- Use and integration of Firebase libraries is required (crashlytics, push notification). 🗸
- Where necessary (if the application language is Kotlin), it is a plus to use Coroutines. 🗸
- Writing a unit test will be considered a big plus. 🗸
- App modularization would be considered a big plus. (The package structure is prepared having modularization in mind. I didn't modularize to finish the assignment ASAP.)