- Dagger version 2.2+ (Dagger-Android)
- Dagger-android basics:
- DaggerApplication
- DaggerAppCompatActivity
- DaggerFragment
- @Provides, @Binds, @BindsInstance explanation
- Map Multibinding
- Subcomponents
- Scopes
- Custom Scopes
- @ContributesAndroidInjector
- Activity Injection
- Fragment Injection
- ViewModel Injection
- (rest api) using Retrofit2
- MVVM Architecture: ViewModel, Repository, Client structure
- ViewModels and AndroidViewModels
- Observables, LiveData, MutableLiveData and MediatorLiveData
- Caching data for when the network goes offline
- Reading cached data when the network is down
- Custom SQLite queries using Room
- Customizing the cache (how long data will live in the cache)
- Retrofit caching works
- Dealing with Network Errors and slow network speeds
- OkHttp Network Timeouts
- Converting Retrofit Calls to LiveData (Call Adapters)
- Multiple View Types in a Recyclerview
- RecyclerView Pagination
- Executors and Background Threads
- ThreadPools