Android clean architecture with data binding. Based on MVP pattern.
Clean Arch adalah turunan dari pola arsitektur model-view-presenter (MVP). Paradigma ini di buat dalam memaksimalkan maintenable code
. Sehingga, hal-hal yang esensial sudah di bundle dalam satu package.
Pola nya salam seperti MVP. Hanya saja saya coba refactor untuk menerapkan prinsip "clean code
". Lifecycle nya pun saya coba buat sedikit berbeda (tidak secara keseluruhan), baik Activity maupun Fragment.
Kurang lebih paradigma nya seperti ini:
Dan menggunakan pustaka dari:
- RxJava2
- Retrofit2
- Android DataBinding
- Glide
- Retro->Lambda
public class MainActivity extends BaseActivity<ActivityMainBinding, MainPresenter> implements MainView {
@Override protected MainPresenter initPresenter() {
return new MainPresenter(this);
}
@Override protected ActivityMainBinding contentView() {
return DataBindingUtil.setContentView(this, R.layout.activity_main);
}
@Override protected void onCreated() {
//do anything in here! or with android:onClick="doClick" and create doClick(view) method in this place.
view.btnTest.onClickListener(v -> {
Toast("Hi!");
});
}
}
class MainPresenter extends BasePresenter<MainView> {
MainPresenter(MainView view) {
super.attachView(view);
}
void example() {
subscribe(service.getHome()
.compose(new MainScheduler<>())
.subscribe(res -> {
if (res.isSuccessful()) {
view.onSuccess(res.body());
}
}, err -> {
view.onError(err.getMessage());
})
);
}
}
Ruang kerja yang nyaman dapat mempengaruhi mobilitas pekerjaan, semakin nyaman dengan ruang lingkup, semakin fokus dalam bekerja.
cheers!
@isfaaghyth, 2018.