Skip to content

Latest commit

 

History

History
33 lines (29 loc) · 3.79 KB

README.md

File metadata and controls

33 lines (29 loc) · 3.79 KB

android-core-architecture

💡 About the Project

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.

Built with 🛠

  • 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.