This is a complete code base that help to fast build a modern and high performance Android app. The project provides core functions, guidelines demonstrate a modularized, scalable, maintainable, testable architecture, can be suitable for complicated and long lifecycle projects development. The project contains a demo app to quickly highlights the usage of the defined core classes and functions.
- Kotlin: first class and official programming language for Android development.
- Coroutines: for asynchronous and more.
- Flow: a cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- RxJava: for composing asynchronous and event-based programs by using observable sequences.
- Android Architecture Components: a collection of libraries that help you design robust, testable, and maintainable apps.
- ViewModel: stores UI-related data that isn't destroyed on UI changes.
- ViewBinding: generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- Room: SQLite object mapping library.
- WorkManager: an API that makes it easy to schedule deferrable, asynchronous tasks that are expected to run even if the app exits or the device restarts.
- Navigation Component: refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app.
- Encrypted SharedPreference: used to store key-value data using encryption.
- Dependency Injection: a technique widely used in programming provides the following advantages: reusability of code, ease of refactoring, ease of testing.
- Hilt-ViewModel: DI for injecting
ViewModel
- Hilt-WorkManager: DI for injecting
WorkManager
. - Retrofit: a type-safe HTTP client for Android and Java.
- OkHttp: a library developed by Square for sending and receive HTTP-based network requests.
- Material Components for Android: modular and customizable Material Design UI components for Android.
- Mockito: a mocking framework for unit test.
- Mockk: a mocking library specialized for Kotlin.
- PowerMock: a framework that extends other mock libraries such as EasyMock with more powerful capabilities.
- Firebase Analytics: an app measurement solution, available at no charge, that provides insight on app usage and user engagement.
- Firebase Crashlytics: Tracks, prioritizes & fixes stability issues that erode app quality.
- LeakCanary: memory leak detection library for Android.