Эффективная работа в команде. Kotlin помогает командам программистов взаимодействовать и фокусироваться на приоритетных задачах. Более того, он позволяет распределять задачи между разработчиками. Например, команда Android может работать над реализацией регистрации (user signup flow), а команда iOS — созданием поста (post create flow). На следующем этапе команда Android может использовать код, написанный командой iOS, и наоборот.
В общем, экономия при разработке сильно зависит от проекта и его особенностей – где больше работы над интерфейсами (UI) в приложении - там экономии меньше, поскольку UI реализуется на платформенной стороне дважды. А если у проекта много бизнес-логики - тогда экономии больше, потому что она реализуется в общем коде один раз.
В целом, мы на проектах видимо от 20% до 40% экономии трудозатрат по сравнению с использованием только нативных технологий, поэтому 30% будет где-то близко к нашему опыту :)
Или можно писать на Dart/Flutter, но недостатки те же.
Плюс может потребоваться платформозависимый код, от этого, насколько я понимаю, и в Kotlin Multiplatform никуда не деться.
Сравнение KMP и кроссплатформы типа Flutter/RN не совсем корректно.
В случае с KMP мы получаем нативные приложения.
Слой бизнес логики, обычно, у мобильных приложений не большой,
но если его держать общим для двух платформ, то очень сильно экономим на синхронизации меж командами. От сюда и экономия по времени разработки.
Не совсем так. Кроссплатформенные решения вида Flutter или React Native добавляют дополнительную абстракцию от платформ. Они усложняют работу с самой платформой и не дают использовать обширный набор библиотек от нативного iOS/Android-сообщества.
А Kotlin Multiplatform - решение лишено подобных недостатков, в связи с чем имеет заметные преимущества перед остальными т.к. платформозависимый код с kotlin multiplatform сильно проще реализуется, чем в Flutter и React Native - не надо никакие каналы и прокси строить, просто вызываешь функции напрямую, а UI приложения полностью нативный для Android и iOS, и развитие проекта наращивание функционала возможно без ограничений.
В итоге получается, что при отладке кода его нужно будет править лишь один раз, и исправления произойдут сразу на обеих платформах. Но вы правы, без платформенного кода никуда - UI используется полностью нативным (что мы считаем преимуществом).
Нехватка разрабов - это большая проблема. Поддержка кода который не умеет рисовать или рисует по тормозному (превед react native) - это тоже проблема. Это пытается решить Flutter. И очень много готовых компонент, это к вопросу о цене.
Единственный плюс, пока не решены задачи выше, Котлин няшный, но для бизнеса это сомнительный плюс. Общую логику можно даже и на питоне закрутить.
Общую логику и на плюсах писали. Конечно, с декларативным UI проще все унифицировать, но как там дела с реактивностью в котлине?
Интересно, что простой вопрос сообщества @Kotlin в твитере по поводу использования этой технологии в продакшене вызвал шквал ответов: https://twitter.com/kotlin/status/1219575319327334400