device_io 2.0.0-dev.0 copy "device_io: ^2.0.0-dev.0" to clipboard
device_io: ^2.0.0-dev.0 copied to clipboard

Cross-platform file picking, saving, sharing, and opening for Flutter. Image and file pickers, save dialogs, OS share sheet, open-with — one API on mobile, desktop, and web.

Changelog — prerelease lane #

2.0.0-dev.0 #

  • Breaking: the result family is renamed — PlatformResultOutcome, PlatformSuccessSuccess, PlatformCancelledCancelled, PlatformUnsupportedUnsupported, PlatformFailureFailed, PlatformPermissionDeniedPermissionDenied. Migration is a mechanical find-and-replace of those six names; fields, semantics, and the sealed hierarchy (PermissionDenied still subtypes Failed) are unchanged.
  • Added AssetPicker.pickDirectory — a directory chooser on the five native platforms; Unsupported on web.
  • Added FileSaver.saveInto — silent save into a caller-chosen directory (pairs with pickDirectory for pick-once-save-many), with the same name-sanitizing and no-clobber guarantees as save; Unsupported on web.
  • Added FileOpener.open(SaveLocation) — opens what a save returned without destructuring: SavedAtPath opens at its path, SavedByBrowser returns Unsupported.
Commits since v1.0.0-dev.0 (8)
  • 058fad9 release: v2.0.0-dev.0
  • f031eae feat!: Outcome result family; directory pair; location-aware open; test-suite restructure (#24)
  • b0162e4 docs: changelog lanes carry the full standard block and the versions marker
  • 5a21999 docs: novice-first description and the stable 1.0.0 changelog entry
  • 787caf5 ci: debug-ssh adopts the shared resolve-inputs pattern (#23)
  • 6b56707 ci: align auto-close mention + upgrade-check job name with the template (#22)
  • c547f2f ci: expose the runner input on the release workflow (#21)
  • 24caf5b chore: shorten pubspec description to pana's 60-180 char window (#20)

1.0.0-dev.0 #

First prerelease — cross-platform device IO for Flutter: pick, share, save, open. One API on iOS, Android, macOS, Windows, Linux, and web.

Commits since initial (61)
  • e17fd02 release: v1.0.0-dev.0
  • 533865d chore: drop publish_to none — device_io publishes to pub.dev now (#19)
  • 811c3e3 ci: bump whuppi/ci to v2.0.4 (#18)
  • bd3e95e ci: bump whuppi/ci to v2.0.3 (#17)
  • 1cfb0b5 ci: bump whuppi/ci to v2.0.2 (#16)
  • 5ba16c5 ci: bump whuppi/ci to v2.0.1 (#15)
  • 52002a0 docs: banner + README polish (#14)
  • eb146aa build: adopt whuppi/ci v2.0.0 — dual-compiler web gate (#13)
  • 3504b28 chore: adopt whuppi/ci v1.0.8 (#12)
  • d35c58f build: adopt the shared platforms gate + shell lint, radar-track pana (#11)
  • 54ce174 ci: align dependabot + PR template with the workspace shape (#10)
  • c5aaf22 refactor(api)!: role-noun capabilities, sync constructor, sealed SaveLocation (#9)
  • f154a1b ci: bump whuppi/ci shared refs to v1.0.5 (#5)
  • 4df6595 fix(web-tests): run web suites under dart test to fix the Windows CI hang (#8)
  • 8153027 fix: restore file_picker 12-beta — the #6 downgrade broke Android (AGP 9+) (#7)
  • d739f29 fix: Windows picker harness paths; downgrade deps off beta; add [P] portability jobs (#6)
  • 3d81316 chore(deps): bump share_plus_platform_interface, share_plus and file_picker (#1)
  • f667876 chore: add slopfairy config, drop blind-copied MIGRATION.md (#4)
  • 332cc3f chore: stamp example/.gitignore to the canonical template (#3)
  • 423fae1 ci: bump whuppi/ci to v1.0.1, deploy secrets tooling, team-slug auto-close (#2)
  • 554c20f fix: hyphenate the CODEOWNERS team slug (GitHub slugifies underscores)
  • b7c7c1e chore: re-stamp the commit-msg hook (generic examples)
  • 0c82f96 ci: shared matrix-filter, upgrade-sdk label, wildcard whuppi-ci dependabot group
  • 932f767 ci: pass zizmor auditor — ref-pin config, cooldown, documented permissions
  • 970bcaf docs: record the shared-CI wiring in roadmap, updating, changelog
  • 450c7a1 ci: wire device_io onto the whuppi/ci shared workflows
  • f629a5e fix: add the commit-types list the commit-msg hook reads
  • 1578431 docs: strip the residual AI-writing tells from the README
  • 37f4687 docs: solidify README to the reference standard — collapsibles, shape, tone
  • e4be434 chore: stamp AGENTS.md from the workspace stamper; drop premature 'in CI'
  • c6a5ec9 docs: README macOS Install — add the Downloads entitlement
  • ed56714 docs: macOS Downloads entitlement — a real requirement the smoke surfaced
  • 741d04e test(example): journey matrix + integration smoke — the pdf_manipulator layer
  • 59835a9 docs: test architecture as-built — mirror + real-Chrome runners
  • 68df439 test: web adapter suites in real Chrome — instrumented JS surface
  • d00a98d test: picker adapter suite — option passthrough, permission mapping, seam
  • f406c7f test: native adapter suites — on-disk contracts, share requests, opener protocol
  • 65cd653 test: pure-logic suites — result physics, MIME, filesystem safety, laziness
  • 307c9ea feat(test): suite foundation — harness, declared-truth fixtures, guards
  • bc79ad9 docs: README rewritten to the reference standard
  • ef6c9ed style(example): align to the reference example standard
  • 653a8b4 docs: silent public mobile saves → WONT_DO (for now), with the real reason
  • 8d0a40f docs: roadmap flips + changelog/migration/architecture sync for the capability batch
  • 7a73757 feat(example): cover the new surface — video/media picks, multi-file share, saveAs mimeType
  • f16a945 feat: lazy web file picks via the File System Access picker
  • b467cbd feat: saveAs accepts mimeType — API consistency with the other save methods
  • 1d0044d feat: shareFiles (multi-file sheets) + sharePositionOrigin everywhere
  • e35cd6b feat: example app — all six platforms, one exhaustive result renderer
  • 6c4f4f7 feat: pickVideo, captureVideo, pickMedia, pickMultipleMedia
  • becbe1b docs: full documentation + community-file set, pdf_manipulator pattern
  • 89acbfe feat: Makefile + pana platform gate — which immediately caught real regressions
  • ec5dd92 style: pdf_manipulator conventions — pubspec pattern, final classes, @immutable, doc examples
  • dd57c8d chore: drop cross_file — orphaned when the XFile helper was inlined
  • 3fddcf4 chore!: file_picker 8→11, share_plus 11→12, test dev dep to SDK ceiling
  • 70dd847 fix: audit every Unsupported claim — two were lies, now fixed
  • b960f3b refactor: kill the picker's fake platform matrix + five smaller smells
  • 741243e refactor: exact permission-code allowlist, atomic staging, unified mime inference
  • 0c08adb fix!: deep-audit pass — filesystem safety, error fidelity, lazy web picks, saveAs
  • aa1105c feat!: foundational API reshape — typed outcomes, cross-platform opener, plurals, stream share
  • 9e80303 fix: strict lints, doc gaps, share delete race, download clobbering, picker null path
  • 07207bb chore: initial import of device_io from the whuppi workspace
1
likes
0
points
251
downloads

Publisher

verified publisherwhuppi.com

Weekly Downloads

Cross-platform file picking, saving, sharing, and opening for Flutter. Image and file pickers, save dialogs, OS share sheet, open-with — one API on mobile, desktop, and web.

Repository (GitHub)
View/report issues

Topics

#file-picker #share #download #file-io #cross-platform

License

unknown (license)

Dependencies

file_picker, flutter, image_picker, meta, mime, open_filex, path_provider, share_plus, share_plus_platform_interface, web

More

Packages that depend on device_io