Другой кейс, что мне запомнился, это поддержка восстановления состояния android приложения. а точнее ее отсутствие - клиент пожаловался что приложение сбрасывается на стартовый экран, мы пошли искать как сделать instanceState...
Но идея одного кода на обе платформы оставалась - в идеале хотелось чтобы вся бизнеслогика была общая, а UI - нативными инструментами.
Попробовали еще Java 2 ObjC от гугла, даже попали на пару проектов где это уже было внедрено. На одном было все терпимо в плане использования..
1. Абсолютно новый фреймворк и для iOS и для Android
2. Не нативный UI
3. Асинхронная коммуникация с платформенными фичами
4. Различные неожиданные баги (совсем не решающее значение)
Это привычный андроид команде kotlin, привычный им же gradle - половина мобильного направления будет в своем привычном окружении
if(android) ... else ...
есть просто классы/функции которые имеют общее API в common и по разному реализуются на платформах.
Но из-за ObjC накладывается несколько ограничений на API K/N библиотеки.
Но это исправится - будет автоматическое добавление аргумента с калбеком, а сейчас это делают плагины
bit.ly/39Gj7HX
bit.ly/2IF9o8V
После небольшого теста сырой технологии я примерно месяц готовил проект-основу, чтобы на базе нее сделать какой либо реальный проект. Было много возни с mpp моделью в gradle, с coroutines, с serialization и ktor.
Этот кейс очень вдохновил на дальнейшие инвестиции в технологию
Есть неприятная особенность K/N стороны - инструменты отладки скудные. Мы имеем нативный фреймворк, можем ставить брейкпоинты даже в kotlin коде, можем видеть стектрейс понятный...
bit.ly/2TQ4s6g
JetBrains работают над улучшением отладки, но сейчас часто приходится прибегать к println :)
Однако эту проблему можно ослабить
Со стороны проекта лучшее что можно сделать - разбить проект на множество gradle модулей.
Поэтому у нас есть разбиение на фичи, есть отдельно домен и между собой фичи и домен никак не связаны.
Себе же я для максимальной эффективности взял macbook pro с 32г памяти и i9 процессором. Разница с macmini в 2-3 раза
И подключение модулей через api эту проблему не исправит. А все потому что надо для framework указать какие зависимости надо включить в хидер. через export
Знакомы ли вы с Kotlin Multiplatform?
Для тех кто использует Multiplatform в продакшене, какие ваши впечатления?
p.s. варианты ответов не подразумевают наличие страшных проблем, мне хочется понять что думает аудитория :)
Если другие причины - пожалуйста напишите в комменты, для меня этот вопрос один из самых важных на данный момент