Releases: vinceglb/FileKit
0.12.0
✨ What's new
- Add
@Serializationsupport for PlatformFile by @vinceglb in #410 - Basic MIME type support across pickers by @FegzDev in #367
- Add
PlatformFile.createdAt()andPlatformFile.lastModified()accessors by @vinceglb in #407
✅ Improvements
- Use Dispatchers.IO when invoking the macOS picker by @egorikftp in #389
- Switch the default iOS file contentType handling by @Lavmee in #383
- Improve Android bookmarking workflows, including copyTo and atomicMove, by @vinceglb in #404 and #408
🐛 Bug fixes
- Fix compressImage PNG transparency on JVM by @egorikftp in #390
- Prevent iOS crash when PhPickerDelegate fires multiple times by @vinceglb in #403
- Ensure file sources are closed after use by @vinceglb in #405
- Preserve iOS gallery selection order by @Dwite in #409
- Fix CSV files picker on Android by @vinceglb in #406
📝 Documentation updates
⬆️ Dependencies updates
- Kotlin 2.2.20
- Compose Multiplatform 1.9.0
- JNA 5.18.1
🙏 New Contributors
A big thank you to all the contributors ❤️
- @egorikftp made their first contribution in #389
- @Lavmee made their first contribution in #383
- @FegzDev made their first contribution in #367
- @Dwite made their first contribution in #409
Full Changelog: 0.11.0...0.12.0
0.11.0
✨ What's new
- Open PlatformFile in the default application by @N7ghtm4r3 in #352 - Documentation
- Support camera facing in camera picker by @Tommyten in #359 - Documentation
- Customize
FileKit.filesDirandFileKit.cacheDirdirectories for the JVM target by @vinceglb in #379 - Documentation
✅ Improvements
- Update strings in WindowsFilePicker by @vinceglb in #364
- Handle absolute path in PlatformFile constructor on apple targets by @vinceglb in #375
- Trigger Google Play services to install the backported photo picker module by @vinceglb in #376
🐛 Bug fixes
- Fix Android file truncation when writing shorter content by @vinceglb in #365
- Fix Android PlatformFile.bookmarkData for files by @vinceglb in #366
📝 Documentation updates
- Add "Who's Using FileKit" section showcasing community projects by @vinceglb in #381
- Update FileProvider documentation with authority parameter usage by @vinceglb in #377
- Add ProGuard configuration to JVM setup documentation by @vinceglb in #378
⬆️ Dependencies updates
- Kotlin 2.2.10
🙏 New Contributors
A big thank you to all the contributors ❤️
- @N7ghtm4r3 made their first contribution in #352
- @Tommyten made their first contribution in #359
Full Changelog: 0.10.0...0.11.0
0.10.0
🎉 1k stars on Github
After 1 year and a half, FileKit has received its first 1000 stars on Github!
FileKit is what it is today thanks to the amazing community. I'm so proud of what we've achieved together! I want to thank all for your contributions, encouragement, and support during this journey! 💖
🥂 Community featuring
Let's celebrate this achievement together!
In the next few weeks, I'll be adding a new section to the readme to showcase the amazing projects of the community using FileKit.
The main goals are:
- Showcasing the projects of the community using FileKit
- Building trust and credibility for the library for newcomers
- Giving real-world examples of how developers use FileKit
If you are building something with FileKit, open source or not, and want to be featured on the readme, please share your project with us by commenting on this discussion!
Also, if you want to share a project privately without being featured on the readme, you can send me an email.
Thank you again for using the library and making it possible! ❤️
✨ What's new
- Add
SingleWithStateandMultipleWithStatemodes to monitor file picker import state by @kihaki in #300 - Documentation - Bookmark files and folder for persistent access by @vinceglb in #295 - Documentation
- Use freedesktop basedir / userdir on JVM linux by @recke96 in #301
- Add entry for all supported files on XDG by @Martmists-GH in #312
- Update openCameraPicker to accept destinationFile parameter for saving images by @vinceglb in #293
- Support passing Android Uri to PlatformFile(path: String) by @vinceglb in #324
- Add multi-file sharing support for Android and iOS by @sittisak-kij in #340
✅ Improvements
- Allow transitive dependency of Coil in filekit-coil by @vinceglb in #326
- Remove suspend from PlatformFile.createDirectories() by @vinceglb in #291
- Create a databases directory if it does not exist on Apple target by @vinceglb in #290
- Replace rootViewController by topMostViewController on iOS by @vinceglb in #338
🐛 Bug fixes
- Fix shareFile to use file URL by @vinceglb in #325
- Fix readBytes and readString methods to ensure proper resource management by @vinceglb in #339
📝 Documentation updates
- Set application appearance to system default on macOS by @vinceglb in #307
- Update deprecation message for openFileSaver function by @vinceglb in #308
- Add Code of Conduct by @vinceglb in #341
⬆️ Dependencies updates
- Kotlin 2.2.0
- kotlinx-io 0.8.0
- Compose Multiplatform 1.8.2
- Coil 3.3.0
🙏 New Contributors
A big thank you to all the contributors ❤️
- @recke96 made their first contribution in #301
- @Martmists-GH made their first contribution in #312
- @kihaki made their first contribution in #300
- @sittisak-kij made their first contribution in #340
Full Changelog: 0.10.0-beta04...0.10.0
0.10.0-beta04
✨ What's new
- Add image orientation correction based on EXIF data in PlatformFile.toImageBitmap() on Android by @vinceglb in #266
🐛 Bug fixes
- Fix: handle nullable file picker results with AWTFilePicker by @zacharee in #260
- Fix openFileSaver on iOS when suggestedName contains "/" by @mauriziofaleo in #262
- Fix PlatformFile equality on apple by @vinceglb in #263
- Fix incorrect NSURL from PlatformFile.list() paths on Apple targets by @vinceglb in #264
- Fix Android directory picker returned Uri by @vinceglb in #265
⬆️ Dependency updates
- Compose Multiplatform 1.8.0
- Kotlin 2.1.21-RC2
- Coil 3.2.0-rc02
- AGP 8.10.0
🙏 New Contributors
A big thank you to all the contributors ❤️
- @mauriziofaleo made their first contribution in #262
Full Changelog: 0.10.0-beta03...0.10.0-beta04
0.10.0-beta03
✨ What's new
- Improve Coil integration by @vinceglb and @lazarusmugo in #255 - Documentation
- Manually init FileKit Core by @vinceglb in #259 - Documentation
🐛 Bug fixes
- Fix
PlatformFile.toImageBitmap()on Android when the PlatformFile is an URI by @vinceglb in #254 - Fix file saver on Windows when no extension provided by @vinceglb in #258
⬆️ Dependency updates
- Bump androidx.exifinterface:exifinterface from 1.4.0 to 1.4.1
🙏 New Contributors
A big thank you to all the contributors ❤️
- @lazarusmugo made their first contribution in #249
Full Changelog: 0.10.0-beta02...0.10.0-beta03
0.10.0-beta02
✨ What's new
- Open the share file dialog from a PlatformFile by @jmseb3 in #210 - Documentation link
- Introduce Scoped Resource Access to facilitate accessing files information in iOS and macOS by @vinceglb in #241 - Documentation link
- Add ImageBitmap utils by @vinceglb in #233 - Documentation link
- Nullable extension parameter in openFileSaver() by @vinceglb in #242
🐛 Bug fixes
- Fix the iOS file saver feature by @vinceglb in #229
- Fix: fall back to single
filevalue if multifilesvalue is empty in AWT and Swing by @zacharee in #235 - Improve FileKit Core stability on Android by @vinceglb in #243
⬆️ Dependency updates
- Bump kotlin from 2.1.10 to 2.1.20
- Bump jna from 5.16.0 to 5.17.0
- Bump dbus-java from 5.1.0 to 5.1.1
- Bump kotlinx-coroutines from 1.10.1 to 1.10.2
⚗️ New File Explorer Sample
This new sample demonstrates how to use FileKit to reproduce a minimal file explorer in Kotlin. It shows how to get a list of files, all their related information, and perform some basic operations even on iOS thanks to the new security scope methods. It targets Android, iOS and JVM.
🙏 New Contributors
A big thank you to all the contributors ❤️
Full Changelog: 0.10.0-beta01...0.10.0-beta02
0.10.0-beta01
🎉 FileKit v0.10 is now available in beta!
FileKit v0.10 is a full rewrite of the library. It focuses on improving the developer experience by facilitating tasks related to files operations in Kotlin Multiplatform projects.
- Improve PlatformFile abstraction to make development easier for common files-related tasks
- Support for kotlinx-io to easily read, write, stream files and more from the common code
- Access common paths like application filesDir and cacheDir from common code
- It's now easier than ever to store and read files in the app storage!
- Capture photos with the native camera app and return the associated file on Android and iOS
- Save images to the native gallery on Android and iOS
- Add helpers to display images from PlatformFile on Compose Multiplatform using Coil3
- A brand new website for the documentation
- And more!
🚀 Get started
- Installation documentation guide: https://filekit.mintlify.app/installation
- Migrate from FileKit 0.8 to 0.10: https://filekit.mintlify.app/migrate-to-v0.10
📣 Feedback
I'm really interested in having your feedback about this update.
- What do you think about the new API? Do you find it easier to use?
- What do you think about the new capabilities (like the possibility of reading and writing, streaming, kotlinx-io integration, etc)?
- What do you think about the new documentation?
- If you have any suggestions or comments, please share them!
You can share your thoughts in this discussion: #206.
Thanks a lot ❤️
🙏 New Contributors
As usual, a big thank you to all the contributors!
- @zhufucdev made their first contribution in #171
Full Changelog: 0.8.8...0.10.0-beta01
0.8.8
✅ Improvements
- Bump Kotlin to 2.0.21
- Bump Compose to 1.7.1
🐛 Bug fixes
🙏 New Contributors
A big thank you to all the contributors ❤️
📣 Announcement
The next version of FileKit 0.10 will bring a lot more features and improve the global developer experience:
- Improve PlatformFile abstraction to make development easier for common files-related tasks
- Support for kotlinx-io to easily read, write, stream files and more from the common code
- Access common paths like application
filesDirandcacheDirfrom common code - It's now easier than ever to store and read files in the app storage!
- Capture photos with the native camera app and return the associated file on Android and iOS
- Save images to the native gallery on Android and iOS
- Add helpers to display images from PlatformFile on Compose Multiplatform using Coil3
- A brand new website for the documentation
- And more!
I'm excited to share with you and have your feedback on this new version in the following weeks, so stay tuned!
Full Changelog: 0.8.7...0.8.8
0.8.7
0.8.4
✅ Improvements
- On iOS, run FileKit from any thread, it will safely run on the main thread by @santiwanti in #124
🐛 Bug fixes
- On iOS, fix swiping down the image picker sheet does not cause any events by @vinceglb in #131
- On Linux, fix UTF8 characters in the path when selecting a file crashes by @vinceglb in #130
Full Changelog: 0.8.3...0.8.4

