A project based on Android Jetpack, Kotlin, MVVM architecture & Dependency Injection using Koin.
This project is a sample base code that implements the MVVM architecture and uses Android Jetpack.
Technical Information used in this project:
- Programming Language: Android Kotlin.
- Architecture: MVVM architecture based on Android Jetpack. For more resources on learning Android development, visit the Developer Guides at developer.android.com.
- Android Components: (Navigation, ViewModel, LiveData, Data Binding, Lifecycles, Android Material Design, etc...).
- Multiple Threads: Kotlin Coroutine.
- Third Party Libraries: Glide, Retrofit, Koin, Firebase, MockK, etc,...
- Unit Test: Android testing framework, MockK, and Robolectric; Unit Test coverage Analysis using JaCoCo.
- ScreenShots
Moreover, you can read more detail about some project components by clicking to links contained at References part.
- Foundation - Components for core system capabilities, Kotlin extensions and support for
multidex and automated testing.
- AppCompat - Degrade gracefully on older versions of Android.
- Android KTX - Write more concise, idiomatic Kotlin code.
- Test - An Android testing framework for unit and runtime UI tests.
- Architecture - A collection of libraries that help you design robust, testable, and
maintainable apps. Start with classes for managing your UI component lifecycle and handling data
persistence.
- Data Binding - Declaratively bind observable data to UI elements.
- Lifecycles - Create a UI that automatically responds to lifecycle events.
- LiveData - Build data objects that notify views when the underlying database changes.
- Navigation - Handle everything needed for in-app navigation.
- ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
- UI - Details on why and how to use UI Components in your apps - together or separate
- Animations & Transitions - Move widgets and transition between screens.
- Fragment - A basic unit of composable UI.
- Layout - Lay out widgets using different algorithms.
- Third party
- Glide for image loading
- Kotlin Coroutines for managing background threads with simplified code and reducing needs for callbacks
- MockK for unit test mocking. That provides DSL to mock behavior. Built from zero to fit Kotlin language. Supports named parameters, object mocks, coroutines and extension function mocking.
- JaCoCo for Unit Test Coverage Analysis.
- Koin for Dependency Injection.
- Firebase for Crashlytics, Analytics, Push Notification,....
- Retrofit for Networking.
- And a few other libraries ....
- Coverage Overview.
- Unit Test Detail for a ViewModel.
- Unit Test Detail for a Repository
- setup Jacoco for an Android Multiple Module Project.
- Change Android Retrofit's Base Url at runtime.
- Change Android Brightness.
- Play Youtube videos on Androids.
- Setup Jacoco for Android Project.
- Callbacks in Android Application.
Copyright 2020 DanhDue ExOICTIF, danhdue@gmail.com
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you 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.