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

Мир мобильных платформ сильно фрагментирован, здесь выделяются две основные операционные системы - Android и iOS, а также платформу Windows Phone/Windows 10 Mobile. Есть определенные статистические данные, что значительная часть мобильных приложений создается более чем для одной платформы, например, для Android и iOS. Однако неизбежно разработчики сталкиваются со следующими трудностями:

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

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

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

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

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

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

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

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

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

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

Функционально платформа Xamarin представляет ряд субплатформ. В частности:

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

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

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

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

Благодаря этим платформам мы можем создавать отдельно приложения для Android, отдельно для iOS, но наиболее важной особенностью платформы является возможность создавать кроссплатформенные приложения - то есть одна логика для всех платформ. То есть мы один раз можем определить визуальный интерфейс, один раз к нему привязать какую-то логику на C#, и все это будет работать на Android, iOS и Windows Phone. Данная возможность представлена технологией Xamarin.Forms. И именно эту технологию мы и будем рассматривать в данном руководстве.