|
@@ -0,0 +1,45 @@
|
|
|
+#xamarin_Forms
|
|
|
+
|
|
|
+Захарёнок Егор 47
|
|
|
+
|
|
|
+Xamarin.Forms — это платформа пользовательского интерфейса с открытым кодом. С помощью Xamarin.Forms разработчики могут создавать приложения для Xamarin.Android, Xamarin.iOS и Windows на основе общей базы кода.
|
|
|
+Xamarin.Forms позволяет разработчикам создавать пользовательские интерфейсы в XAML с помощью кода программной части в C#. Эти интерфейсы на каждой платформе подготавливаются к просмотру как собственные элементы управления.
|
|
|
+
|
|
|
+Оболочка
|
|
|
+
|
|
|
+Оболочка Xamarin.Forms упрощает разработку мобильных приложений, предоставляя основные возможности, которые необходимы для большинства приложений. Ниже приведены некоторые примеры функций, предоставляемых этой оболочкой:
|
|
|
+Общие возможности навигации
|
|
|
+Схема навигации на основе URI
|
|
|
+Обработчик интегрированного поиска
|
|
|
+
|
|
|
+Визуальный элемент материала Xamarin.Forms
|
|
|
+
|
|
|
+Визуальный элемент материала Xamarin.Forms используется для применения правил проектирования материалов к приложениям Xamarin.Forms. Визуальный элемент материала Xamarin.Forms использует свойство Visual для выборочного применения пользовательских отрисовщиков к пользовательскому интерфейсу, что обеспечивает единообразный внешний вид и поведение в iOS и Android.
|
|
|
+
|
|
|
+Преимущества Xamarin.Forms
|
|
|
+
|
|
|
+Во-первых, это всем нам хорошо знакомый C# и .NET. Если вы давно уже пишите на шарпах, то вам не надо тратить много времени на изучение нескольких новых фреймворков, а то и языков. Ну или, по крайней мере, в начале не надо, и вы можете достаточно быстро стартануть, используя свои текущие знания.
|
|
|
+Во-вторых, подход к созданию и работе с пользовательским интерфейсом близок к тому, к чему мы все привыкли в Windows. Особенно рады будут разработчики WPF, так как Xamarin Forms поддерживает работу с XAML, биндинги, темплейты, стили и прочие радости жизни. Думаю, понятно, что они несколько урезаны и не стоит ожидать всей мощи WPF, но все-таки удобства это добавляет.
|
|
|
+Так как это C#, то следующий плюс в том, что можно повторно использовать уже написанный код. В большей части он будет работать корректно. Есть у платформ ограничения, но они не столь велики. У нас получилось завести достаточно большой кусок из XtraGridControl-а, и это нам сильно помогло.
|
|
|
+Из того, что Xamarin.Forms схож с WPF, вытекает следующий плюс этой платформы: MVVM. Действительно, Xamarin.Forms имеет XAML, визуальные элементы имеют BindingContext (аналог DataContext в WPF), есть BindableProperty (аналог DependencyProperty). Таким образом, можно связывать View с ViewModel аналогично тому, как в WPF.
|
|
|
+Еще одно преимущество данной платформы в том, что так как UI описывается только в одном месте, то приложения под разными системами будут выглядеть очень похоже. Что может быть важно, например, в корпоративных разработках.
|
|
|
+
|
|
|
+Особенности и недостатки Xamarin.Forms
|
|
|
+
|
|
|
+Неполная реализация функционала WPF
|
|
|
+Компромиссные решения в реализации функционала, различающегося на разных платформах
|
|
|
+Различное поведение на разных платформах
|
|
|
+Производительность
|
|
|
+
|
|
|
+НЕПОЛНАЯ РЕАЛИЗАЦИЯ ФУНКЦИОНАЛА WPF
|
|
|
+Это первое, на что мы наткнулись. Xamarin.Forms имеет значительные ограничения в использовании темплейтов при разработке. Мне, как человеку, долго работавшему с WPF, этот инструмент очень нравится. Так как очень удобно, когда можно произвольно менять внешний вид контрола простым перекрытием темплейта. Однако, понятно, что в концепцию рендереров темплейты плохо вписываются, так как на конечных платформах подобное есть только в WinPhone.
|
|
|
+
|
|
|
+КОМПРОМИССНЫЕ РЕШЕНИЯ В РЕАЛИЗАЦИИ ФУНКЦИОНАЛА, РАЗЛИЧАЮЩЕГОСЯ НА РАЗНЫХ ПЛАТФОРМАХ
|
|
|
+Платформы порой различаются, и рендерерам приходится все эти различия сводить к какому-то единому механизму управления. Таким образом, приходится жертвовать какой-то функциональностью.
|
|
|
+
|
|
|
+РАЗЛИЧНОЕ ПОВЕДЕНИЕ НА РАЗНЫХ ПЛАТФОРМАХ
|
|
|
+Иногда поведение контролов может различаться на разных платформах. Как вы уже видели, в Xamarin.Forms пользовательский интерфейс описывается в общей для всех платформ части. И вполне ожидается, что в итоге он будет выглядеть одинаково на всех системах. Ну или хотя бы очень близко. Но это бывает не всегда. Давайте пройдемся по основным граблям, на которые наступали мы.
|
|
|
+
|
|
|
+Margins в WinPhone
|
|
|
+В WinPhone у некоторых контролов большие маржины, чего нет на остальных платформах (например, у Switch контрола). Таким образом, внешний вид приложения на нем может очень сильно отличаться от версий на Android и iOS, вплоть до полной неработоспособности (когда элементы просто не поместятся в видимой области).
|
|
|
+
|