social-app icon indicating copy to clipboard operation
social-app copied to clipboard

Offline first Android App with Clean Architecture, MVVM, DataBinding, Koin, Coroutines, LiveData, Room, and AndroidX

SocialApp

Offline first Android App using Clean Architecture, MVVM, DataBinding, Koin, Coroutines, LiveData, Room, and AndroidX. The data is fetched from Random User.

*Data from Random User

Libraries and tools used in the project

Android

  • AndroidX Artifacts within the androidx namespace comprise the Android Jetpack libraries. Like the Support Library, libraries in theandroidx namespace ship separately from the Android platform and provide backward compatibility across Android releases.
  • Data Binding Write declarative layouts and minimize the glue code necessary to bind application logic and layouts.
  • Android KTX A set of Kotlin extensions for Android app development.

Architecture and Design

  • Android Architecture Components Android architecture components are 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.
  • Koin A pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin using functional resolution only: no proxy, no code generation, no reflection!
  • Coroutines Asynchronous or non-blocking programming is the new reality. Whether we're creating server-side, desktop or mobile applications, it's important that we provide an experience that is not only fluid from the user's perspective, but scalable when needed.

View and Image

  • ConstraintLayout Allows you to create large and complex layouts with a flat view hierarchy (no nested view groups).
  • RecyclerView A flexible view for providing a limited window into a large data set.
  • Glide An image loading and caching library for Android focused on smooth scrolling

Data Request

  • Retrofit A type-safe HTTP client for Android and Java.
  • OkHttp An HTTP & HTTP/2 client for Android and Java applications.

Persistence

  • Room The Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.

Others technologies & methodologies which used:

  • Gradle Kotlin DSL Gradle’s Kotlin DSL provides an alternative syntax to the traditional Groovy DSL with an enhanced editing experience in supported IDEs, with superior content assist, refactoring, documentation, and more. This chapter provides details of the main Kotlin DSL constructs and how to use it to interact with the Gradle API.
  • LeakCanary LeakCanary is a memory leak detection library for Android.