KMM: Опыт iOS-разработчика и выгоды для бизнеса
Введение: Почему бизнес смотрит на KMM?
KMM позволяет оптимизировать разработку мобильных приложений. Всё просто: зачем содержать две команды — для iOS и Android — и писать дублирующий код, если можно объединить усилия в одном проекте? KMM позволяет снизить затраты, ускорить разработку и упростить поддержку. Но тут у бизнеса возникают резонные вопросы, например смогут ли разработчики привыкшие к нативным экосистемам адаптироваться к новой технологии? Не усложнит ли это всё? Действительно ли KMM того стоит?
В целом, какие проблемы реально волнуют современные компании?
- Дублирование кода между iOS и Android приводит к разрастанию команд. Например, экран авторизации или корзина в интернет-магазине требуют одинаковой логики, но реализуются по-разному из-за особенностей платформ.
- Высокие затраты. Зарплаты опытных разработчиков растут, а необходимость держать специалистов под каждую платформу увеличивает бюджет. Найм двух команд может обходиться в 2–3 раза дороже, чем одной универсальной.
- Устаревшие технологии. Некоторые компании до сих пор поддерживают приложения на Objective-C или старых версиях Java, найти разработчиков, готовых работать с устаревшим кодом, всё труднее, а обучение новичков требует времени и ресурсов.
KMM предлагает решение: общий код для iOS и Android, сокращение штата, ускорение вывода продукта на рынок. Но как это выглядит на практике? Чтобы разобраться, мы поговорили с Женей Григоренко, iOS-разработчиком из компании IceRock, который прошёл путь от классической нативной разработки на Swift к работе с KMM. Его история — это не просто личный опыт, а пример того, как технология открывает новые горизонты для бизнеса и разработчиков.
Женя: От Swift к KMM — личный путь разработчика
Женя Григоренко пришёл в IceRock с трёхлетним опытом iOS-разработчиком. За плечами у него были стажировки в IT-компаниях, проекты для банков и ритейлеров, а основным инструментом был Swift — язык, который он знал как свои пять пальцев. Однако рынок мобильной разработки начал меняться: компании всё чаще искали специалистов, способных работать с обеими платформами, и Женя решил попробовать KMM.
Почему IceRock?
Выбор компании был не случайным. IceRock известна своей экспертизой в мультиплатформенной разработке, активным участием в open-source проектах и собственной библиотекой moko.icerock.dev.
«Я искал место, где смогу быстро войти в KMM. IceRock предложила не только проекты, но и комьюнити, где можно учиться у коллег. Это как раз то, что нужно для старта»
Как проходил переход?
Переход на новую технологию — всегда вызов, особенно для разработчика, привыкшего к нативной среде. IceRock предоставила Жене структурированную программу обучения:
- Сначала теория — основы Kotlin, принципы KMM, работа с инструментами вроде Ktor (для сетевых запросов) и SQLDelight (для работы с базами данных).
- Затем практика — небольшие задачи, где нужно было вынести общую логику в shared-модуль, используя механизмы expect/actual для платформозависимого кода.
Женя:
«Поначалу было непривычно. В Swift всё в одном окружении: пишешь код, сразу видишь результат. А в KMM нужно разделять общую логику и UI для iOS/Android. Но через пару недель я понял, как это работает, и начал ценить экономию времени».
Сложности и их преодоление
Главная сложность – нужно было по-другому мыслить, выделять общую логику. В iOS Женя привык решать задачи целиком, с KMM пришлось переучиваться:
«Сначала я путался в expect/actual, не понимал, как правильно организовать код. Но документация от JetBrains и поддержка команды IceRock сильно помогли. Плюс опыт со Swift дал базу: Kotlin похож по строгости типов и подходу к асинхронности».
Сообщество IceRock и доступные примеры кода ускорили процесс. Через месяц Женя уже мог самостоятельно писать модули для KMM-проектов.
«За полтора месяца я освоил примерно 40% того, что нужно для уверенной работы. Думаю, через 2–3 месяца смогу брать полноценные задачи. Если бы я был новичком без опыта, адаптация заняла бы до года, но с поддержкой команды всё реально быстрее».
Как KMM помогает бизнесу: конкретные выгоды
Экономия времени и денег
KMM позволяет сократить дублирование кода, а значит, ускорить разработку и снизить затраты.
«Раньше экран авторизации делали два человека: iOS-разработчик тратил 8 часов на Swift, Android-разработчик — ещё 8 на Kotlin. С KMM я один пишу общую логику за 8 часов, а UI для платформ настраивается отдельно за пару часов. Итог: вместо 16 часов — 10–12, и работает одинаково хорошо».
Это позволяет существенно снизить расходы, особенно если речь идёт о крупных проектах с десятками экранов.
Упрощение найма и обновление устаревшего стэка
С КММ найм становится проще. С одной стороны, молодые специалисты не хотят работать с устаревшими технологиями и переход на КММ может позволить им этого избежать. С другой компании больше не нужно искать узких специалистов под каждую платформу.
«Рынок движется к универсальным разработчикам. Если раньше iOS-специалист был привязан к Swift, то теперь с KMM он может закрывать обе платформы. Адаптация занимает 2–3 месяца, если есть поддержка, как в IceRock».
Это решает проблему нехватки кадров: вместо двух вакансий достаточно одной, а обучение быстрее, чем найм с нуля.
Реальный пример: от теории к практике
Представьте ритейл-компанию с интернет-магазином. У них две команды: 5 iOS-разработчиков и 5 Android-разработчиков. Аудит кода показывает, что 60% функционала — авторизация, каталог товаров, корзина — дублируется между платформами. Поддержка обходится в миллионы рублей ежегодно, а новые фичи выходят с задержками из-за несогласованности.
С переходом на KMM общая логика выносится в shared-модуль. Команда сокращается до 6 универсальных разработчиков, которые пишут код сразу для обеих платформ. Экран корзины, который раньше занимал 20 часов (10 на iOS, 10 на Android), теперь делается за 12 часов. Срок вывода продукта на рынок сокращается на 30%, а затраты на разработку падают на 25%.
Вывод: KMM — это не страшно
KMM — зрелая технология, которая приносит бизнесу реальную пользу: снижение затрат, ускорение разработки, упрощение найма. Для iOS-разработчиков это возможность расширить навыки и стать востребованнее на рынке.
«Не бойтесь пробовать! Начните с чего-то простого, вроде экрана авторизации. Изучайте примеры от JetBrains, подключайтесь к комьюнити. Swift и Kotlin похожи, так что переход будет плавным».
Для бизнеса это шанс оптимизировать процессы без потери качества. Хотите узнать, как KMM может помочь вашему проекту? Обращайтесь — обсудим детали!