Что такое Xamarin.Forms?

Screenshots of example Xamarin.Forms application in iOS and Android

Xamarin.Forms — это платформа пользовательского интерфейса с открытым кодом. С помощью Xamarin.Forms разработчики могут создавать приложения для Xamarin.Android, Xamarin.iOS и Windows на основе общей базы кода.

Xamarin.Forms позволяет разработчикам создавать пользовательские интерфейсы в XAML с помощью кода программной части в C#. Эти интерфейсы на каждой платформе подготавливаются к просмотру как собственные элементы управления.

Для кого предназначена платформа Xamarin.Forms

Платформа Xamarin.Forms ориентирована на разработчиков, перед которыми стоят следующие задачи:

  • Совместное использование макета пользовательского интерфейса и разработка на различных платформах.
  • Совместное использование кода, тестов и бизнес-логики на различных платформах.
  • Написание кроссплатформенных приложений на языке C# в Visual Studio.

Как работает Xamarin.Forms

Xamarin.Forms architecture diagram

Xamarin.Forms предоставляет согласованный API для создания элементов пользовательского интерфейса на разных платформах. Этот API может быть реализован в XAML либо C# и поддерживает привязку данных для шаблонов, таких как "Модель — представление — модель представления" (MVVM).

Во время выполнения Xamarin.Forms использует отрисовщики платформы для преобразования кроссплатформенных элементов пользовательского интерфейса в собственные элементы управления в Xamarin.Android, Xamarin.iOS и UWP. Позволяет разработчикам добиться привычного внешнего вида, поведения и уровня производительности, а также реализовать преимущества совместного использования кода на разных платформах.

Приложения Xamarin.Forms обычно состоят из общей библиотеки .NET Standard и проектов отдельных платформ. Общая библиотека содержит представления XAML или C# и всю бизнес-логику, например службы, модели или другой код. Проекты платформы содержат всю зависящую от платформы логику или пакеты, необходимые приложению.

Xamarin.Forms использует платформу Xamarin для выполнения приложений .NET на разных платформах собственными средствами. Дополнительные сведения о Xamarin см. в статье Что такое Xamarin?.

Дополнительная функциональность

Xamarin.Forms имеет большую экосистему библиотек, которые добавляют разнообразные функциональные возможности для приложений. В этом разделе описываются некоторые из этих дополнительных функций.

Xamarin.Essentials

Xamarin.Essentials — это библиотека, которая предоставляет кроссплатформенные API для собственных функций устройства. Как и сама платформа Xamarin, библиотека Xamarin.Essentials представляет собой абстракцию, которая упрощает процесс доступа к собственным служебным программам. Ниже приведены некоторые примеры служебных программ, предоставляемых Xamarin.Essentials:

  • Сведения об устройстве
  • Файловая система
  • Accelerometer
  • Телефон
  • Преобразование текста в речь
  • Блокировка экрана

Дополнительные сведения см. в разделе Xamarin.Essentials.

Shell

Оболочка Xamarin.Forms упрощает разработку мобильных приложений, предоставляя основные возможности, которые необходимы для большинства приложений. Ниже приведены некоторые примеры функций, предоставляемых этой оболочкой:

  • Общие возможности навигации
  • Схема навигации на основе URI
  • Обработчик интегрированного поиска

Дополнительные сведения см. в разделе Оболочка Xamarin.Forms.

Особенности платформы

Xamarin.Forms предоставляет общий API, осуществляющий отрисовку собственных элементов управления на разных платформах, но конкретная платформа может иметь функции, отсутствующие на других платформах. Например, платформа Android имеет собственную функцию для быстрой прокрутки в ListView, а iOS — нет. Особенности платформы Xamarin.Forms позволяют использовать функции, доступные только на определенной платформе, без создания пользовательских отрисовщиков или эффектов.

Xamarin.Forms включает готовые решения для различных функций, характерных для определенных платформ. Дополнительные сведения см. в разделе:

Визуальный элемент материала

Визуальный элемент материала Xamarin.Forms используется для применения правил проектирования материалов к приложениям Xamarin.Forms. Визуальный элемент материала Xamarin.Forms использует свойство Visual для выборочного применения пользовательских отрисовщиков к пользовательскому интерфейсу, что обеспечивает единообразный внешний вид и поведение в iOS и Android.

Дополнительные сведения см. в разделе Визуальный элемент материала Xamarin.Forms