2015-12-19 2 views
12

Я планирую реализовать шаблон архитектурного дизайна MVVM для своего приложения для Android. Я читал онлайн, что это поможет мне добиться эффективного разделения проблем и легко написать тестовые примеры для модели данных, пользовательского интерфейса и т. Д. Вам нужно прочесть или дать советы.Как эффективно реализовать шаблон MVVM для моего приложения для Android, который также облегчит написание тестовых примеров?

ответ

24

Ну, чтобы узнать, как эффективно использовать MVVM, начните с Android MVVM Design Pattern Examples

Здесь вы найдете этот пост:

Я разработчик Android-Binding. Как @Brentley сказал, это очень новый проект, но я надеюсь получить больше шума и опыта, поэтому , что его можно улучшить. Возвращаясь к вашему вопросу, я написал несколько простое введение/учебники по MVVM с андроид-связывающим:

Потенциальные усыновители, пожалуйста, также зарегистрируйтесь на project discussion group.

Прочтите всю тему. Вы заметите, что MVVM относительно новая структура и настоятельно рекомендуется работать с ней совместно с р Data Binding библиотеки и инъекции зависимостей библиотеки Google, как Roboguice или Dagger2 ...

... но лучше бы это:

Approaching Android with MVVM. Building an MVVM architectured application using the Data Binding Library,

где автор объясняет, используя MVVM с Binding библиотеки данных на примере - я имею в виду его собственный, созданный приложением. В заключение он делает вывод:

По-прежнему слишком рано знать, является ли этот подход правильным способом разработки приложения, но этот эксперимент дал мне возможность взглянуть на одну из возможностей для будущих проектов. Это то, что я определенно хочу поиграть с большим количеством.

Model-View-ViewModel интересен тем, что в традиционной архитектуре Android контроллер будет передавать данные в представление. Вы увидите представление в своей деятельности, а затем установите для него контент.

С MVVM ваш ViewModel изменяет содержимое и уведомляет структуру данных привязки об измененном содержимом. Затем каркас автоматически обновляет любые представления, привязанные к этому контенту.

Эти два компонента слабо связаны через интерфейс данных и команд.

Следующий aproach использования MVVM действительно поддается проверке.От MVVM on Android: What You Need to Know

Поскольку ViewModel не зависит от View больше, вы можете протестировать ViewModel без View даже существующий. При правильной инъекции зависимостей для других зависимостей это очень просто проверить.

Например, вместо привязки виртуальной машины к реальному виду можно создать виртуальную машину в тестовом примере, дать ей некоторые данные, а затем вызвать на нее действия, чтобы убедиться, что данные были правильно преобразованы. (...) Все это можно сделать без взаимодействия с реальным представлением.

Читайте также: MVVM ON ANDROID USING THE DATA BINDING LIBRARY

Надеется, что это поможет

+1

О посте stablekernel блог, я прочитал его несколько дней назад, но я должен отметить, что это не совсем MVVM требований. Он вызывает проблемы просмотра в ViewModel (OnFocusListener, вид типа). Как и все, что от Google, похоже, он не очень хорошо продуман или созрел. Макеты Xml по-прежнему не очень гибки, как XAML для примера, поэтому все еще будет очень сложно реализовать настоящий MVVM в приложениях – Tseng

+0

. Devs всегда говорит, что MVP более зрелый и легко позволяет разработчикам тестировать по сравнению с MVVM! –

+0

Я не покупаю эту архитектуру из нокаута js и перехожу к flux/реагирую. Это слишком непредсказуемо. – frostymarvelous

Смежные вопросы