Xamarin — это инструмент, который вышел сравнительно недавно и был рассчитан на тех, для кого кроссплатформенная разработка предпочтительнее нативных приложений. Этот фреймворк использует язык C#, поэтому включает библиотеки классов для данного языка, которые дают доступ к SDK для разных мобильных операционных систем. Целью создания этого инструмента было обеспечение возможности запуска программ, создаваемых на C#, в других операционных системах помимо Windows.
Кому будет полезен Xamarin
Разработка мобильных приложений Xamarin будет наиболее актуальна в том случае, если планируется создать продукт, функционал которого будет на первом месте, а интерфейс — предельно простым и не насыщенным сложными элементами. Если приложение совсем элементарно, имеет смысл использовать Xamarin.Forms — здесь достаточно мало стандартных компонентов, которые можно брать из готового набора и использовать в создании приложений. Итогом такой работы станет возможность использовать до 100% общего кода, что несомненно экономит время и ресурсы: по сути, работая над приложением для iOS, вы параллельно создаете идентичное приложение и под Android. Однако в большинстве случаев такое решение не подходит из-за необходимости использования элементов, отсутствующих в предоставленном наборе, так что разработка приложений под android будет проходить на Xamarin.Android, а для устройств от Apple используется Xamarin.iOS.
Не так давно для использования этого фреймворка разработчикам нужно было приобретать отдельную годовую лицензию. Сегодня Xamarin стал еще более выгодным вариантом, так как доступен по лицензии VisualStudio 2013/2015. Кроме самого фреймворка, есть также магазин дополнительных компонентов, который так и называется — Xamarin Components. Это постоянно пополняющийся дополнительными библиотеками классов и элементами пользовательского интерфейса раздел, в котором принимают участие не только специалисты самой компании, так и сторонние разработчики. Не все дополнительные компоненты являются бесплатными — некоторые придется покупать отдельно. Здесь можно найти как кроссплатформенные компоненты, так и те, которые применяются отдельно для iOS или Android.
Когда Xamarin использовать нецелесообразно
Чем сложнее интерфейс приложения, тем больше потребуется использовать уникальных компонентов для каждой мобильной операционной системы. Веб-студия, разработка мобильного приложения на Xamarin в которой ведется, к примеру, для Android, при высокой сложности интерфейса вполне может потратить на доработку этого же самого продукта для iOS даже больше времени, чем заняло создание первоначальное версии. Впрочем, это нужно оценивать, исходя из конкретного приложения, а также команды, работающей над проектом. Если планируется использовать Xamarin для разработки мобильного приложения, важно, чтобы в команде разработчиков были специалисты именно по мобильным системам.
Относительно спорный недостаток Xamarin — это сложность поиска ответов на нестандартные вопросы. На самом сайте содержится документация, включающая очень много информации по продукту, а также многочисленные примеры используемых методов; кроме того, всегда можно задать вопрос на форуме разработчиков. Поэтому с подобными сложностями можно столкнуться только если использовать Xamarin для работы над достаточно сложным и уникальным проектом.