Разработчики используют кроссплатформенный фреймворк Xamarin в основном для создания небольших проектов или прототипов. Мы в DD Planet часто сталкиваемся с мифом, что для крупных бизнес-приложений он не подходит. Наша многолетняя практика показывает обратное — основные преимущества этого фреймворка проявляются именно в разработке масштабных проектов. В этой статье я на реальном примере покажу, как с помощью Xamarin можно экономить код, время и деньги.
Xamarin — это современный кроссплатформенный фреймворк разработки мобильных приложений на языке C# для устройств на iOS, Android и Windows.
Американская компания Xamarin основана в 2011 году. Ее разработчики адаптировали платформу .NET Framework, изначально рассчитанную на работу с Microsoft Windows, под другие мобильные платформы. В 2016 году компанию купил Microsoft и инструментарий стал бесплатным.
Он ориентирован на разработчиков, которые:
Преимущества фреймворка:
Основное преимущество Xamarin для бизнеса состоит в том, что он позволяет существенно (почти в 2 раза) сократить сроки и затраты на разработку при сохранении всего необходимого функционала и качества. То есть на выходе получается такое же приложение, как с помощью разработки на нативных языках программирования, только дешевле и быстрее.
Давайте посмотрим, за счет чего это происходит.
Главная особенность масштабных приложений: сложность дизайна и функциональности способствует увеличению количества кода. В результате возрастают время на разработку и бюджеты. Ведь если говорить о нативной разработке, компания сталкивается с необходимостью подключить к работе две команды разработчиков: отдельно на iOS и на Android, и фактически платит за два приложения вместо одного. В этом случае кроссплатформенные фреймворки, позволяющие писать код единожды и переиспользовать его на разных платформах, становятся важной альтернативой.
Так, возможность переиспользовать общий код — главный аргумент в пользу Xamarin. При разработке крупных приложений мы часто сталкиваемся с тем, что большие куски бизнес-логики приходится перетаскивать между разными частями приложения. Xamarin хорош тем, что позволяет пользоваться общей кодовой базой Core проекта и перетаскивать большие пласты логики с экрана на экран.
В среднем с его помощью до 90% общего кода приложения без изменений программисты могут переиспользовать на разных платформах. Разработку можно вести под Windows или MacOS и компилировать в нативные пакеты приложений: в.apk для Android или .ipa для iOS.
В результате мы можем в общем коде делать что угодно, выстраивать любую архитектуру так, как удобно нам. Чем масштабнее проект, тем больше процент переиспользованного кода экономит ресурсы.
Один из ярких примеров — наш крупный интеграционный проект, который мы реализуем совместно с клиентом уже более трех лет. Это экосистема для соседей по всей России «Вместе.ру» — мобильное приложение на Android и iOS, созданное с помощью Xamarin.
Сервисом пользуются десятки тысяч человек, подключены управляющие компании и много разных партнеров. В нем доступны:
Приложение огромное — реализовано больше 200 экранных форм: кабинеты пользователей и партнеров, множество разных новостных лент, сервисов оплаты и прочее.
Представьте, если бы для каждого экрана нам пришлось бы описывать бизнес-логику отдельно, да и еще и для двух платформ. Сейчас около 50% кода мы переиспользуем с помощью Xamarin.
Принципы разработки проекта:
Такой подход позволил в десятки раз сэкономить время на разработку новых экранов, использовать единую логику поведения контентных лент во всем проекте и снизить риск возникновения багов при работе с ними. Профита такого уровня было бы невозможно добиться без использования Xamarin и общего кода.
Мы написали всего 250 тысяч строк чистого кода. Из них:
Без применения Xamarin пришлось бы дважды писать Core: Core iOS (110 тысяч) и Core Android (110 тысяч). В нашем случае Core написан единожды и используется и для Android и для iOS. Таким образом, мы сэкономили 40% кода.
Выбирая технологию, обращайте внимание, в чем ее преимущества. Следует научиться ими жонглировать, чтобы получить наибольшую выгоду. Мы получили от Xamarin плюс — возможность использовать общий код. Раз Xamarin дает такую возможность, надо сделать на этом упор. Если приложить достаточно усилий, из этого можно получить серьезный выигрыш.
Можно экономить каждую строчку кода, дробить проект на мелкие переиспользуемые модули, чтобы разработка базовых вещей представляла собой не описание одного и того же ежедневно, а больше была похожа на конструктор. Это проще для разработчиков, дешевле для заказчиков, экономит время и код. Таким образом, когда процент переиспользованного кода растет, наибольший выигрыш от Xamarin виден на разработке именно крупных проектов.