TGViewer
Compose Broadcast Compose Broadcast @compose_broadcast · 5.89K subscribers
Post #988 1.24K
⚙️ Встраивание Compose в UIKit и SwiftUI-экраны стало стабильным

Раньше стабильным для iOS был только ComposeUIViewController, и чтобы вставить кусок Compose в готовый экран, его приходилось оборачивать в контроллер. В CMP 1.11 появилась ComposeUIView(), которая сразу возвращает UIView, но она была экспериментальной. В 1.13.0-alpha02 с неё сняли @ExperimentalComposeUiApi.

В Kotlin всё как с контроллером:

// iosMain/ComposeViews.kt
fun ProfileCardUIView(): UIView = ComposeUIView {
ProfileCard()
}

В SwiftUI оборачиваем в UIViewRepresentable. Чтобы view подстраивалась под контент, на iOS 16+ передаём ей размер, который предлагает SwiftUI:

struct ProfileCardView: UIViewRepresentable {
func makeUIView(context: Context) -> UIView {
ComposeViewsKt.ProfileCardUIView()
}

func updateUIView(_ uiView: UIView, context: Context) {}

@available(iOS 16.0, *)
func sizeThatFits(_ proposal: ProposedViewSize, uiView: UIView, context: Context) -> CGSize? {
uiView.sizeThatFits(CGSize(
width: proposal.width ?? UIView.noIntrinsicMetric,
height: proposal.height ?? UIView.noIntrinsicMetric
))
}
}

Что важно знать:
👉 Настройки передаются через configure с ComposeUIViewConfiguration. Стабильна только часть из них, например onFocusBehavior, а opaque, parallelRendering и preferredSizeReportingStrategy пока экспериментальные
👉 Compose-сцена создаётся, когда view попадает в Window, и уничтожается, когда её оттуда убирают
👉 UIViewController в иерархии всё равно нужен, просто вручную привязывать к нему Compose больше не надо

⚠️ Важно: это alpha, нужны Kotlin 2.4.20 и compileSdk 37.1 для Android. В прод пока рано.

🐱 Release notes CMP 1.13.0-alpha02

#Compose #CMP #iOS
  • 👍 4
More from @compose_broadcast
  1. Oct 8, 2026⚙️ Jetpack Compose 1.13 вышел в beta, можно пробовать Google выпустила Compose 1.13.0-beta…
  2. Oct 2, 2026Post #987
  3. Oct 1, 2026🤖 Instagram Direct (мессенджер внутри приложения) переписали на Compose и результаты ВАУ…
  4. Oct 1, 2026⚡️⚡️Когда API недостаточно: хардкорные доклады на Mobius Mobius — профильная конференция п…
  5. Sep 29, 2026🤖 Wear Compose 1.7.0: жесты одной рукой и айтемы, которые уезжают за край, а не фейдятся…
  6. Sep 24, 2026⚙️ Эффект размытия и стекла для Compose Multiplaftom - вышел Haze 2.0 Modifier.hazeGlass(…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →