Xamarin.Native и Xamarin.Forms: в чем отличия

Автор:

Денис Замарин

В статье рассматривается применение Xamarin.Forms — платформы, используемой для создания кросс-платформенных приложений таких операционных систем, как: Android, iOS и Windows. Также выявляются различия в применении Xamarin.Forms и Xamarin.Native.

Xamarin.Forms — это платформа пользовательского интерфейса, которая используется для разработки собственных кросс-платформенных мобильных приложений для Android, iOS и Windows UWP с использованием языка программирования C#. Появилась в 2014 году и со временем завоевала популярность среди определенного круга IT-разработчиков.

Что такое Xamarin.Forms

Xamarin была создана Натом Фридманом, Мигелем де Иказа и Джозефом Хиллом в мае 2011 года, а позже была приобретена компанией Microsoft в 2016 году. Изначально Xamarin Studio использовалась при работе с Mac, а отдельный плагин для Visual Studio применялся на операционной системе Windows. В зависимости от операционной системы, на которой планируется разработка, необходимо выбрать приложение для вашей ОС — Visual studio для Windows или для Mac.

Популярность платформы обусловлена наличием следующих аспектов:

  • Использование одного языка программирования;
  • Экономия средств. Создание приложения для любой операционной системы занимает меньше времени;
  • С 2016 года лицензию на использование можно приобрести по разумной цене, также можно воспользоваться бесплатной демо-версией.

В то же время выделяется ряд минусов при работе с данной платформой:

  • Задержки с обновлениями

Несмотря на то, что компания Microsoft стремится обеспечить незамедлительный выпуск необходимых обновлений, требуется некоторое время, чтобы внедрить новые изменения, новые плагины и т. д. Данная ситуация может негативно повлиять на качество и скорость выполнения работы в случае частого повторения.

  • Ограниченный доступ к open-source библиотекам

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

  • Ограниченность экосистемы

Несмотря на то, что данный инструмент был выпущен уже в 2014 году, количество специалистов, разбирающихся в специфике данной программы, значительно до сих пор меньше, чем тех, кто привык работать с собственными платформами iOS или Android. Как следствие, найти разработчика, специализирующегося в большей степени на Forms, достаточно сложно. Анализируя данные, представленные в различных источниках, можно прийти к выводу, что количество специалистов, имеющих навыки работы с Xamarin, составляет не более 10% от всего количества мобильных разработчиков. Вместе с тем, создатели платформы стремятся поддерживать IT-специалистов, которые нацелены на использование их программы в дальнейшем. Так, например, было открыто специальное образовательное учреждение Xamarin University, которое предоставляет разнообразные ресурсы и возможности для практической подготовки специалистов в этой отрасли.

  • Больший вес приложений

Приложения, созданные с помощью Xamarin.Forms, весят больше по сравнению с приложениями, созданными на Xamarin Native. Данный аспект был выявлен в ходе анализа приложений, созданных с помощью разных платформ. Большой вес приложения может стать существенной проблемой для пользователя, который подключается не по сети Wi-Fi. Это обстоятельство может побудить его отказаться от скачивания и установки определенного приложения.

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

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

Xamarin Native

Xamarin.Android и Xamarin.iOS часто называют Xamarin.Native или традиционный Xamarin. Это кроссплатформенный инструментарий, который позволяет разработчикам создавать мобильные приложения с использованием C # и .NET framework. Независимый от платформы код нативных приложений Xamarin хранится либо в переносимой библиотеке классов (PCL), либо в общем проекте. Данные инструменты помогают в реализации функций, зависящих от платформы, и собственного UI.

Платформа Xamarin предоставляет доступ к широкому набору элементов управления, плагинов и API для ОС Apple и Android. Также программа оснащена средой разработки UI для Xamarin Studio и Visual Studio, что упрощает разработчикам создание безупречных проектов для UI и UX. Если ваше приложение требует сложного графического интерфейса, то Xamarin Native - это подходящая платформа для вас. Также важен тот факт, что с Xamarin Native разработчикам необходимо работать над базовым кодом, а затем над кодом пользовательского интерфейса, зависящим от платформы. Разработчикам, которые планируют использовать данный инструмент при создании программ для мобильных телефонов, необходимо ознакомиться с особенностями Xamarin.Android и Xamarin.iOS.

Xamarin.Android

Данный инструмент позволяет разработчикам создавать приложения для Android, используя языки программирования C # или F # вместо Kotlin. Android SDK полностью интегрирован в среду C # + NET – разработчикам не нужно изучать нативные языки. Также поддерживает различные настройки для 2D-графики, поэтому разработчики и дизайнеры могут создавать пользовательские анимации и графику прямо в фреймворке и интегрировать их в UI приложения. Кроме того, поддерживает 32-разрядную и 64-разрядную архитектуру процессора и позволяет поддерживать несколько из них одновременно. Созданную программу, например, игру, можно загрузить в Google Play непосредственно из рабочей платформы – предварительно убедившись, что приложение соответствует всем предъявляемым требованиям от Google Play.

Xamarin.iOS

Как и в Android, ОС Apple также обладает набором нативных приложений. Разработчики могут использовать готовые шаблоны для UI страницы, навигации и элементов управления. Xamarin.iOS поддерживает Apple Pay, позволяя пользователям оплачивать физические и онлайн-покупки со своего мобильного телефона. Проблем с поддержкой не возникает, можно установить на всех iPhone, начиная с iPhone 6, а теперь и на устройствах Apple Watch. Xamarin позволяет публиковать приложения для iOS путем распространения в App Store, развертывания IPA, распространения Ad hoc и распространения in-house.

Когда применяют Xamarin.Forms

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

  • Прототипы — для визуализации того, как ваше приложение будет выглядеть на разных устройствах;
  • Приложения, которым не требуются специфичные для платформы функции (например, API), но обратите внимание, что Xamarin усердно работает над обеспечением максимально возможной кросс-платформенной совместимости;
  • Приложения, в которых совместное использование кода является более важным аспектом, чем UI;
  • Приложения, в которых отображаемые данные важнее, чем расширенная функциональность.

Также необходимо принимать во внимание следующий ряд факторов:

  • Кто будет отвечать за разработку — если ваша команда состоит из опытных мобильных разработчики смогут легко работать с данной программой. Но если в вашем штате сотрудников только один разработчик на платформу, использование Xamarin.Forms может вызвать затруднения.
  • Быть готовым к тому, что с Xamarin.Forms иногда могут возникать некоторые проблемы, потому как программа совершенствуется каждый день.
  • Использование Xamarin.Forms позволяет сократить затраты на разработку.
  • Будет отличным вариантом при разработке корпоративных приложений без какой-либо расширенной функциональности.

Таким образом, использование платформы Xamarin.Forms. предоставляет возможность создавать приложения для нескольких операционных систем, используя при этом один язык программирования. Наиболее часто используемая платформа Xamarin Native имеет ряд плюсов и минусов в использовании, также, как и Xamarin.Forms, поэтому при разработке важно учитывать требования, которые будут предъявляться к создаваемому приложению. В то же время IT-специалисты, использующие в своей работе относительно новую платформу, получают преимущества по количеству затраченного времени и использованию одного языка программирования.

Материалы по теме