Компоненты архитектуры Android с MVP

Новые компоненты архитектуры Android, выпущенные в google IO 17.

Итак, мы должны использовать MVP с компонентами архитектуры и MVVM?

В примере Google на Github они использовали модель MVVM. Пример Google

Ответ 1

О выборе архитектурного шаблона и его реализации всегда зависит от многих факторов, таких как члены команды, типы приложений и т.д.
В сообщении в блоге Google они уже сказали, что компоненты архитектуры в основном

Мнения не рецепты.

Однако три основных компонента (Room, ViewModel, ViewData) разработаны с широким диапазоном использования, но не фокусируются на каком-либо конкретном шаблоне. Например,

  • Если вы используете SQLite для сохранения локальных данных в своем приложении, вы можете вы, независимо от того, какой шаблон вы используете, это действительно отличная библиотека с множеством преимуществ, таких как сокращение плиты котла коды, проверяющие синтаксис SQLite во время компиляции и т.д.
  • Кроме того, LifeCycle, LiveData и ViewModel имеют свои собственные сильные точки. В частности, они очень хорошо справляются с проблемами управления жизненным циклом.
  • LiveData предоставляет вам еще один инструмент шаблона наблюдателя, который реагирует на поток данных. (Как отличная функция, предоставляемая нами RxJava).
  • ...

В конце, для вашего вопроса.

Итак, мы должны использовать MVP с компонентами архитектуры?

Ответ "это приятная часть платформы Android, поэтому почему бы и нет".

Обновлено:
Если вы хотите посмотреть, как работает проект шаблонов MVP с новыми компонентами архитектуры, ознакомьтесь с моим репозитором в Github. В которой я улучшаю предыдущую модель MVP, используя Room для локального сохранения и LifeCycle для создания Presenter, ориентированного на жизненный цикл.

Ответ 2

В настоящее время я создаю проект шаблона, который использует шаблон MVP вместе с компонентами Google Architecture (Room, LiveData) и сравнивает версию Realm и LiveData:

https://github.com/duyp/mvp-template

Я думаю, что некоторые компоненты Google Architecture совместимы с шаблоном MVP, а не только для MVVM: D

Вы можете проверить 2 следующих ветки:

  • realm_livedata: MVP с Realm и LiveData​​p >

  • room_livedata: MVP с библиотекой сохранения пространства и LiveData​​p >

Это гораздо сложнее, чем Google sample project (я использовал Dagger 2, RxAndroid, Retrofit, Gson и чистая архитектура) надеюсь, что вы найдете лучшее решение для своей работы. Если у вас есть какие-либо вопросы или предложения, вы можете оставить комментарии или проблемы на my github project.

Я также создал проект с использованием MVVM с новыми компонентами архитектуры Google с Realm, Dagger 2, Live data: https://github.com/duyp/mvvm-template

Счастливое кодирование!