- A Movie Application uses TheMovie API based on Kotlin MVVM architecture and material design.
- A single-activity pattern, using the Navigation component to manage fragment operations.
- Reactive UIs using LiveData observables and Data Binding.
- Handles background tasks using coroutines + Flow.
- It consists of 16 fragments which are fully tested by Espresso.
- 100% Kotlin + Coroutines + Flow
- MVVM Architecture
- Architecture Components (Lifecycle, LiveData, ViewModel, DataBinding, Navigation, Room with FTS4)
- TheMovie API
- Dagger2 for dependency injection
- Retrofit2 & Gson for REST API
- Glide for loading images
- Mockito-kotlin for Junit mock test
- Espresso for UI testing
- Timber for logging
Sample | Description |
---|---|
master | The base for the rest of the other branch. Uses Kotlin, Architecture Components, AppExecutors, Dagger, Retrofit Data Binding, etc. and uses Room as source of truth, with a reactive UI. |
coroutines-flow | Same like the master branch but much better as it uses coroutines Flow (single source of truth with Flow). For testing coroutines Flow check Tandem Repository. |
Copyright 2019 The Android Open Source Project, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.