Skip to content

topotopo/android-clean-code-mvvm-sample

Repository files navigation

clean-code-mvvm-sample

This is a sample app that uses clean-code, mvvm architecture.

Main features

  1. List of top github repository
    PLEASE READ! To demonstrate an api call, this screen fetches a list of github repositories. Please refer to API document. Swiping the page will refresh the list from the server and will delete any update done locally. This is done for demonstration purposes only. Details and Edit Page has no API calls
  2. Details Page
  3. Edit Page

Tech

This app used a number of Jetpack components and other 3rd Party libraries. Here are a few libraries used in the app.

UI
  • Glide - Image loading and caching
  • Shimmer - Shimmering effect for loading views
  • Common Recyclerview Adapter - created by author to avoid boilerplate code when creating lists. Please see code in link provided.
Service
  • Retrofit - A type-safe HTTP client for Android
  • Hilt - Dependency Injection library built on top of dagger made specifically to incorporate with Android.
Persistent Storage
  • Room - persistent storage library on top of SQLite
Jetpack Componnets
  • Activity/Fragments, Livedata, Databinding, Room, Hilt

Todo

List of improvements / Refactoring that can be done.

  • More unit testing coverage for usecase/interactors
  • UI Testing
  • Styling of UI components
  • ...

Authors

Maxine Micu, maxine.micu@gmail.com