During my research week at Nokia Maps I decided to work on some new, experimental features that required to store some user preferences and that allow users to upload files.
However I really did not feel like writing lots of backend code, running up and down to the system engineers offices and go through all the required steps to obtain a server for storage for a project that may never be deployed in production.
Therefore I decided to use the cloud. I did some research, hoping to find a service that would allow me to use a remote database or any other kind of storage in the cloud via a simple REST API.
The closest and most simple API I could find was Firebase. These guys created an amazing service that provides to developers the capability of reading and writing data into a scalable database hosted in the cloud with no need for any kind of backend code. Really really awesome! Unfortunately I received my beta code only at the end of the week, so I really did not have enough time to experiment with this API. But I will play with this nice service soon and give some feedback to the super nice guys at Firebase.
A couple of days ago I was reading through my news stream, and I discovered another new service, that turned out to be exactly what I needed. Filepicker.io offers an incredibly easy to use API to enable web applications to take advantage of well known services such as Box, Dropbox, Flickr, Google Drive for storage.
Normally, when a web application allows users to upload files, the only solution is the well known file input.
This is somehow a limitation: first of all it requires some backend code to handle the upload, disk space is required to store all the users’ files and there may be some legal requirements to handle sensitive data. Even more importantly, many users store their photos, documents and files in the cloud rather than on their computer, and it would be really useful if the file input could go beyond just allowing users to pick a file from the local filesystem.
Well, this is exactly what Filepicker.io does. It provides an alternative to the file input, enabling users to upload files from the local filesystem, or from any of the many services on the Internet where you may store data, photos, movies, code, etc., no backend code required. Wow!
The documentation is pretty well done, and in no time I was able to build my first application that takes advantage of cloud storage.
My Trails is a simple little application that uses Nokia Maps API to display a KML file on the map. I find it very useful to plan a hiking trip for instance. I have some of my favorites trails stored into a folder on Google Drive, and via Filepicker.io I can easily select one and display it on the map (Filepicker.io API is CORS enabled).
Additionally, using drag&drop I can view KMLs from my local filesystem. In case you want to try this feature here are some KML files you can play with.
And here some pretty screenshots of My Trails.
I think Filepicker.io is a great project, the API is simple and it allows developers to build applications that interact with user data without the need of storing it. So users (or, unfortunately Google) still own their data that they keep in the cloud but have the possibility to make it available for any web application via Filepicker.io. Probably browser vendors should consider including a native solution to pick files from the cloud in their browsers.
But until then, good job Filepicker.io guys!