Skip to content

hungan1409/Github-Sample-Clean-Architecture-v2

Repository files navigation

The Github Example

Introduction

  • This is a sample application that build with combine use Clean Architecture framework and Github API (https://developer.github.com/v4/) for request and showing the information
  • This is an update from v1 sample with using Hilt and Coroutines replace for Dagger v2 and RxJava.

User interface

The UI will have three parts: User information, page information and repos information in same a list.

UI

github_sample.mp4

How to build

  • Check out the project.
  • Use Android Framework from 3.5.x or greater for compile and run.

Framework

This example use Clean Architecture approach for build project. (https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)

Data-Flow

Structure

Work-Flow

Structure

Libraries

  • 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.
    • Room - Access your app's SQLite database with in-app objects and compile-time checks.
    • ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
    • WorkManager - Manage your Android background jobs.
  • UI - Details on why and how to use UI Components in your apps - together or separate
  • Third party
    • Glide for image loading
    • Coroutines A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
    • Hilt for dependencies injection
    • Retrofit Type-safe HTTP client for Android
    • EasyPermission is a wrapper library to simplify basic system permissions logic when targeting Android M or higher.
    • CircleImageView a fast circular ImageView perfect for profile images.
    • LeakCanary a memory leak detection library for Android.
    • Shimmer an Android library that provides an easy way to add a shimmer effect to any view in your Android app.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published