TGViewer
Compose Broadcast Compose Broadcast @compose_broadcast · 5.9K subscribers
Post #937 6.01K
🐱 Kamera 1.0: стабильная камера для Compose Multiplatform

Камера в CMP это всегда возня с expect/actual и тремя платформенными бэкендами. Kamera (бывшая CameraK) закрывает это одним Compose-first слоем: один @Composable-вход, под капотом CameraX на Android, AVFoundation на iOS и JavaCV на Desktop.

API реактивный, через состояние. Заводишь rememberCameraKState(), получаешь StateFlow<CameraKState> c ветками Initializing, Ready(controller, uiState) и Error, и рисуешь превью, когда камера готова:

val cameraState by rememberCameraKState(
config = CameraConfiguration(
cameraLens = CameraLens.BACK,
aspectRatio = AspectRatio.RATIO_16_9,
),
)

when (val state = cameraState) {
is CameraKState.Ready -> CameraPreviewView(state.controller)
is CameraKState.Initializing -> CircularProgressIndicator()
is CameraKState.Error -> Text(state.message)
}

Из коробки: зум, вспышка, фонарь, переключение линз (ultra-wide/telephoto на iOS), takePictureToFile() для прямого сохранения в файл. Сверху плагины, которые сами активируются на Ready: сохранение фото, QR/штрихкоды, OCR, запись видео с pause/resume и лимитом длительности, анализ кадров через analyzer.

Главное в 1.0: починили то, что мешало брать в прод. На iOS фронталка отдавала тёмные кадры из-за бага в MemoryManager, хотя превью выглядело нормально. На Android фото оказывалось кропом вместо настроенного аспекта, теперь что видишь, то и снимаешь. Плюс вычистили утечки корутин в плагинах при ре-ините камеры.

‼️ Это молодая 1.0 и по сути проект одного мейнтейнера под Apache-2.0. Блокеры выше жили буквально до вчера, так что 1.0 это точка, где их закрыли, а не годы шлифовки. Desktop тянет JavaCV с нативными либами, это тяжело. Но если нужна камера в CMP без трёх реализаций руками, смотреть стоит.

🐱 GitHub

#Compose #ComposeMultiplatform #KMP
More from @compose_broadcast
  1. Sep 23, 2026⚙️ Вышел Compose Multiplatform 1.2.1, который принес фиксы #Compose #CMP #KMP
  2. Sep 17, 2026В Compose 1.13 появится полноценный Blur для контента через Modifier #Compose
  3. Sep 14, 2026⚙️ Вышел Compose HotSwan 2.0.0 - Hot Reload для Android, iOS и Desktop. В новой версии про…
  4. Sep 14, 2026⚙️ Compose Web можно выложить как офлайн-приложение В Issue CMP-10781 в официальном баг-тр…
  5. Sep 9, 2026🚀 Вышла новая альфа-версия адаптации CMP для ОС Аврора (v0.0.5) Прошёл квартал — а значит…
  6. Sep 7, 2026🐱 compose-recomposition-highlighter - отслеживание статистики рекомпозиций в Android След…
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 →