Примеры шаблонов проектирования Android MVVM - PullRequest
63 голосов
/ 11 февраля 2011

В настоящее время я много занимаюсь разработкой WPF и начал создавать некоторые базовые приложения для Android. При создании приложений WPF я часто использую MVVM, обычно с помощью Prism, и хотел бы знать, есть ли примеры MVVM для платформы Android?

Ответы [ 14 ]

84 голосов
/ 16 февраля 2011

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

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

7 голосов
/ 11 февраля 2011

Я иногда использую ViewModels для перевода из чистой Модели в то, как должна отображаться Модель, но большая часть MVVM-изм обусловлена ​​тем фактом, что у вас есть этот мощный механизм привязки данных, встроенный в платформу WPF. Скорее всего, вы не найдете точного опыта WPF + MVVM в мире Android, но вы можете воспользоваться множеством хороших концепций и реализовать их (просто без функции автоматического связывания данных).

Например, просто создайте ViewModels. Вам не нужен каркас, такой как Prism, для создания ViewModels. У вас нет всех уведомлений PropertyChanged и тому подобного, но вы можете преобразовать свои данные в информацию, которая может быть лучше использована вашим пользовательским интерфейсом, чтобы очистить ваш код. Прекрасным примером этого является то, что я сделал с тяжелым пользовательским интерфейсом. Android SeekBar всегда основан на нуле и работает с целочисленными значениями, поэтому вы не можете привязать минимальные, максимальные значения и значения приращения из вашей модели. Вы можете использовать ViewModel, чтобы перевести ваши минимальные / максимальные значения в эквиваленты, основанные на 0, которые ваш SeekBar может использовать ... просто пример. То же самое касается отображения цветов и размеров в зависимости от диапазонов значений и т. Д. Для меня это все, что представляют собой ViewModels.

Что касается вещей DependencyInjection, посмотрите RoboGuice. Я только начал использовать это в одном из своих проектов после того, как увидел презентацию его создателя на местном Meetup, и это, вероятно, именно то, что вы ищете.

RoboGuice в Google Code

RoboGuice Google Group

4 голосов
/ 30 июня 2015

В настоящее время существует официальный плагин для привязки данных Android, хотя он все еще находится в стадии бета-тестирования.Также ведется работа по добавлению поддержки инструментов для синтаксиса привязки в бета-версии Android Studio.

См. Ниже для получения дополнительной информации

https://developer.android.com/tools/data-binding/guide.html

3 голосов
/ 03 августа 2017

Отлично!Articals by @ Florina Muntenescu

Модель Model-View-ViewModel

Основные игроки в модели MVVM:

  • The View- информирует ViewModel о действиях пользователя
  • ViewModel - предоставляет потоки данных, относящихся к представлению
  • DataModel - абстрагирует источник данных.ViewModel работает с DataModel для получения и сохранения данных.

Пример архитектуры MVVM:

https://github.com/erikcaffrey/People-MVVM

https://github.com/googlesamples/android-architecture/tree/todo-mvvm-databinding/

https://github.com/iammert/Android-MVVM-Architecture

https://github.com/segunfamisa/android-mvvm-sample

https://github.com/manas-chaudhari/android-mvvm

3 голосов
/ 15 июля 2014

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

3 голосов
/ 15 февраля 2011

Существует относительно новая разрабатываемая среда, которая позволяет привязывать представления к моделям представления, называемые android-binding .Используя эту платформу и RoboGuice , вы можете включить MVVM.Фреймворк все еще нуждается в доработке, но это хорошая отправная точка.

2 голосов
/ 23 июня 2016

Несколько лет назад я также занимался разработкой WPF и WP Light Prism & MVVM Light Toolkit обычно используется для создания приложений WP, я думаю, он идеально подходит для архитектуры приложений Windows Phone! поэтому я использую свой предыдущий опыт разработки WP, а затем имитирую создание Android MVVM Light Toolkit (инструментарий, помогающий создать приложение Android MVVM , У нас есть больше атрибутов для привязки данных View (например, Uri для ImageView), мы создайте некоторую команду для работы с событием (например, щелчок кнопки), а также создайте глобальный канал сообщений для связи с другими моделями представления).

GitHub: Android MVVM Light Toolkit , есть примеры для справки.

Архитектура : http://upload -images.jianshu.io / upload_images / 966283-78b410b9af8b18fa.png? ImageMogr2 / автоориентация / полоса% 7CimageView2 / 2 / w / 1240

надеюсь помочь вам!

2 голосов
/ 15 декабря 2015

Недавно я реализовал шаблон MVVM для создания приложения Android с библиотекой привязки данных.Здесь вы можете прочитать подробный обзор проделанной мной работы и фрагменты кода: http://cases.azoft.com/mvvm-android-data-binding/

Чтобы узнать больше о теме, вы также можете взглянуть на следующие примеры приложений: https://github.com/ivacf/archi

Наглядные примеры работы, выполненной с помощью экрана поиска и списка.

1 голос
/ 17 мая 2014

Просто для публикации в качестве ссылки на других людей, которые могут быть заинтересованы.Я являюсь участником RoboBinding - платформы представления данных с привязкой данных для платформы Android.Это еще одна основа для той же цели.Помимо оказания помощи в структуре проекта, одной из основных задач RoboBinding является обеспечение возможности тестирования приложений для Android с помощью обычных тестов JUnit вместо модульных тестов Android, поскольку модульные тесты настолько важны, чтобы гарантировать качество проектов, но модульные тесты Android требуют много времении сделать юнит-тесты несколько непрактичными. RoboBinding поставляется с более чем 300 тестами JUnit для обеспечения его качества. MVVM возникла из Microsoft как специализация шаблона проектирования Presentation Model, представленного Мартином Фаулером.Другие альтернативы: Android-Binding, Bindroid и MvvmCross.

1 голос
/ 28 апреля 2012

Существует один проект под названием MVVMCross .

Это бесплатный, с открытым исходным кодом и хорошо разработанный MVVM-фреймворк, разработанный Stuart Lodge.

Он реализовал привязку для Androidи iPhone, так что теперь MVVM применима и ко всем этим платформам.

Для меня это одна из лучших сред MVVM - она ​​действительно демонстрирует мощь MVVM.С его помощью вы можете написать один код (слои модели и модели представления) для разных платформ (WP7, Android, iPhone, WinRT) и просто изменить пользовательский интерфейс приложения (уровень представления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...