Kotlin Multiplatform / 3 проблемы тимлидов, которые решает Kotlin Multiplatform Mobile

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. Допустим, задачи одинаковые по времени и требуют по одному дню на логику и верстку — получается, разработчики закончат за шесть дней.

1.png На диаграмме Ганта видно, что у каждого разработчика уходит по два дня на фичу

Чтобы понять, как здесь поможет КММ, разобьем задачи не на две составляющие, а на три: нативная верстка для iOS-платформы и для Android-платформы, а также одна задача для общей логики.

На диаграмме одинаковые фичи покрашены в один цвет, так легче проследить связь. С КММ бизнес-логика будет одна, но невозможно делать эту задачу двум разработчикам одновременно. Назначим бизнес-логику на iOS-разработчика и получим вот такую картину:

2.png На диаграмме Ганта видно, что КММ не поможет, если задачи распределять неправильно

Длительность разработки не уменьшилась, и Android-разработчик постоянно ждет готовую логику задачи. При таком распределении в момент реализации UI могут возникнуть проблемы с привязкой к логике, потому что разработчики ожидали разные варианты реализации. Это приведет к правкам в общем коде, их может сделать кто-то один, а потом потребуется синхронизация с кодом второго разработчика, а это увеличит время разработки.

Чтобы не случилось простоя или увеличения срока из-за всплывающих багов, нужен тимлид. Он знает цели клиента и по навыкам разработчиков распределяет задачи так, чтобы ускорить разработку.

В этом примере фичи не зависят друг от друга, поэтому с КММ разработчики могут параллельно делать сразу две: один — «Список товаров», а другой — «Профиль». Каждый из них сначала сделает логику, проверит ее и скорректирует в связке с UI для своей платформы. После разработчики поменяются фичами и добавят в фичу коллеги недостающую часть. На диаграмме это будет выглядеть так:

3.png КММ позволяет тимлиду распределить обязанности между разработчиками и выстроить их одновременную работу

Теперь общий срок разработки сократился на один день. Одновременная реализация UI на обеих платформах может вызвать ошибки, из-за которых придется менять общую логику. Тимлид снижает эти риски: координирует и проверяет работу разработчиков. Он подключается на этапе проработки задачи и описывает интерфейс взаимодействия логики и UI-слоя.

А если возьмем четное количество фич, например еще и «Детали товара», то тимлид с помощью КММ распределит задачи между разработчиками так, чтобы справиться за тот же срок и бюджет.

4.png На диаграмме Ганта видно, что с КММ разработчики за шесть дней сделают четыре фичи вместо трех

Разработчикам важно, чтобы был человек, который выстроит систему: распределит задачи по нагрузке, учтет сроки и подстрахует, если возникнут ошибки. А клиентам важно получить продукт быстрее, дешевле и с возможностью легко и оперативно что-то поменять.

С Kotlin Multiplatform Mobile тимлид легче справляется со своими задачами и оптимизирует работу команд специалистов. Чтобы внедрить Kotlin Multiplatform Mobile, записывайтесь на бесплатную консультацию.