Xamarin+Pcl+Mvvm — Как Упростить Написание Мобильных Приложений Для Разных Платформ

Как-то совершенно незаслуженно забыта платформа Xamarin 2.0, и мне хотелось бы начать описывать все ее замечательные свойства.



Прежде всего, что такое Xamarin?
Xamarin — это коммерческий продукт, основанный на проекте Mono с открытым исходным кодом, который позволяет использовать платформу .

Net, включая язык C#, для кроссплатформенной разработки.

Основные свойства:

  • C# для написания приложений для Android, iOS и Windows8. Поддержка LINQ и асинхронности/задач
  • Native UI, Native Peformance — код компилируется под конкретную платформу и использует собственные элементы управления пользовательского интерфейса.

  • Visual Studio и все ее плагины, включая ReSharper, тестирование NUnit.
  • Xamarin Studio, похожая на Visual Studio, но также доступная для Mac.
  • Использование .

    Net-библиотек

  • Использование других готовых нативных компонентов, завернутых в C#.

  • Графический редактор для Android


Xamarin+PCL+MVVM — как упростить написание мобильных приложений для разных платформ

МввмКросс В этом примере я буду использовать модель MVVM, для тех кто с ней не знаком, вот короткая цитата из Википедии: Шаблон Модель-Представление-ViewModel
Шаблон MVVM разделен на три части: Модель, как и в классическом MVC, Модель представляет фундаментальные данные, необходимые для работы приложения.

Представление/View — это графический интерфейс, то есть окно, кнопки и т. д. Представление — это подписчик на событие изменения значений свойств или команд, предоставляемых моделью представления.

Если в модели представления изменилось какое-либо свойство, она уведомляет об этом всех подписчиков, а представление, в свою очередь, запрашивает обновленное значение свойства из модели представления.

Если пользователь действует на какой-либо элемент интерфейса, представление вызывает соответствующую команду, предоставляемую моделью представления.

Модель Представления (ViewModel, что означает «Модель Представления» [1]) является, с одной стороны, абстракцией Представления, а с другой стороны, предоставляет обертку для данных из Модели, подлежащих привязке.

.

То есть он содержит Модель, преобразованную в Представление, а также содержит команды, которые Представление может использовать для воздействия на Модель.

Для кроссплатформенной реализации этого шаблона лучшей библиотекой (с открытым исходным кодом) является MvvmCross. Его разработчик прекрасно его поддерживает и практически мгновенно отвечает на любой вопрос.

Давайте начнем В качестве примера мы создадим простое приложение для подсчета чаевых.

В зависимости от нашей щедрости и суммы счета она рассчитает сумму чаевых, которую мы хотим оставить.

Монтаж Прежде всего нам необходимо зарегистрировать и установить Xamarin Studio. Сам шаг довольно простой, никаких проблем я не заметил.

Java, ADT, плагин для библиотек Visual Studio и Mono будут установлены автоматически.

Создание проекта Практически любое приложение будет содержать несколько проектов.

  • Одним из них будет «ядро», которое будет кроссплатформенным и будет содержать как можно больше кода: модели просмотра, связь с сервером, протоколы, объекты дат и т.д.
  • Проект пользовательского интерфейса для каждой платформы.

    Этот код нельзя использовать совместно, поскольку он использует компоненты, специфичные для платформы.

Создайте новый проект в Visual Studio, выберите Visual C#, Windows, Portable Class Library. Создаем проект TipCalc.Core и решение TipCalc. Выберите вариант Windows Phone 7.5 и выше.

Хочу отметить, что на данный момент поддерживается только версия .

Net 4.0, но это должно измениться буквально в этом месяце.

Изображений

Xamarin+PCL+MVVM — как упростить написание мобильных приложений для разных платформ



Xamarin+PCL+MVVM — как упростить написание мобильных приложений для разных платформ

Удали Class1.cs, он никому не нужен Добавьте библиотеку MvvmCross через NuGet. Например, мы выберем стартовый пакет Hot Tuna, включающий в себя несколько стартовых файлов.

Важно убедиться, что установлена последняя версия диспетчера пакетов NuGet, не ниже 2.5. Картина

Xamarin+PCL+MVVM — как упростить написание мобильных приложений для разных платформ

После успешной установки мы увидим два новых файла: App.cs, который содержит первоначальную инициализацию MvvmCross, и файл FirstViewModel.cs в папке ViewModels. С точки зрения правильного программирования мне следует переименовать имя класса FirstViewModel в TipViewModel, но для упрощения примера оставим его таким.

Класс FirstViewModel наследует от MvxViewModel, это класс библиотеки MvvmCross и позволяет нам дополнительно отправлять сообщения пользовательского интерфейса при изменении данных.

Этот класс реализует INotifyPropertyChanged, а его аналогом в WPF является BaseViewModel. Добавим в этот класс 3 свойства: SubTotal (сумма счета), Generosity (щедрость) и Tip (чаевые, которые мы оставим).

И перерасчет чаевых в зависимости от них: Весь код класса

   

using Cirrious.MvvmCross.ViewModels; namespace TipCalc.Core.ViewModels { public class FirstViewModel

Теги: #xamarin #mvvmcross #mvvm #pcl #pcl #C++ #кроссплатформенность #Android #.

NET #Разработка мобильных приложений #xamarin

Вместе с данным постом часто просматривают: