당사는 MVP 패턴을 사용하여 Android 애플리케이션을 개발하고 있습니다. MVP를 사용하면 모든 비즈니스 로직을 발표자에 배치하고 Activity/Fragment는 발표자로부터 이벤트 콜백을받을 때보기 업데이트 만 담당합니다.MVVM의 Activity/Fragment 및 ViewModel에서 수행해야 할 작업
이제 Android Databinding을 사용하여 MVVM을 사용해보기로했습니다. MVVM을 사용하면 모든 비즈니스 로직을 ViewModel (MVP의 Presenter처럼)에 넣을 수 있고 데이터 모델에 대한 변경 사항을 하나의 객체에 모두 알릴 수 있습니다.
하지만 우리의 마음 속에 제기되는이 질문에 대해 우리는 활동/단편에 의해 어떻게 처리되어야 하는가? 우리는 fat-activity/fragment을 피하기 위해 MVP 패턴을 채택했기 때문에. 슬림 액티비티/프래그먼트 다음으로 fat-viewmodel을 갖고 싶지 않습니다. 우리는/조각 지금까지
- 요청/허락을
- 액세스 문맥
- 액세스 자원
모든 보정, 주석을 점검 활동에 의해 처리 될 왼쪽으로 할 수 있다고 생각 무엇
또는 제안은 MVP와 비슷하다고해도 MVVM에 상당히 익숙하므로 환영합니다.
감사합니다.
조금 더 질문
가 가능하고 좋은 습관 (MVP 같은) 리스너 MVVM을 결합? 예를 들어
public class MainActivityViewModel extends BaseObservable {
MainActivityViewModelListener listener;
User user;
public void setMainActivityViewModelListener(MainActivityViewModelListener listener) {
this.listener = listener;
}
public void refreshUser(View v) {
// some user update via Internet
notifyPropertyChanged(BR.userAlias);
if (listener != null) {
listener.onUserRefreshed(user);
}
}
@Bindable
public void getUserAlias() {
return user.getAlias();
}
}
public interface MainActivityViewModelListener {
void onUserRefreshed(User user);
}
public class MainActivity implements MainActivityViewModelListener {
MainActivityBinding binding;
@Override
public void onCreate(Bundle savedInstanceState) {
binding = DataBindingUtil.setContentView(R.layout.main_activity);
MainActivityViewModel viewModel = new MainActivityViewModel();
viewModel.setMainActivityViewModelListener(this);
binding.setMainActivityViewModel(viewModel);
}
@Override
public void onUserRefreshed(User user) {
// do some update
}
}
+ 1 Github 링크. 지금까지 여러 튜토리얼을 살펴본 후 하나의 구현 샘플을 시도해 보았습니다. 프로젝트 예제가 많은 도움이됩니다! –
자세한 내용은 [this] (http://stackoverflow.com/a/40479052/3134215)를 참조하십시오. –
안녕하세요! @RaviRupareliya, 프래그먼트 트랜잭션과 애니메이션은 Activity에서 수행되어야합니까? –