Как Baidu переносила бизнес-логику iOS и Android на Kotlin Multiplatform
В приложении Wonder одинаковые правила отдельно реализовывали на Swift и Kotlin. Изменения приходилось синхронизировать между командами, а корректность проверять дважды. Связанный с логикой интерфейс также мешал повторно использовать код и писать модульные тесты.
Команда начала с общего слоя данных: объединила модели, REST-запросы, разбор JSON и кеш данных по ключу. Нативные интерфейсы iOS и Android сохранили. Позже часть интерфейсной логики перенесли на шаблон MVI для управления состоянием, а настройку модулей упростили собственными плагинами Gradle.
Подключение модуля добавляло 2 МБ из-за встроенной среды выполнения, а отладка общего Kotlin-кода для iOS сводилась к логам и замедлялась по мере роста проекта. Кейс Baidu показывает порядок внедрения и ограничения, которые стоит проверить на пилотном модуле.
Post #4736
1.2K
