📸 Barcode-сканер в Compose Multiplatform через expect/actual Composable — 15 июня 2026 г. в 06:30:02.648
📸 Barcode-сканер в Compose Multiplatform через expect/actual Composable https://medium.com/@kmpbits/through-the-lens-barcode-scanning-in-compose-multiplatform-kmp-bits-3d04a107fa97 Автор показывает паттерн, который раньше казался спорным: expect/actual прямо на уровне @Composable. @Composable это просто функция, значит её можно объявить через expect. Контракт в commonMain, реализации в androidMain (CameraX + MLKit через AndroidView) и iosMain (UIKitView с AVCaptureSession). @Composable expect fun BarcodeScanner( onBarcodeDetected: (String) -> Unit, modifier: Modifier = Modifier ) 🔥 Подводные камни: • Не закроешь imageProxy.close() на Android - CameraX блокирует следующий фрейм, сканер молча умирает после первого • metadataObjectTypes на iOS надо ставить после addOutput в сессию - иначе тихо игнорируется • Симулятор iOS не работает - нужен физический девайс 🧠 Сам паттерн универсальный: signature pad, map view, document picker - всё, что раньше заставляло сплитить экраны на Compose+SwiftUI, теперь можно держать в shared Composable. Обсуждаем тут -> https://t.me/famous_md_bot (Tier 3) —————— 💭 Если в проекте до сих пор сплит UI из-за платформенных компонентов - статья даст рабочий шаблон. Telegram | Селеба | Max | YouTube

