https://github.com/animeshroydev/animesh-api
- Kotlin:
-
Advanced coroutine management using jobs
-
Cancelling active jobs
-
Coroutine scoping
-
Bottom Navigation View with fragments
-
Leveraging multiple navigation graphs (this is cutting edge content)
- custom scopes, fragment injection, activity injection, Viewmodel injection
- Basically this is MVVM with some additions
-
Building a generic BaseViewModel
-
Repository pattern (NetworkBoundResource)
-
SQLite on Android with Room Persistence library
-
Custom queries, inserts, deletes, updates
-
Foreign Key relationships
-
Multiple database tables
-
Database caching (saving data from network into local cache)
-
Single source of truth principal
-
Handling any type of response from server (success, error, none, etc...)
-
Returning LiveData from Retrofit calls (Retrofit Call Adapter)
-
Sharing a ViewModel between several fragments
-
Building a powerful generic BaseViewModel
- Interacting with the server through a webview (Javascript)
-
Programmatically implement a SearchView
-
Execute search queries to network and db cache
-
Selecting images from phone memory
-
Cropping images to a specific aspect ratio
-
Setting limitations on image size and aspect ratio
-
Uploading a cropped image to server
-
Cancelling pending network requests (Kotlin coroutines)
-
Testing for network delays
- Paginating objects returned from server and database cache
-
Bottom Navigation View with Fragments
-
Customizing Bottom Navigation Icon behavior
-
Handling Different Screen Sizes (ConstraintLayout)
-
Material Dialogs
-
Fragment transition animations