GithubUsers

Architecture

I choose to use MVVM (Model-View-ViewModel) as my project architecture in order to provide a cleaner code, with clear separation between the view, the data and the business logic. The following diagram shows all the modules and how each module interact with one another after. This architecture using a layered software architecture. 68747470733a2f2f646576656c6f7065722e616e64726f69642e636f6d2f746f7069632f6c69627261726965732f6172636869746563747572652f696d616765732f66696e616c2d6172636869746563747572652e706e67

Built With 🛠

  • Kotlin - official programming language for Android development .
  • Coroutines - for asynchronous programming .
  • View Binding. view binding replaces findViewById.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • LiveData - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • Room - Access your app's SQLite database with in-app objects and compile-time checks.
    • Navigation -
  • dagger-hilt - Dependency Injection Framework (Kotlin).
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Fragment
  • Glide for image loading
  • Unit test