Skip to content

0.16.0

Latest

Choose a tag to compare

@vinceglb vinceglb released this 07 Sep 23:28
e8876bc

FileKit 0.16 expands native Linux dialog support, adds recursive directory deletion, and improves iOS picker reliability.

This release brings file, directory, and save dialogs to Kotlin/Native Linux through the XDG Desktop Portal, fixes camera presentation and photo-picker filename collisions on iOS, and updates FileKit for Compose Multiplatform 1.12.

✨ What's New

  • Add file picker, directory picker, file saver, and default-application opening support for Kotlin/Native Linux (linuxX64, linuxArm64) by @Enaium in #636
  • Add opt-in recursive deletion of non-empty directories with PlatformFile.delete(recursively = true) by @anggrayudi in #641

✅ Improvements

  • Handle Linux portal cancellation and service disappearance, and clean up default-application opener processes by @Enaium in #636

🐛 Bug Fixes

  • Present the iOS camera from a dedicated window in the active scene by default, fixing camera presentation beneath Compose dialogs and broken touch handling after dismissal by @PierreVieira in #639
  • Prevent iOS PHPicker multi-select copy collisions when selected assets share a filename, while preserving their original filenames by @cgpllx in #646
  • Fix Compose Desktop release shrinker failures and potential runtime linkage errors caused by the updated Skiko Image.encodeToData signature in Compose 1.12 by @vinceglb in #654
  • Safely remove dangling symbolic links and Windows directory junctions without deleting their targets by @anggrayudi in #641

📝 Documentation

  • Document Kotlin/Native Linux dialog support, D-Bus dependencies, and consumer linker setup by @Enaium in #636
  • Document recursive directory deletion and symbolic-link behavior by @anggrayudi in #641

⬆️ Dependency Updates

  • Gradle 9.6.19.7.1
  • Kotlin 2.4.102.4.20
  • Android Gradle Plugin 9.3.19.4.0
  • Android compile SDK 3637
  • Compose Multiplatform 1.11.11.12.0
  • Compose Material 3 1.11.0-alpha071.12.0-alpha03
  • AndroidX Lifecycle 2.10.02.11.0
  • Coil 3.5.03.6.2
  • Nucleus 2.3.22.5.15

⚠️ Migration Notes

  • Android compile SDK is now 37; target SDK remains 36. Update your Android build configuration accordingly.
  • Recursive deletion is opt-in: use delete(recursively = true) to remove non-empty filesystem directories. The default remains recursively = false; Android document URIs continue to delegate deletion to their document provider.
  • Kotlin/Native Linux dialogs require a running XDG Desktop Portal with a file chooser backend and the libdbus-1 runtime library. Building a consuming application requires the target architecture's D-Bus development libraries and may require an explicit linker search path; see the Linux setup documentation.
  • iOS camera calls without an explicit presenter now use a FileKit-managed window. Apps supplying FileKitOpenCameraSettings(presenter = ...) retain their existing presentation behavior.

🙏 Contributors

Thanks a lot to @Enaium, @anggrayudi, @PierreVieira, and @cgpllx for their contributions to this release ❤️

Full Changelog: 0.15.0...0.16.0