3 проблемы тимлидов, которые решает Kotlin Multiplatform Mobile
Создание приложения — это проект, в котором кроме разработчиков iOS и Android участвуют бэкенд- и фронтенд-разработчики, QA-специалисты, а если проект масштабный, то собирают команды по нескольким направлениям работы. Всех участников процесса контролирует и страхует тимлид. Координация работы — это бесконечный поток задач, который можно оптимизировать, внедрив КММ.
Kotlin Multiplatform Mobile (КММ) — инструмент, с помощью которого создают бизнес-логику сразу для двух платформ — iOS и Android. Рассказываем в статье, как КММ поможет тимлиду ускорить разработку без вреда качеству.
Чем занимается тимлид в проекте
Тимлид — связующее звено между бизнесом и разработчиками, он руководит техническими специалистами и страхует их. Роль тимлида выполняет опытный разработчик, как минимум уровня мидл, но чаще это сеньор. Поэтому он знает, как решить любую задачу, благодаря своим скилам в разработке и технологиях.
Задачи тимлида:
- Организовать слаженную работу всех разработчиков. Тимлид планирует и распределяет задачи в зависимости от навыков специалистов.
- Выстроить рабочие процессы. Тимлид знает итоговую цель проекта, поэтому быстро подстраивается под все изменения или форс-мажоры.
- Выбрать для проекта лучшие технологии и применить их. Тимлид руководит техническим процессом разработки и решает, какие технологии использовать в разработке.
Организовать рабочий процесс может быть сложно, потому что постоянно что-то меняется: идеи, сроки, бюджет. И тимлид сталкивается с постоянной проблемой: в сжатые сроки, не потеряв качества, внедрить новую фичу или разработать приложение сразу на двух платформах — Android и iOS. Тут и помогает Kotlin Multiplatform Mobile: оптимизирует и ускоряет разработку до 25%, экономит бюджет клиента.
Зачем тимлиду Kotlin Multiplatform Mobile
Kotlin Multiplatform Mobile, КММ — это технология, позволяющая написать общий код для бизнес-логики, а затем скомпилировать его под нативные платформы: iOS, Android и другие, сохраняя полностью нативный UI.
Чтобы создать нативные приложения на разных платформах, разработчики пишут отдельную логику и отдельно верстают UI для iOS и Android. В результате одно и то же приложение на двух платформах может отличаться не только интерфейсом, но и функционалом, а также могут быть разные или одинаковые баги в логике. С КММ пишется единый код для бизнес-логики, поэтому приложения будут иметь идентичное поведение, при этом сохранят свой нативный UI операционной системы, привычный пользователю.
Опыт работы с Kotlin Multiplatform показывает, что до 80% времени разработчики пишут бизнес-логику, а остальные 20% верстают UI для своей платформы.
Мы в IceRock внедрили Kotlin Multiplatform Mobile и успешно протестировали в нескольких проектах. Например, в «Профи.ру» мы смогли объединить и вынести бизнес-логику в общий код, а UI/UX оставили для пользователя нативными, и сэкономили время и стоимость разработки.
С КММ тимлид работает быстрее и легче решает свои задачи:
- координирует действия всех разработчиков;
- контролирует работу, чтобы минимизировать баги;
- сокращает срок разработки приложений для каждой платформы.
Задача № 1: координировать работу нескольких команд разработчиков
Выделяют две популярные и распространенные операционные системы — Android и iOS. Чтобы охватить как можно больше пользователей, клиент обращается к разработчикам за приложением сразу для двух платформ (иногда для трех, включая десктопную версию). Тимлид вместе с проджект-менеджером становится связующим звеном между бизнесом (клиентом) и разработчиками.
Проблема
Один проект разрабатывается на двух платформах, и каждая команда (iOS и Android) работает по отдельности. Тимлиду нужно донести до разработчиков одну и ту же информацию и получить одинаковый результат. Но зачастую приложения отличаются по поведению для пользователей ОС. Отличие реализации связано с тем, что код разработчики пишут отдельно друг от друга.
Решение
С КММ этой проблемы не возникнет, потому что код бизнес-логики только один, и его используют на обеих платформах. Разработчики могут работать над задачей одновременно: например, один делает логику и верстку iOS-версии, а другой разработчик занимается только версткой версии для Android. С КММ приложения на iOS и Android никак не отличаются для пользователя по функционалу, но различаются интерфейсом, стандартными элементами и их системным поведением.
КММ поможет координировать работу не только в процессе разработки новых приложений, но и во время внедрения новой фичи для существующего приложения. Например, если потребуется внести изменения в логику, то достаточно передать новую информацию одному разработчику. Бизнес-логика одна, поэтому один специалист вносит изменения, которые видят и другие разработчики.
Задача № 2: контролировать работу и минимизировать ошибки
В обязанности тимлида входит полное руководство техническими специалистами проекта: от первичной постановки задачи до контроля итогового результата.
Проблема
При разработке новой фичи или приложения целиком на двух платформах отдельно разработчики могут по-разному реализовать логику. В результате на этапе тестирования выявляется много багов.
Решение
С КММ этой проблемы не возникнет, потому что тимлиду достаточно один раз описать разработчикам задачу, которую он получил от клиента. Код единый, а значит, тимлиду не нужно дважды проверять логику для каждой платформы, поэтому ошибок становится меньше.
Задача № 3: сократить срок внедрения новой фичи или разработки приложения
Когда проект или фича разрабатывается на двух платформах, каждая команда (iOS и Android) работает по отдельности. Команды разработчиков для каждой платформы пишут свою бизнес-логику и верстают свой UI.
Проблема
Разработчики версий для iOS- и Android-платформ не всегда могут одновременно взяться за работу, поэтому срок сдачи проекта может затягиваться, пока обе команды не завершат работу.
Решение
С KММ тимлид выстраивает разработку двух фич так, чтобы разработчик версии для одной платформы написал общую бизнес-логику, а разработчики версии для второй платформы могли ее использовать. Это сокращает срок сдачи готового продукта.
Kotlin Multiplatform Mobile на диаграмме Ганта
На условном примере разберем, как КММ помогает тимлиду в работе. Мы не учитывали в примере выходные и праздничные дни, чтобы все дни уместились на один экран и было наглядно.
Допустим, нужно реализовать три фичи в приложении на разных платформах: «Список товаров», «Профиль» и «Настройки». В команде тимлида — iOS-разработчик и Android-разработчик, и у каждого из них по три новые фичи на платформу.
Без КММ каждый из разработчиков в один момент времени будет работать только над одной фичей и должен сделать две задачи: написать логику и сверстать UI. Допустим, задачи одинаковые по времени и требуют по одному дню на логику и верстку — получается, разработчики закончат за шесть дней.
На диаграмме Ганта видно, что у каждого разработчика уходит по два дня на фичу
Чтобы понять, как здесь поможет КММ, разобьем задачи не на две составляющие, а на три: нативная верстка для iOS-платформы и для Android-платформы, а также одна задача для общей логики.
На диаграмме одинаковые фичи покрашены в один цвет, так легче проследить связь. С КММ бизнес-логика будет одна, но невозможно делать эту задачу двум разработчикам одновременно. Назначим бизнес-логику на iOS-разработчика и получим вот такую картину:
На диаграмме Ганта видно, что КММ не поможет, если задачи распределять неправильно
Длительность разработки не уменьшилась, и Android-разработчик постоянно ждет готовую логику задачи. При таком распределении в момент реализации UI могут возникнуть проблемы с привязкой к логике, потому что разработчики ожидали разные варианты реализации. Это приведет к правкам в общем коде, их может сделать кто-то один, а потом потребуется синхронизация с кодом второго разработчика, а это увеличит время разработки.
Чтобы не случилось простоя или увеличения срока из-за всплывающих багов, нужен тимлид. Он знает цели клиента и по навыкам разработчиков распределяет задачи так, чтобы ускорить разработку.
В этом примере фичи не зависят друг от друга, поэтому с КММ разработчики могут параллельно делать сразу две: один — «Список товаров», а другой — «Профиль». Каждый из них сначала сделает логику, проверит ее и скорректирует в связке с UI для своей платформы. После разработчики поменяются фичами и добавят в фичу коллеги недостающую часть. На диаграмме это будет выглядеть так:
КММ позволяет тимлиду распределить обязанности между разработчиками и выстроить их одновременную работу
Теперь общий срок разработки сократился на один день. Одновременная реализация UI на обеих платформах может вызвать ошибки, из-за которых придется менять общую логику. Тимлид снижает эти риски: координирует и проверяет работу разработчиков. Он подключается на этапе проработки задачи и описывает интерфейс взаимодействия логики и UI-слоя.
А если возьмем четное количество фич, например еще и «Детали товара», то тимлид с помощью КММ распределит задачи между разработчиками так, чтобы справиться за тот же срок и бюджет.
На диаграмме Ганта видно, что с КММ разработчики за шесть дней сделают четыре фичи вместо трех
Разработчикам важно, чтобы был человек, который выстроит систему: распределит задачи по нагрузке, учтет сроки и подстрахует, если возникнут ошибки. А клиентам важно получить продукт быстрее, дешевле и с возможностью легко и оперативно что-то поменять.
С Kotlin Multiplatform Mobile тимлид легче справляется со своими задачами и оптимизирует работу команд специалистов. Чтобы внедрить Kotlin Multiplatform Mobile, записывайтесь на бесплатную консультацию.