На мероприятии Microsoft Build 2017 мы рассказывали о концепции Xamarin.Forms 3.0. Мы планировали расширить возможности применения Xamarin.Forms, добавить поддержку новых платформ и добиться того, чтобы все приложения работали быстрее, чем когда-либо ранее. Сейчас я хочу рассказать о некоторых впечатляющих нововведениях, которые будут внесены в Xamarin.Forms, что, безусловно, разработчики оценят высоко!
Механизм встраивания Xamarin.Forms
Вы всегда могли вызывать нативные API-интерфейсы из Xamarin.Forms, но теперь стало возможным использовать Xamarin.Forms из преимущественно нативного приложения.
Собираетесь ли Вы возлагать на Xamarin.Forms, вообще, все или просто хотите использовать его в нативных приложениях, где он больше всего выгоден, мы предоставляем любые возможности. Мы называем это «Механизм встраивания Xamarin.Forms» (Xamarin.Forms Embedding). Возьмите любой ContentPage в XAML или C# и внедрите его непосредственно в приложение Xamarin.iOS, Xamarin.Android или UWP.
Возможности использования всех существующих элементов пользовательского интерфейса Xamarin.Forms теперь расширяются, выходя за пределы приложений Xamarin.Forms.
Вот как это выглядит. В Вашем «Не-Xamarin.Forms» приложении это так же просто, как инициализация Forms с ожидаемыми параметрами для этой платформы и создание нативного аналога для ContentPage с помощью подходящего метода. Вот так просто у Вас под рукой теперь есть нативные элементы управления!
1 2 3 4 5 6 7 8 9 10 11 | // Android Forms.Init(this, null); var androidFragment = new MyFormsPage().CreateFragment(this); // iOS Forms.Init() var iosViewController = new MyFormsPage().CreateViewController(); // UWP Forms.Init(e); var uwpElement = new MyFormsPage().CreateFrameworkElement(); |
Такие функции Xamarin.Forms, как DependencyService, MessagingCenter и система привязки данных — все по-прежнему работают в этом сценарии.
Дополнительные платформы
Xamarin.Forms получают поддержку дополнительных платформ! Приготовьтесь, скоро запуск будет возможен на macOS, Linux и, кроме того, даже появится поддержка большого числа приложений Windows благодаря включению WPF. Мы начали с включения macOS в режиме превью, однако, не останавливаемся на этом — теперь есть возможность ориентироваться на все настольные платформы! Наша команда хорошо справляется с разработкой под GTK# и WPF.
Ускорение и усовершенствование
Мы изучали аспекты Xamarin.Forms практически «под микроскопом», определяя ключевые моменты, которые могут заставить Ваши приложения работать быстрее, равно как и запускаться, в частности:
- Control Renderers: мы продолжаем работу над тем, что закономерно называем быстрыми системами визуализации (Fast Renderers). Эти реорганизованные рендереры не создают множества промежуточных объектов и достигают значительно лучшей производительности.
- Layout Compression (Сжатие макета): При включении макет во время компиляции будет оптимизирован для повышения скорости визуализации и минимизации использования памяти.
- Binding System (Система привязки): мы представляем одновременный режим привязки.
- Flexibility (Гибкость): популярная система веб-макета в скором времени будет доступна на Xamarin.Forms. Мы представляем систему FlexLayout для создания адаптивных макетов и реализации диспетчера визуальных состояний (Visual State Manager).
- Styling (Стилевое оформление): мы отполировали реализацию стилей, вдохновленных CSS, о чем нас часто просили. Конечно, можно продолжать проектировать стиль приложений по-прежнему, как сейчас, но для тех, кто является поклонником стиля CSS теперь появилась возможность использовать новое мощное средство.
Введение XAML Standard
Как было объявлено в Microsoft Build 2017, мы сотрудничаем с Отделом Windows по XAML Standard, чтобы предложить способ совместного использования стандарта XAML в качестве полезного средства. Xamarin.Forms будут полностью поддерживать XAML Standard, и перенесут Вас на любую платформу, которая потребуется.
Фреймворки, поддерживающие стандарт XAML, смогут обмениваться общими определениями пользовательского интерфейса на основе XAML. Наша цель состоит в том, чтобы первая версия стандарта — XAML Standard 1.0 была доступна уже в этом году.
Попробуйте воспользоваться этим уже сейчас и присоединяйтесь к обсуждению
Вот где Вы можете начать знакомство с новыми классными вещами, которые мы подготавливаем для Xamarin.Forms 3.0.
Загрузка превью Xamarin.Forms 3.0
Мы разместили предварительную версию Xamarin.Forms Embedding, и общий демонстрационный код доступен. Чтобы его получить:
- Добавьте новый источник к Вашему менеджеру NuGet: https://www.myget.org/F/xamarinforms-dev/api/v3/index.json
- Ознакомьтесь с пре-релизом
- Выберите и установите пакет с именем компонента Embedding. 0.0.100-embeddingpreview
- Скачайте код демонстрационного приложения погоды на GitHub. https://github.com/davidortinau/build2017-new-in-xamarin-forms
Когда Вы будете готовы, ознакомьтесь с полной «дорожной картой» (Roadmap) Xamarin.Forms и присоединитесь к диалогу по теме XAML Standard на GitHub
- Посетите Forms Roadmap и оставляйте отзывы об этих обновлениях.
- Присоединяйтесь к обсуждению XAML Standard на ms/xamlstandard.
- ПревьюForms для macOS на blog.xamarin.com/preview-bringing-macos-to-xamarin-forms/.
Посмотрите наше полное рабочее совещание Microsoft Build 2017 Xamarin.Forms на channel9.msdn.com/events/Build/2017/B8099.
Источник: Официальный блог Xamarin
очень круто, спасибо за статью