Skip to content
This repository has been archived by the owner on Feb 14, 2022. It is now read-only.

Latest commit

 

History

History
31 lines (27 loc) · 1.26 KB

android_architecture.md

File metadata and controls

31 lines (27 loc) · 1.26 KB

Architecture Guidelines

  • Use Dagger2 for Dependencies Injection
  • Use Retrofit2 as HttpClient
  • Use RxJava/RxAndroid for better performance
  • Call REST API by Using RxJava-Retrofit2
  • Must use Crashlytic for tracking android crashing
  • Database must use Realm
  • Using Glide to load Image for better performance
  • Use Timber for better logging mechanism
  • Use Buddy build for CI/CD
  • Use Gson to Parser JSON
  • Use ButterKnife to avoid findViewById for clean code

The architecture of our Android apps is based on the MVP (Model View Presenter) pattern.

  • View (UI layer):
    • Define an interface that your View (Activity, Fragment, View) is going to implement. The interface will exposes the method to Presenter to interact with.
    • Your View implement the interface
    • Inject presenter to View
    • Attach View to presenter
    • View only know HOW to display
  • Presenter:
    • Implement methods that the View requires to perform the nessary actions.
    • One finish using interface to interact with View
    • Presenter know WHEN display
  • Model (Data Layer):
    • Dispatch request using DataManager
    • Return Observables for Presenter
    • Model know WHAT display