Compose Multiplatform теперь поддерживает iOS
Я думаю, что все вы слышали про Jetpack Compose – это примерно как SwiftUI, но от мира Android. Так вот, мы в JetBrains еще в прошлом году сделали его мультиплатформенным, и дали возможность шарить код с десктопными приложениями. А на прошлой неделе на KotlinConf был важный анонс – теперь Compose Multiplatform поддерживает еще и iOS таргет, правда пока только в Alpha!
Сразу разберем горячие вопросы:
🎨Фреймворк рисует компоненты на канвасе, примерно как Flutter.
🤖Пока что из коробки доступны только Material design компоненты. Ну и, конечно, можно верстать кастомный дизайн любой сложности.
📱Так как все рисуется на канвасе, многим компонентам пока не хватает привычного айосного поведения. Например, у скролла другая физика. Сразу предупрежу, что это просто ограничение альфы, а так все в работе.
💻Код, написанный для Android, полностью валиден для запуска на iOS, если не зависит от платформенных библиотек.
☁️Помимо iOS и Android есть поддержка всех десктопных операционных систем, а еще и экспериментальная поддержка Web.
🌡️Фреймворк еще в очень-очень сыром состоянии, и впереди много работы над тулингом, перфомансом, интеграцией с iOS платформой и компонентами.
Все это работает поверх Kotlin Multiplatform, поэтому наша изначальная идея остается актуальной. Мы не планируем заменять нативную разработку. Вы сами решаете, какую часть кода надо пошарить в вашем проекте, чтобы получить пользу – отдельный модуль, всю бизнес-логику, какие-то вспомогательные экраны вроде настроек, или вообще все.
Я буду очень рад, если вы попробуете Compose, и поделитесь впечатлениями и фидбэком. Так получилось, что я сейчас выполняю роль продакт менеджера в его команде, и как раз много думаю над тем, какая интеграция с iOS важна в первую очередь!
👉Основной сайт фреймворка
👉Шаблон старта нового проекта
👉Кейноут KotlinConf, где на 50 минуте рассказывают про Compose
👉Подробный доклад про Compose for iOS на отметке 5ч 13мин