FileKit 0.14.0 focuses on platform coverage, picker reliability, and clearer dialog APIs.
This release adds native Windows support, web directory picking, iOS picker configuration improvements, Android SAF fixes, and file saver extension filters. It also includes several documentation updates and dependency upgrades to keep FileKit aligned with the latest Kotlin Multiplatform ecosystem.
✨ What's New
- Add Windows native (
mingwX64) target for FileKit Core and Dialogs by @kdroidFilter in #563 - Add directory picker support to web and WASM targets by @timo-drick in #554
- Add support for
PlatformFile.lastModified()on web targets by @timo-drick in #546 - Add iOS asset representation mode setting for PhotoKit picker results by @vinceglb in #576
- Add allowed extensions to file saver dialogs by @vinceglb in #578
✅ Improvements
- Fix Android
file://PlatformFileexistence checks by @vinceglb in #521 - Preserve photo-picker fallback extension by @vinceglb in #533
- Preserve iOS picker cancel semantics and expose picker failures more clearly by @vinceglb in #536
- Add exception details for bookmark failure by @AnsifDev in #570
- Fix Android SAF child directory handling by @vinceglb in #574
- Capture stable iOS presenters for FileKit dialogs by @vinceglb in #577
📝 Documentation
- Document dialog title in dialog settings by @vinceglb in #522
- Document Linux FileKit Dialogs ProGuard rules by @vinceglb in #534
- Update file picker docs for title move by @vinceglb in #568
- Add iOS picker race workaround docs by @vinceglb in #575
⬆️ Dependency Updates
- Kotlin
2.3.21 - Compose Multiplatform
1.10.3 - Android Gradle Plugin
9.2.0 - Gradle
9.4.1 - Android compile/target SDK
37 - AndroidX Activity
1.13.0 - AndroidX Lifecycle
2.10.0 - kotlinx-serialization
1.11.0 - kotlinx-browser
0.5.0
⚠️ Migration Notes
openFileSaver(..., extension = "txt")is deprecated. UsedefaultExtension = "txt"for the suggested extension, andallowedExtensions = setOf("txt", "md")when the native dialog should offer extension filters.- On iOS, use
FileKitAssetRepresentationMode.Compatiblewhen you need picker results that are easier to decode with Skia/Compose image APIs. - Web directory picking is based on browser file inputs, so empty directories and real directory metadata are not available from the browser.
New Contributors
Thanks a lot to all the contributors ❤️
- @timo-drick made their first contribution in #546
- @kdroidFilter made their first contribution in #563
- @AnsifDev made their first contribution in #570
Full Changelog: 0.13.0...0.14.0