This is a Kotlin Multiplatform application that provides a movie and TV show browsing experience across Android, iOS, Desktop, and Web platforms. The app fetches data from The Movie Database (TMDB) API and displays content including now playing movies, popular/top-rated/upcoming movies and TV shows, celebrity information, and search functionality. It follows MVVM architecture with Clean Architecture principles, using Koin for dependency injection, Kotlin Coroutines for asynchronous operations, Ktor for networking, and Compose Multiplatform for the UI layer. The application includes features like favorite management with local storage, genre filtering, and detailed views for movies, TV shows, and celebrities.
Camposer is a Kotlin Multiplatform camera library that provides a unified Compose Multiplatform API for camera functionality on Android (via CameraX) and iOS (via AVFoundation). It offers camera preview, photo capture, video recording, flash/torch control, zoom, tap-to-focus, exposure compensation, mirror mode, multi-lens selection, video stabilization, and image analysis (including barcode/QR scanning via the optional code-scanner module). The library is published on Maven Central and includes sample apps demonstrating both Android-only and cross-platform usage. The architecture follows a clean separation of concerns with an internal engine/applier layer: `CameraState` holds reactive state flows for all configurable properties, and platform-specific appliers (`PreviewApplier`, `VideoApplier`, etc.) write changes to the underlying hardware when the state changes. The public API exposes `CameraPreview` composable, `CameraSession` for state/info access, and `CameraController` for capture commands. The codebase is well-structured with expect/actual pattern, version catalogs, ABI validation, and extensive test infrastructure (unit tests, device tests, iOS tests). It is a well-crafted, actively maintained library with high reusability potential.
ImagePickerKMP is a Kotlin Multiplatform library (not a standalone application) that delivers production-grade media picking and barcode scanning capabilities for Android, iOS, JVM desktop, and web/JS/Wasm targets. The photo module (imagepickerkmp-photo) provides camera capture, gallery selection, image cropping, EXIF extraction with GPS redaction, configurable compression (LOW/MEDIUM/HIGH), and permission-request UI, all driven through a Compose Multiplatform API centered on rememberImagePickerKMP(). The scanner module (imagepickerkmp-scanner) provides continuous barcode/QR scanning with auto-zoom, distance warnings, batch mode, phantom-code suppression, and enterprise inactivity overlays, using ML Kit on Android and AVFoundation/Vision on iOS. A shared imagepicker-core module abstracts permissions, filesystem access, URI handling, language detection, and logging across platforms via the Kotlin expect/actual mechanism. The library is distributed as versioned Maven artifacts with a published JS bundle for web integration. Architecturally, the codebase is a modular multi-artifact Gradle project: imagepicker-core (infrastructure), imagepickerkmp-photo, and imagepickerkmp-scanner, with each module enforcing dependency boundaries (the scanner module explicitly prohibits depending on the photo module). Its design leans on config-driven API design (large nested data classes such as ImagePickerKMPConfig and ScannerBehaviorConfig with runtime validation), observable state holders (sealed Idle/Loading/Success/Dismissed/Error states backed by Compose mutableStateOf), and event-driven scanner orchestration. Platform-specific behavior is cleanly isolated through expect/actual: Android uses CameraX, ActivityResultContracts, and ExifInterface; iOS uses UIImagePickerController, PHPicker, PhotosUI, and CoreGraphics; desktop/web use file choosers or documented no-op stubs where camera hardware is unavailable. Localization spans 14 languages via YAML translation files and the i18nkonfig plugin, and CI (GitHub Actions) runs detekt static analysis, Kover coverage verification with a 90% line minimum, unit tests across commonTest/androidUnitTest/iosTest, and publishes coverage to Codecov. Maintenance is active: a recent commit history on the develop branch, one open issue, zero Dependabot alerts, and continuously updated Kotlin 2.x / Compose Multiplatform versions indicate steady upkeep. Known rough edges include intentionally blank PlatformPrewarm files, crop implementation stubs on JS/WASM, a handful of placeholder tests asserting true, duplicated permission-handling logic across photo/scanner modules, and a potentially stale build-and-bundle.sh referencing an old JS build path. Overall, this is a well-crafted, professionally engineered KMP library with genuinely reusable cross-platform abstractions and strong test discipline; it is a solid reference for Kotlin Multiplatform architecture and Compose-based camera/scanning UX.