Знаете C#, работаете в Visual Studio и хотите делать мобильные приложения? Xamarin - решение Microsoft для создания кросс-платформенных приложений с нативными элементами.
Термины
Xamarin - фреймворк, позволяющий создавать IOS, Android, Windows Phone, Mac приложения. Была основана в мае 2011 Мигелем де Икасой и Нэтом Фридманом. В 2016 Microsoft покупает компанию Xamarin и делает Xamarin бесплатным инструментом.
Xamarin.Forms(XF) - один из типов проектов Xamarin. Позволяет писать общую логику и визуальный интерфейс (кросс-платформенная реализация). Логика приложений пишется на C#, UI на языке разметки XAML (также, как и в WPF, но с другими элементами).
Xamarin.Native - один из типов проектов Xamarin. Для каждой платформы пишется отдельный визуальный интерфейс. Логика может быть общая.
Плюсы и минусы
У Xamarin есть свои плюсы и минусы, как и у любой технологии. Плюсы:
- Используются нативные элементы визуального интерфейса.
- За счет того, что приложения кросс-платформенны (это значит, что реализуется общая логика и компилируются под каждую систему), значительно сокращается время разработки.
- Можно иметь в команде одного Xamarin разработчика и делать приложения для трех платформ сразу.
Звучит круто? Возможно, но минусы существенные:
- Большой вес исходного файла для всех ОС (Операционная система), от 20 Мб до 100Мб (Если в ручную не настраивать сборку компиляции).
- Производительность на Android в XF намного меньше нативного (написанного на языке системы) приложения, на остальных ОС с производительности все в порядке. У Xamarin.Native нет серьезной проблемы с производительностью.
- Есть проблема в создании сложного графического интерфейса. Для создания какого-нибудь необычного UI придется создавать специальные рендеры для каждой из ОС.
Итог
Для разработчика. Если вы хотите разрабатывать мобильные приложения и знаете C# - то это хороший вариант, иначе лучше учить новый язык и делать полностью нативные приложения (мое мнение). Довольно много знаний нужно для реализации многофункциональных приложений (SDK систем). + работа с XAML или нативным интерфейсом в Xamarin.Native (Java - AXML, IOS - Storyboard).
Для клиента/компании. Xamarin - хороший выбор если необходимо создать быстро не очень сложное приложение. Стоимость Xamarin разработчика такая же, как и нативного, даже иногда меньше. Но необходимо предупредить клиента и привести примеры Xamarin приложений.
Телеграмм канал: https://t.me/dotnetreview
Источники: Xamarin Wiki