Maintaining a cross-platform library means constantly refining performance to ensure a smooth user experience, especially when dealing with high-resolution media. The latest release of ImagePickerKMP (v1.0.43) brings critical optimizations for iOS memory management and improved file path handling on Android.
As always, you can find the full documentation at https://imagepickerkmp.dev/.
iOS: Smart Memory & Speed Optimization
One of the biggest challenges in mobile development is handling high-resolution photos (like those from 48MP sensors) without triggering memory spikes. In v1.0.43, we've introduced the ImageOptimizer for iOS.
What's new in the iOS Gallery:
- Adaptive Resizing: The library now automatically applies default resizing and adaptive compression to prevent memory crashes when picking large images.
-
Improved Gallery Speed: By optimizing how
UIImagedata is processed before being returned to the KMP layer, the "pick-to-preview" time has been significantly reduced. - Automatic Dimension Scaling: Even if no specific compression level is set, the library now ensures that images are scaled to a manageable maximum dimension, preserving quality while protecting the app's memory footprint.
Android: Robust Absolute Path Handling
On the Android side, we've refined how PhotoResult.absolutePath works to handle more edge cases, especially when dealing with cropped images or raw file URIs.
Key Android Improvements:
-
Unified Path Resolution: The logic now seamlessly handles
content://,file://, and raw absolute paths (starting with/). - Zero-Copy for Local Files: If a file is already on the disk (like a cropped image in the cache directory), the library now returns the path directly instead of performing unnecessary copy operations.
- Better Exception Handling: Improved error messages when a file cannot be resolved, making debugging much easier for developers.
Why Update to v1.0.43?
If your app targets iOS users with high-end cameras or if you rely heavily on direct file path manipulation on Android, this update is essential. It ensures that your KMP application remains stable and performant across the entire device spectrum.
Installation
Update your dependency in build.gradle.kts:
implementation("io.github.ismoy:imagepickerkmp:1.0.43")
Conclusion
Performance is a feature. With v1.0.43, ImagePickerKMP continues to bridge the gap between platform-specific power and cross-platform simplicity.
For more details on the latest API changes, visit https://imagepickerkmp.dev/.
References
[1]: ImagePickerKMP Official Documentation
[2]: GitHub Release 1.0.43
[3]: iOS Performance Optimization Guide
[4]: Android File Handling Documentation
Top comments (0)