Compose Multiplatform 2.0 вышел в декабре с заявкой «production-ready на iOS». За полтора месяца мы прогнали один новый проект и переписали кусок существующего. Готов ли он к проду - отвечаем по делу, не по релиз-нотам.
Что улучшилось
- Производительность скроллинга на iOS подтянулась - теперь стабильно 60 fps на средних списках. На LazyColumn ощущается как нативный.
- Интерполяция жестов и pull-to-refresh ведёт себя по-iOS-овски, без эффекта «android внутри iphone».
- Размер итогового бинарника на iOS уменьшился примерно на 30% по сравнению с 1.x.
- Доступ к UIKit стал ощутимо проще - UIKitView и взаимодействие с системными VC более предсказуемы.
- Hot reload на симуляторе iOS работает стабильно. Не быстро, но без падений.
Что всё ещё болит
iOS-разработчики в команде регулярно жалуются на детали Cupertino-UX, которые Compose не воспроизводит точно: скорость анимации модалок, поведение клавиатуры, специфика haptic feedback. На нативном SwiftUI они «получаются сами», в Compose - приходится подкручивать.
Вторая боль - экосистема библиотек. Многих iOS-фреймворков нет в multiplatform-обёртках, и приходится писать expect/actual. Нормально, если команда знает Kotlin/Native, тяжело - если только Compose-on-Android.
Где мы готовы рекомендовать
- B2B-приложения с типовым UI и большим количеством бизнес-логики - да, экономия на одной команде ощутимая.
- Внутренние корпоративные тулзы - да.
- Приложения с сильной серверной логикой и тонким клиентом - да.
- Продукты с уникальным дизайном и брендовым UI - пока скорее нет, лучше нативно.
- Игры, мультимедиа, AR - нет, это не территория Compose.
Сравнение с альтернативами
На начало 2026 года расклад такой: для команд с Android-бэкграундом Compose Multiplatform - лучший вариант. Для команд с веб-бэкграундом - React Native. Для брендовой консистентности и анимаций - Flutter. Для платформенных фич и максимальной производительности - нативно.