Мобильные приложения на C#. Что такое Xamarin?

Знаете 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
.Net ReviewТелеграмм канал о технологиях .Net и не только. Здесь вы найдете разборы, уроки, фишки технологий и языков программирования, узнаете коварные вопросы на собеседовниях по .Net. Статьи как для новичков, так и для профессионалов.
251 подписчик