Как сэкономить на создании мобильного приложения с помощью мультиплатформы Kotlin

Привет! Меня зовут Алексей Гладков. Я являюсь техническим архитектором «Леруа Мерлен».

Когда в «Леруа Мерлен» встала задача доработать флагманское мобильное приложение для iOS и Android, мы стали искать кроссплатформенное решение, которое не только сделало бы их простыми в управлении и использовании, но и потребовало бы минимальных временных и финансовых затрат.

Проведя исследования, остановились на решении Kotlin Multiplatform Mobile, которое позволило существенно снизить расходы на разработку и поддержку. За счет чего это произошло, расскажем в статье.

Экономия времени, денег и большой рынок найма

Хотя идентичная логика на iOS и Android позволяет избегать значительного расхождения, мы изначально дублировали бизнес-логику и по-разному реализовывали функции на каждой из двух платформ. Это периодически приводило к разного рода проблемам.

Например, приложение для iOS вышло раньше, чем для Android. Случалось, что добавляли изменения в логику iOS, забывая внести то же самое в Android, и наоборот. Из-за отсутствия универсального кроссплатформенного решения приходилось латать дыры то там, то здесь.

Проблема была решена, когда появилась Kotlin Multiplatform Mobile. Теперь любые изменения происходят одновременно на обеих платформах. Правда, теперь нужно внимательнее следить за ошибками, потому что они также всплывают сразу на iOS и на Android.

Kotlin — мультиплатформенный язык программирования, который легко взаимодействует с родными языками разных платформ. KMM позволяет писать единый код для iOS и Android, который можно без проблем изменять и редактировать в дальнейшем. Существенно упрощается тестирование, так как можно один раз создать общий тест и запускать его на всех платформах. Это также удешевляет поддержку и сопровождение.

Благодаря KMM время на создание приложения сокращается примерно на 50%. Мы разделяем логику между платформами и используем собственный код для каждого пользовательского интерфейса. Этот подход обеспечивает максимальную производительность при минимальном количестве шаблонного кода.

Для Kotlin легко найти специалистов, потому что язык является родным для Android и каждый разработчик платформы с ним знаком. А из-за родственности с JVM-языками работать с Kotlin и Kotlin Multiplatform теоретически может практически любой backend-специалист.

Так как разработка, внедрение и проверка кроссплатформенного решения проходит в несколько раз быстрее, мы можем написать и запустить приложения в короткие сроки и существенно сэкономить время и деньги.

Мультиплатформенная технология позволяет использовать единый код, поэтому нет необходимости привлекать и оплачивать труд большой команды специалистов. Благодаря KMM с написанием приложения для iOS и Android справится один разработчик.

Для более сложного проекта создать единый код и бизнес-логику может разработчик Android, а специалисту по iOS нужно будет только подключить библиотеку и UI.

Советы по внедрению Kotlin Multiplatform

Если у вас в команде есть разработчики iOS и вы сомневаетесь, смогут ли они работать на Kotlin, адаптируйте их постепенно, тогда не будет проблем с внедрением KMM.

Создавайте базу знаний по Kotlin и KMM, которой могут воспользоваться все специалисты. Описывайте возникающие в процессе работы проблемы и пути их решения (развертывание, добавление библиотек и т. д.) в отдельных руководствах, чтобы к ним можно было обратиться в любой момент.

Не забудьте объяснить разработчикам, что выбор KMM не связан с приоритетностью Android. Внедрение Kotlin Multiplatform не означает, что разработчики iOS перестанут работать с экосистемой Swift или Apple. У нас в команде есть специалисты, которые не работают с KMM.

Важно правильно донести до команды, что Kotlin — это общее решение, чтобы iOS-программисты спокойно приняли этот подход.

Для iOS может возникнуть еще одна проблема — это поставка готового артефакта из KMM в iOS проект. Изначально мы просто собрали KMM проект и закидывали готовый framework в проект, подключая его руками.

Таким образом, растет сложность и время сборки проектов, что влияет на разработчиков iOS, которые не хотят работать с мультиплатформой. Решить эту проблему удалось путем изменения файла Cocoapods Podspec. Мы изменили источник нашей библиотеки Kotlin с Git на URL с готовым к производству zip-архивом с Apple Framework. И теперь специалисты iOS работают с KMM как с любой другой предварительно созданной зависимостью Cocoapods.

Для нас важно, что Kotlin Multiplatform Mobile — стабильная кроссплатформенная технология с огромным сообществом, которая позволила значительно упростить создание приложений и сделать их удобными как для разработчиков, так и для клиентов.

И один из ключевых моментов — не приходится тратить лишние время и деньги на дополнительных специалистов и поддержку.

12
7 комментариев