Возможности и преимущества Xamarin
Денис Замарин
Xamarin – фреймворк, предназначенный для разработки кроссплатформенных приложений и позволяющий создавать проекты, ничем не отличающиеся от нативных. В качестве основного языка программирования используется C# в тандеме с .NET. Мобильные приложения разрабатываются для операционных систем Android, IOS, Windows Phone. Также разработка приложений осуществляется для tvOS, watchOS, macOS и Microsoft.
Впервые платформа Xamarin была представлена в 2001 году, существовала как коммерческий проект до момента, пока компания Microsoft не выкупила права на владение.
Принцип работы Xamarin
Разработка на основе Xamarin не требует особых знаний в работе отдельных платформ, что позволяет заниматься созданием приложений даже специалистам среднего уровня. Помимо этого, Xamarin открывает на платформе возможность доступа к пакетам SDK.
Преимущества Xamarin заключаются в том, что платформа обладает большим набором встроенных инструментов и библиотек, позволяющим разработчикам создавать многофункциональные приложения на языке C#. Xamarin полностью основан на технологиях Microsoft, имеет качественную поддержку, стабильную работу и высокую производительность. Для разработки доступно два инструмента: Xamarin.iOS и Xamarin.Android.
Основной плюс Xamarin – возможность создавать код для различных платформ с единой бизнес-логикой, то есть использовать одну наработку для нескольких операционных систем одновременно, что экономит время и финансовые вложения в отличие от полностью нативной разработки, когда для каждой отдельной платформы приходится писать код с нуля. Несмотря на единый код, предоставляется беспрепятственный доступ к сетевым коммуникациям, базам данных. Благодаря этому получается, что кроссплатформенные приложения на базе Xamarin выглядят полностью нативными со стабильным и адаптированным интерфейсом.
Xamarin доступен по лицензии VisualStudio 2013/2015, имеет свой магазин инструментов, который регулярно пополняется как бесплатными, так и платными дополнениями. Но стоит не забывать, что основной набор, необходимый для разработки, предоставляется полностью бесплатно вместе с фреймворком.
Кому подойдет Xamarin?
Разработка приложений на Xamarin подойдет тем, кто планирует создать приложение с широким функционалом и простым интерфейсом, который не будет перегружен сложными элементами. Для элементарных приложений общего назначения целесообразно использовать Xamarin.Forms с ограниченным набором инструментов. На выходе проект получится универсальным для нескольких платформ, будет работать стабильно, а главное – не потребует большого количества затраченного времени и сил.
Если же речь идет о более сложных приложениях, в которых требуется применение большого количества инструментов, то в игру вступают Xamarin.Android и Xamarin.iOS.
Возможности Xamarin
Xamarin, как и все фреймворки, имеет определенную внутреннюю структуру, позволяющую разрабатывать качественные и производительные приложения. Встроенный набор инструментов и библиотек для Xamarin состоит из следующих элементов:
- Библиотека C#, дающая доступ к SDK (комплект для разработки программного обеспечения) для операционной системы IOS.
- Библиотека C#, дающая доступ к SDK для операционной системы Android.
- Компилятор C# для создания исполняемого файла Out.exe.
- .NET Framework – поддержка веб-служб и приложений Windows.
- Инструменты IDE (интегрированная среда разработки).
Важно отметить, что все вышеперечисленные элементы доступны полностью бесплатно, поставляются одним набором, без необходимости отдельной установки.
Преимущества Xamarin
Большинство разработчиков в качестве основы выбирают инструменты, позволяющие создавать качественные нативные приложения, это: Objective-C, Swift, Java. Однако существуют и другие достойные инструменты, Xamarin – один из них. Платформа используется многими крупными компаниями, например GitHub. Выбор в сторону Xamarin связан с доступностью и большим функционалом платформы, чем не могут похвастаться некоторые конкуренты.
Стек технологий единого типа
Возможность создания всех приложений на основе Visual Studio благодаря полной интеграции, а треть готового кода использовать в дальнейших разработках. Плюс Xamarin – работа на основе языков C# и .NET Framework, что позволяет создавать мобильные приложения абсолютно для любой платформы. Инструменты для кроссплатформенной разработки являются встроенной частью интегрированной среды разработки, дополнительные затраты не требуются.
Нативная производительность
Приложения, разработанные на Xamarin, можно расценивать как нативные. Это является главным отличием платформы от остальных гибридных решений, которые базируются на веб-технологиях. Показатели производительности ничем не отличаются от приложений, разработанных на основе Java, Objective-C и т. д.
Доступно применение Test Cloud совместно с Test Recorder для автоматического поиска проблемных участков в пользовательском интерфейсе и производительности. Данная услуга предоставляется за отдельную плату.
Возможность выбирать приоритеты
На платформе представлено два типа разработки: Forms и Native. Первый тип дает возможность создания примитивных приложений, имеет урезанный набор инструментов, использует до 95% общего кода и общий UI, что максимально ускоряет процесс разработки. Второй – расширенный вариант для приложений с требовательным функционалом, с третью переиспользования кода, отдельным UI для каждой платформы и высокой производительностью.
Хорошая совместимость с оборудованием
С использованием плагинов и различных API, проблемы совместимости с оборудованием сводятся к нулю. Платформу можно сочетать с библиотеками для нативных приложений с учетом конкретной операционной системы. Это преимущество Xamarin имеет ценность для многих разработчиков, так как иногда требуется помощь дополнительных узконаправленных инструментов, которых нет в стандартном наборе платформы.
Широкий набор инструментов для разработки
Платформа имеет собственный набор инструментов, который поставляется бесплатно: IDE, Xamarin SDK, Xamarin Test Cloud (тестирование), Hockeyapp and Xamarin.Insights (аналитика). Таким образом, в большинстве случаев не требуется дополнительная интеграция с другими инструментами, что экономит время, а в некоторых случаях и деньги.
Нативные UI
При помощи платформозависимых элементов UI можно создавать качественный интерфейс. Для разработки интерфейса с максимальным набором возможностей необходимо обращаться к Xamarin.iOS и Xamarin.Android.
Поддержка Open Source
Open Source – программное обеспечение для конечного пользователя, позволяющее получать открытый исходный код. Это дает возможность дорабатывать и изменять приложения под свои параметры без нарушения авторских прав. Данная функция стала доступна пользователям после 2016 года, когда компания Microsoft приобрела права на владение платформой.
Xamarin SDK входит в список открытых инструментов Visual Studio, доступен под лицензией MIT (второе название – лицензия X11) – свободное и открытое ПО для всех пользователей без ограничений. Данное решение избавляет от дополнительных трат на лицензию, что является неоспоримым преимуществом.
Стабильная работа и простая поддержка
Xamarin является кроссплатформенной площадкой, что позволяет создавать приложения сразу для нескольких операционных систем, которые имеют общую бизнес-логику. Альтернативным решением для общего кода может стать Xamarin.iOS и Xamarin.Android.
Качественная документация
Вместе с Xamarin поставляется подробная документация с практическими примерами, инструкциями, расписанными пошагово с учетом мельчайших деталей. Это дает возможность разработчикам, которые впервые пользуются платформой, получить качественную базовую подготовку без использования сторонних интернет-ресурсов.
Минусы Xamarin
Маленький штат специалистов
Несмотря на регулярные нововведения в Xamarin, штат специалистов не столь велик, как хотелось бы. Среди всех специалистов в сфере разработки мобильных приложений, разработчики Xamarin занимают около 10% от общей численности, что является довольно низким показателем.
В противовес небольшому штату можно поставить высокий уровень подготовки специалистов, а также регулярное повышение квалификации и проверку знаний. Для этого компанией Microsoft создано отдельное учебное учреждение с названием Xamarin University.
Долгое ожидание обновлений
После выхода обновлений со стороны Android или IOS, внедрение изменений необходимо ожидать от разработчиков Xamarin некоторое время. Хотя служба поддержки и заявляет, что обновления обеспечиваются в тот же день, но на практике это не всегда так, что может стать проблемой для специалистов, разрабатывающих приложения на данной платформе.
Сложности интеграции со сторонними ресурсами
Бывают случаи, когда возникают проблемы с интеграцией со сторонними ресурсами, хотя большинство инструментов и библиотек заявляют о полной поддержке нативных технологий. Полную интеграцию с Xamarin ни один производитель не может гарантировать, поэтому лучше использовать встроенные элементы платформы.
Доступ с ограничениями к библиотекам Open Source
В нативной разработке используется большое количество технологий с открытым исходным кодом. В Xamarin набор компонентов ограничен самой платформой. Среди инструментов и библиотек доступно большое количество основных элементов интерфейса: графики, диаграммы, темы и многое другое. Помимо этого, доступна функция встроенной обработки платежей, Push-уведомлений, стриминга и т. д.
Обязательны базовые знания нативных языков программирования
При разработке с применением Xamarin.iOS и Xamarin.Android требуются хотя бы базовые знания нативных технологий, так как в таком случае для каждой платформы часть кода пишется индивидуально, как в случае с полностью нативным методом создания приложений.
Это не будет проблемой для разработчиков, ранее занимавшихся созданием проектов для Android или IOS с применением полностью нативного способа разработки, а вот новичкам, которые не сталкивались с подобным ранее, может быть сложно.
Внушительный размер приложений
Основной минус фреймворка, отталкивающий некоторых разработчиков. Даже при создании несложных приложений их вес может быть в несколько раз больше стандартных нативных. Это вынуждает проводить дополнительную оптимизацию приложений, чтобы они на выходе имели приемлемый вес. Подобный нюанс требует дополнительных временных и финансовых затрат, что не всегда выгодно. Но даже несмотря на это, все остальные преимущества платформы с лихвой перекрывают такой хоть важный, но не критичный недостаток.
Эффективность Xamarin
Платформа обладает большим встроенным функционалом, за который не нужно дополнительно платить. На его основе можно разрабатывать масштабные проекты с высоким уровнем производительности, при этом сохранять кроссплатформенность внутри и нативность снаружи. Получается, что готовое приложение сразу доступно для использования на нескольких платформах, но сохраняет нативность, позволяющую прекрасно адаптироваться под каждое отдельное устройство без сбоев и проблем в интерфейсе.
Из этого можно сделать вывод, что Xamarin обладает высоким уровнем эффективности, которая может полностью удовлетворить все потребности разработчиков.