This repository contains a couple of Android Development examples in Kotlin language. The following topics are covered:
- MVP Architecture
- MVVM Architecture with Android Architecture Components and Data Binding
- Dependency injection with Dagger2 using the new AndroidInjector (Examples without it can also be found in older revisions)
- Creating network requests with Retrofit
- Persisting data with Room Persistence Library
- Using RxJava2 to handle data flow
- Offline first approach
- Fragment shared element transitions
- Infinite RecyclerView with pagination
- Delegate Adapter pattern for showing multiple view types in an Adapter
- Unit testing each layer of the app
- Testing Room database
- Shared element transitions with CoordinatorLayout and CollapsingToolbar
- UI testing with Espresso
- Code quality checks using KtLint and Detekt
- Injecting mock dependencies into Android components in tests
The current implementation on master uses MVP Architecture with. If you want to check the implementation with the new Android Architecture components check out the following branch: arch_components
How to make complex requests simple with RxJava in Kotlin
How to inject mock dependencies into Android components using Dagger AndroidInjector