Creating an iOS file system to please Apple, developers, and customers.
Everyone knows that iOS is horrible in how it handles cross app file transfers. If you've used iOS for a even just a week, maybe even less, you know how horribly frustrating this can be. To truly fix this, we need at least two new APIs introduced.
First off, and more importantly, we need a new file system API, and that's what I want to talk about in this post. Secondly, we need to let apps share their information with each other. That would be mostly an extension of the file system that allowed App A to tell App B to do something with App A's file, so I'll talk about the file system first. (Honestly I don't really have any good ideas for the app sharing API anyway.)
But alright, enough of that, lets talk about the file system.
Apple already has most of the ground work laid out for a great API. What I have in mind is a lot like the current Photo Library API. A full file system wouldn't fit iOS well. We don't need a full file system, we just need places to put stuff.
In the fall of 2013..
You just got your brand new iPhone 5S, it's running iOS 7, and it's everything you've ever wanted. You want a fresh start, so you set it up as a new phone, and install all your apps from scratch. You've heard a lot about this new fangled Library thing so the first thing you do is download Apple's Pages app. You open up the app, and you're welcomed by a popup that reads, "Pages would like to access your documents" with buttons saying "Don't Allow" and "Okay", just like before when an app has wanted your photos. You don't even have a documents library yet, but that's alright. When you tap "Okay" it'll just create a brand new, empty library for you to fill up with those essays you're gonna have to write for your English 1010 class.
Then about a month later, Microsoft releases an iOS version of Office! You're an early adopter of all things technologic, so you get right on that. You go straight to the app store, download all the fresh metro-style goodness, and plunge in. But no while you stare at your new favorite splash screen, you think to yourself, "Oh man, I'm gonna lose all of my Pages documents. That's gonna be a pain." But it's just momentary, and you're brought back to reality when you see a popup saying "Word would like to access your documents". So you hit "Okay" like you always do to those things, and to your amazement, all your documents are there! But how, how could this be? Because Microsoft decided to play nice and use the Libraries API that you nearly forgot about, throwing in a bonus .pages document parser so that it can give you a head start, with all your documents ready to go.
So in conclusion..
Any app can create a library with whatever name it wants. iOS will still come with the libraries that it has, such as Contacts, Calendars, and Photos. It will still give apps the ability to access those, along with any other new libraries created by third party apps all in the same standard way.
Developers don't have to worry about if the library they want access to exists or not. They just have to request access to it and if it isn't there then iOS will create it automagicalincredibly. However, if they want to put in some starter documents if the library was just created, they can just check if the library has any files yet after they've been given access to it. If you deny them access, the library will either remain unchanged or nonexistent, and they will simply be told they've been denied.
Apps that use all kinds of files, like email clients, developers could request a list of all the current libraries on the device. They can then display those names in whichever way they choose, and when you tap on "Photos" to send your mom an email of you and your girl/boyfriend at the beach, it will first ask you for access, and then show you all the photos in your library.
Apps could also create their own "Library Browsers" for their libraries if they're are a little more complex than just regular files and folders. Developers would be easily able to tell if a Library Browser is supplied with a library they're trying to access, and could fall back on their own generic one if there isn't.
Apps would be able to run in the background for a brief period of time if a library they have attached themselves to gets modified in as specific or generic of a way as they like. Instagram could watch for new files in the "Camera Roll" album of your "Photos" library to upload all the goodness of that spaghetti your Italian Uncle just cooked for the dinner party he's having, or Facebook could send a friend request to that guy who just moved to your "Friend" list in your contacts library. Whatever they feel like doing. They would have to request this ability, of course.
And please stop asking for OS level integration of Dropbox.
This would eliminate all need for it. Just install the Dropbox app, you'd open it, it'd request access to (and automagicalincredibly create) your "Dropbox" library, and then download all your files and folders to your device. Other apps could offer you Dropbox integration after making sure a "Dropbox" library exists. All they would have to do from there is request access, add a file to it, where iOS would take over and tell the Dropbox app that it's library has been modified, and Dropbox would send that new file off into the sky.
I'd love to hear everyones thoughts about this. This is my first forum post so I hope it's not too bad. c: