This content originally appeared on DEV Community and was authored by Ismoy Belizaire
đ ImagePickerKMP v1.0.21 â A Fresh New Look for iOS & Android! đ
Hey there, fellow Kotlin Multiplatform enthusiasts!
Iâm thrilled to announce the latest release of ImagePickerKMP â the crossâplatform image picker & camera library that lets you pull photos from the gallery or capture new ones with a single line of code. đ
Release:
- Version: v1.0.21
- Tag: v1.0.21
- Date: 2025â08â11
- Repo: ImagePickerKMP on GitHub
With this update, weâre adding custom bottom sheet support for iOS and customizable confirmation UI for Android. Letâs dive into the details!
đŻ Whatâs New in v1.0.21?
1ď¸âŁ Custom Bottom Sheet on iOS
Previously, the iOS picker presented the standard UIImagePickerController
UI. While functional, it left designers with limited styling options. This release introduces a CustomBottomSheet
component that can be fully themed, animated, and integrated into your Compose UI.
ImagePicker(
modifier = Modifier.fillMaxSize(),
platform = Platform.IOS,
// Custom bottom sheet
bottomSheet = { image ->
CustomBottomSheet(
image = image,
onDismiss = { /* ... */ },
style = BottomSheetStyle(
backgroundColor = Color.White,
cornerRadius = 16.dp
)
)
}
)
Key benefits:
- đ¨ Full control over colors, shapes, and shadows.
- đ˛ Seamless integration with your existing Compose layout.
- đ Consistent behavior across iOS versions.
2ď¸âŁ Customizable Confirmation View on Android
On Android, after a user selects an image, the picker used to show a default âConfirmâ dialog. We now provide a ConfirmView
composable that can be swapped out for any design.
ImagePicker(
modifier = Modifier.fillMaxWidth(),
platform = Platform.Android,
confirmView = { image ->
MyCustomConfirm(
image = image,
onConfirm = { /* Handle confirm */ },
onCancel = { /* Handle cancel */ }
)
}
)
What you can change:
- Button styles, text, icons.
- Layout â grid, carousel, or singleâimage preview.
- Animation â fade, slide, or custom physics.
These changes empower designers to keep the UI in line with their brand while still leveraging the power of Kotlin Multiplatform.
đ§ Improvements & Fixes
Area | Issue | Fix |
---|---|---|
iOS Picker | The picker would crash on iOS 16 if the user denied camera permission. | Added robust permission handling and graceful fallback. |
Android Picker | Confirmation dialog flickered on orientation change. | Implemented stateâsaving across configuration changes. |
Performance | Minor lag when loading highâresolution images. | Optimized bitmap decoding with ImageDecoder and lazy loading. |
Documentation |
bottomSheet API lacked examples. |
Updated README with usage snippets and style reference. |
Dependency Management | Outdated Compose Multiplatform version (1.5.0). | Bumped to 1.5.2 and updated compiler flags. |
Tip: If youâre still on Kotlin 1.9.10 or Compose 1.5.0, consider upgrading to benefit from the performance tweaks and bug fixes.
đŚ How to Update
1ď¸âŁ Add the dependency
If youâre already using ImagePickerKMP, simply bump the version in your build.gradle.kts
(or build.gradle
if youâre using Groovy).
dependencies {
implementation("com.github.ismoy:ImagePickerKMP:1.0.21")
}
2ď¸âŁ Sync & Rebuild
Run ./gradlew clean build
or use your IDEâs Gradle sync.
3ď¸âŁ Migrate Custom UI
If youâre using the new custom bottom sheet or confirmation view, replace the old API calls with the new ones shown above.
4ď¸âŁ Test
Run your app on both Android and iOS simulators/devices to confirm the UI behaves as expected.
Note: No breaking changes in the public API, so your existing code should compile without modification unless you decide to adopt the new custom UI components.
đ A Huge Thank You!
This release wouldnât have been possible without the dedication of the community. A special shoutâout to:
- @ismoy â for spearheading the project and keeping the roadmap steady.
- All contributors â for reviewing PRs, reporting bugs, and suggesting UI tweaks.
Your feedback keeps this library robust and userâfriendly. Keep the issues coming, and letâs keep building great crossâplatform code together!
đ Try It Out Today
- Download the latest release from the Releases page.
-
Explore the new demo app in the
demo
folder â it now showcases the custom bottom sheet on iOS and the custom confirmation view on Android. - Share your experience on Twitter or LinkedIn using #ImagePickerKMP and let us know how youâre styling your picker!
Feel free to fork the repo, experiment with the new UI components, and submit your own pull requests. The library is open source, and every contribution helps make crossâplatform development smoother for everyone.
Quick Recap
Feature | Platform | How to Use |
---|---|---|
Custom Bottom Sheet | iOS | bottomSheet = { image -> CustomBottomSheet(...) } |
Custom Confirmation View | Android | confirmView = { image -> MyCustomConfirm(...) } |
Permission Handling | Both | Automatic â no extra code needed |
Performance Optimizations | Both | Transparent â just upgrade! |
Got questions? Drop an issue on GitHub or ping me on Discord (link in the README).
Letâs keep the momentum going and continue to push the boundaries of what Kotlin Multiplatform can do!
Happy coding! đ§âđťâ¨
Repository: https://github.com/ismoy/ImagePickerKMP
Release Tag: https://github.com/ismoy/ImagePickerKMP/releases/tag/v1.0.21
Stars: â 38 | Forks: đ´ 4 | Contributors: đĽ 1
Keep exploring. Keep sharing. Keep building.
This content originally appeared on DEV Community and was authored by Ismoy Belizaire

Ismoy Belizaire | Sciencx (2025-08-12T00:12:18+00:00) đŻ Whatâs New in v1.0.21?. Retrieved from https://www.scien.cx/2025/08/12/%f0%9f%8e%af-whats-new-in-v1-0-21/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.