Skip to content

0.16.0

Choose a tag to compare

@vinceglb vinceglb released this 07 Sep 23:28
· 105 commits to main since this release
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.1 → 9.7.1
  • Kotlin 2.4.10 → 2.4.20
  • Android Gradle Plugin 9.3.1 → 9.4.0
  • Android compile SDK 36 → 37
  • Compose Multiplatform 1.11.1 → 1.12.0
  • Compose Material 3 1.11.0-alpha07 → 1.12.0-alpha03
  • AndroidX Lifecycle 2.10.0 → 2.11.0
  • Coil 3.5.0 → 3.6.2
  • Nucleus 2.3.2 → 2.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