Vandelay is a Swift-based iOS importer/exporter. It supports
Codable, strings and data and comes with built-in support for exporting and importing strings and data to and from a bunch of data sources.
Swift Package Manager
The easiest way to add Vandelay to your project is to use Swift Package Manager:
.package(url: "firstname.lastname@example.org:danielsaidi/Vandelay.git" ...)
Vandelay to your app without a dependency manager, clone this repository, add
Vandelay.xcodeproj to your project and
Vandelay.framework as an embedded app binary and target dependency.
exporters to let you export strings, data and
Vandelay comes with the following built-in exporters:
dataas email attachments
datato local files
dataas message attachments
stringsto the pasteboard
You can extend Vandelay with custom exporters as well.
string exporters if you want platform-agnostic, readable exports. Use a
data exporters when you only have
Data or when a type can't be serialized.
importers to let you import strings, data and
Vandelay comes with the following built-in importers:
datafrom local files
stringsfrom the pasteboard
datafrom custom urls
You can extend Vandelay with custom importers as well.
When importing, the same goes as when exporting: data is more powerful, but strings are more universal.
Importing external files
You can use the existing importers to import data by sharing external files to Vandelay, e.g. by tapping an e-mail attachment or sharing a file to the app.
To import files, your app must be correctly configured to handle the file type. You have to register
Document types and
Exported Type UTIs and implement the correct functions in
AppDelegate (iOS 12 and earlier) or
SceneDelegate (iOS 13+). Once the functions are triggered, you can use a
UrlImporter to import the tapped file.
Check out the demo app for an example on how this can be done.
QR Code support
You can add QR code scanning support with VandelayQR. It lets you import data by scanning QR codes.
You can add Dropbox support with VandelayDropbox. It lets you export and import data to/from Dropbox.
This repo contains a demo app that lets you export/import todo items (strings) and photos (data). To run the demo app, open and run the
The demo app registers a custom file type
.vdl which it uses to export and import data. Have a loot at its
SceneDelegate to see how it handles imports.
I hope you like this library. Feel free to reach out if you have questions or if you want to contribute in any way:
Vandelay is available under the MIT license. See the LICENSE file for more info.
Help us keep the lights on
0.9.1 - Oct 9, 2019
This version makes a url calculation function public.
0.9.0 - Oct 9, 2019
This version adds support for Swift 5.1 and Swift Package Manager.
0.8.1 - Nov 12, 2018
This version moves stuff around between Vandelay and its add-ons. This means that I have had some trial and error getting it to work, but the
0.8.1 version works with both CocoaPods and Carthage. I version bump
0.8.1 as well.
The add-ons no longer have their own demo projects, since this meant I had to duplicate code en-masse. I moved the demo code to this repo and disabled it for now, since I could not get Carthage to ignore building the example app, which had a bunch of private dependencies. I will add it as a GitHub issue for future fixing.