BgnMobi-Pokemon-Assignment
A technical challenge that requires using the modern Android development tools
Used Technologies and Libraries
- Clean Architecture & MVVM
- Kotlin
- Jetpack Components ( Navigation, Paging3, Lifecycle, ViewModel )
- Retrofit, OkHttp
- Kotlin Coroutines
- Coil
- Dagger Hilt
- Firebase services (Crashlytics & Cloud Messaging)
The Requirements Checklist
- 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.)