TGViewer
Android Mobile | YeaHub Android Mobile | YeaHub @yeahub_android_mobile · 430 subscribers
Post #291 96
#полезное
🛞 Как встроить SwiftUI в Compose Multiplatform

Обычно я стараюсь избегать использования кастомных CompositionLocal в Compose, так как это добавляет неявные зависимости, и если не предоставить значение, приложение упадёт в рантайме. Я придерживаюсь подхода, в котором CompositionLocal можно использовать только тогда, когда значение действительно может быть полезно любой Composable-функции в дереве. Яркий пример — тема приложения.

И при работе с Compose Multiplatform я подсмотрел классное применение этого механизма для встраивания SwiftUI вьюшек в Composable функции.

1⃣ В сорсете iosMain создаём CompositionLocal и интерфейс NativeViewFactory.
2⃣ На стороне Swift реализуем этот интерфейс и передаём его в функцию создания UIViewController.
3⃣ В этой функции пробрасываем фабрику через CompositionLocalProvider.
4⃣ Далее в любом месте поддерева в iosMain можно получить доступ к этой нативной вьюшке.

Посмотреть пример приложения для сканирования QR-кодов с этим подходом можно в репозитории, который я подготовил для лекции в онлайн-университете.

👉Новости 👉База вопросов
  • 👍 1
More from @yeahub_android_mobile
  1. Oct 9, 2026#podcast #всё 📚 TeachMeSkills IT-школа Это серия выпусков от "TeachMeSkills Школа програм…
  2. Oct 8, 2026#Собес #docker_volumes #persistent_data #storage 🤔 Какова цель томов в Docker? 💬 Кратко:…
  3. Oct 7, 2026#Собес #viewholder #recycling #oncreateviewholder 🤔 Как RecyclerView рендерит элементы? �…
  4. Oct 5, 2026#Собес #service_main_thread #background #anr 🤔 В каком потоке по умолчанию работает Servi…
  5. Oct 2, 2026#tool #графы 📚 Терялся в собственном коде? Встречай Gitvizz, инструмент, который мгновенн…
  6. Oct 1, 2026#Собес #UNIQUE_constraint #database_index #SQL 🤔 Использует ли UNIQUE constraint индексы?…
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 →