Car buy application using MVP, Retrofit2, RxJava2, Dagger2
Model-View-Presenter (mvp)
Java module with no Android dependencies. It contains following packages:
.mvp
- a package that contains all classes directly related to Model-View-Presenter architecture..mvp.model
- Model classes.mvp.presenter
- Presenters. They responds to UI actions, uses usecases to operate modify model objects and control View elements depending on use case results. It subscribes to observable returned by usecaseexecute()
method..mvp.view
- View interfaces that should be implemented by Android Activities, Fragments, or any other UI component.
.domain
- contains use cases that are used to operate on Model objects. Each use case implementsUsecase
interface that containsexecute()
that returns rxJavaObservable
object..repository
- containsRepository
interface used by use cases to operate on model. Implementation for this interface is provided by Android module using Retrofit.
.activity
- Android activities, they can be treated as MVP Views by implementing correspondingView
interfaces frommvp
gradle module..fragment
- Android fragments. Like activities, they can be treated as Views..adapter
- adapters for RecyclerViews.repository/network
- implementation of mvpRepository
interface with Retrofit 2 library..injector
- Dagger 2 related classes.scope
- Two custom scopes are defined:PerApplication
andPerActivity
..module
-ApplicationModule
andNetworkModule
arePerApplication
defined modules.NetworkModule
provides implementation forRepository
interface. TheCarSelectionModule
module havePerActivity
scope and provides injections for presenters and use cases defined inmvp
gradle module..component
- containsdagger
components.ApplicationComponent
providesPerApplication
scoped dependencies. Rest of components providePerActivity
scoped dependencies.
.entity
- entities to pass data for RecyclerViews adapters
Provided under MIT License