Xamarin и кросс-платформенная разработка

Введение в Xamarin. Установка

Последнее обновление: 07.01.2021

Xamarin.Forms представляет платформу, которая нацелена на создание кроссплатформенных приложений под Android, iOS и Windows 10. Зачем использовать именно данную платформу, какие преимущества она несет? Есть определенные статистические данные, что значительная часть мобильных приложений создается более чем для одной платформы, например, для Android и iOS. Однако неизбежно разработчики сталкиваются со следующими трудностями:

  • различие в подходах построение графического интерфейса так или иначе влияет на разработку. Разработчики вынуждены подстраивать приложение под требования к интерфейсу на конкретной платформе

  • разные API - различие в программных интерфейсах и реализациях тех или иных функциональностей также требует от программиста учет этих специфических особенностей

  • разные платформы для разработки. Например, чтобы создавать приложения для iOS нам необходима соответствующая среда - Mac OS X и ряд специальных инструментов, типа XCode. А в качестве языка программирования выбирается Objective-C или Swift. Для Androidа мы можем использовать самый разный набор сред - Android Studio, Eclipse и т.д. Но здесь для подавляющего большинства приложений применяется Java или Kotlin.

    А для создания приложений под Windows используется Visual Studio, а в качестве языков - C#, F#, VB.NET, C++

Такой диапазон платформ, средств разработки и языков программирования не может положительно сказываться на сроках создания приложений, и, в конечном счете, на денежных средствах, выделяемых на разработку. Было бы очень эффективно иметь один инструмент, который позволял легко и просто создавать приложения сразу для всех платформ. И именно таким инструментом и является платформа Xamarin (произносится как "зэмарин").

Xamarin позволяет создавать одну единcтвенную логику приложения с применением C# и .NET сразу для всех трех платформ - Android, iOS, UWP.

Преимущества использования Xamarin.Forms:

  • В процессе разработки создается единый код для всех платформ

  • Xamarin предоставляет прямой доступ к нативным API каждой платформы

  • При создании приложений мы можем использовать платформу .NET и язык программирования C# (а также F#), который является достаточно производительным, и в тоже время ясным и простым для освоения и применения

  • Xamarin Forms поддерживает несколько платформ. Основные платформы: Android, iOS, UWP, Tizen. Дополнительные платформы, которые развиваются сообществом: MacOS, WPF, GTK#.

5 января 2021 года вышла последняя версия данной платформы - Xamarin Forms 5.0 и собственно она и будет рассматриваться в данном руководстве.

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

Работу Xamarin графически можно представить следующим образом:

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

Xamarin работает поверх фреймворка Mono, который предоставляет opensource-реализацию .NET Framework. Mono может работать поверх разных платформ - Linix, MacOS и т.д.

На уровне каждой отдельной платформы Xamarin полагается на ряд субплатформ. В частности:

  • Xamarin.Android - библиотеки для создания приложений на ОС Android

  • Xamarin.iOS - библиотеки для создания приложений для iOS

Эти субплатформы играют большую роль - через них приложения могут напрявлять запросы к прикладным интерфейсам на устройствах под управлением ОС Android или iOS. Вкратце это выглядит следующим образом.

С помощью Xamarin.Android код C# с использованием Xamarin компилируется в Intermediate Language (IL), который затем при запуске приложения компилируется в нативную сборку. Xamarin-приложения запускаются в среде выполнения Mono. Напрямую код не может обращаться к API Android. Для этого надо обратиться к функциональность пространств имен Android.* и Java.*, которые прдоставляются виртуальной машиной Android Runtime (ART). Специальная прослойка Managed Callable Wrappers (MCW) позволяет транслировать вызова managed-кода в нативные вызовы и обращаться к функциональности пространств имен Android.* и Java.*

И наоборот, когда Android Runtime (ART) обращается к приложению с кодом Xamarin, то все вызовы проходят через обертку Android Callable Wrappers (ACW).

Приложения Xamarin.iOS в отличие от Xamarin.Android, который использует JIT-компиляцию, применяют AOT-компиляцию (Ahead-of-Time) кода C# в нативный ARM-код. Xamarin использует промежуточный слой Selectors (селекторы) для трансляции вызовов кода Objective-C в код на C# и слой Registrars (регистраторы) для трансляции кода C# в Objective-C. В итоге слои Selectors и Registrars в целом представляют премежуточный слой, который на иллюстрации выше обозначен как "bindings" и который собственно позволяет взаимодействовать коду Objective-C с кодом C#.

В итоге благодаря этим платформам мы можем создавать отдельно приложения для Android, отдельно для iOS, но наиболее важной особенностью Xamarin является возможность создавать кроссплатформенные приложения - то есть одна логика для всех платформ. Данная возможность представлена технологией Xamarin.Forms и которая работает как бы уровнем выше Xamarin.Android и Xamarin.iOS. То есть с помощью Xamarin.Forms мы один раз можем определить визуальный интерфейс, один раз к нему привязать какую-то логику на C#, и все это будет работать на Android, iOS и Windows. Затем Xamarin.Forms с помощью рендереров (renderer) - специальных объектов для связи контроллов на XAML/C# с нативными контроллами транслируют визуальные компоненты Xamarin.Forms в графический интерфейс, специфичный для каждой платформы.

Установка Xamarin

Для разработки кроссплатформенных приложений на Xamarin нам нужна среда разработки. Для Windows такой средой является Visual Studio. То есть, если нашей ОС является Windows, то нам вначале надо установить Visual Studio 2019. При этом можно использовать в том числе и бесплатный выпуск Visual Studio 2019 Community.

При установке Visual Studio 2019 в программе для установщика обязательно надо выбрать пункт "Разработка мобильных приложений на .NET":

Установка Xamarin для Visual Studio 2019

После инсталляции мы сможем в меню Help ->About Microsoft Visual Studio увидеть отметку о Xamarin:

Xamarin в Visual Studio

Если целевой операционной системой является Mac OS X, то в этом случе нам надо установить Visual Studio for Mac.

Кроме того, для разработки на Mac OS X требуется установить XCode, который доступен в AppStore.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850