Let’s start with the blindingly obvious: productivity is moving online. There’s no stopping it, and with over 90% of businesses utilizing some form of cloud storage provider, end users have come to expect some sort of file integration from their productivity apps. As a developer this can present a daunting challenge: working with files is incredibly difficult from both a logistics and security perspective. These challenges are why many developers have turned to Files APIs to provide a shortcut to file support.
A Files API is a suite of features that enables users to collaborate on important work documents within an application via the use of an API. With a good implementation of a files API, users should be able not only to upload documents, but sync, share, and even preview them securely without ever having to navigate away from the app. With a great implementation things like sharing and permissions should be automated, so that no one ever has to ask a colleague for permission to view a document or send an email with an attachment ever again.
But what makes a great implementation? In my personal experience, there are three features that you should expect from a files API.
Before your users can work with files in your app, they need a way users to upload files stored locally on their computer to an application, usually stored on a dedicated server or a cloud storage solution. Today most file uploaders operate via an API that connects the document handling protocols with an easy to use interface on an application’s front end. Most file uploader solutions offer a drag and drop interface, a dialog box interface, or some combination of the two.
A drag and drop interface is also exactly what it says on the tin: an interface that allows you to “drag” a locally stored file and “drop” it into the application. This is a very convenient and easy way to work with files in a desktop environment, however the limitations of current mobile platforms make it cumbersome on most tablets and smartphones.
A dialog box interface works by connecting the file uploader to the internal file explorer of an end user’s device, opening a “dialog box” that allows the user to navigate to the appropriate file or files and select them for uploading. While less intuitive on the surface, dialog boxes make it easy for users to leverage the internal search functionality of their operating system to find the right files. Dialog boxes are also the simplest and easiest way for mobile users to upload files, especially on mobile platforms that do not allow multiple application windows to be open at the same time.
Now the files are in your app, but that doesn’t do a lot of good if users can’t see them. Otherwise their team will rapidly approach a situation like this:
But fear not for the Pam Beesly’s of the world, many great Files APIs have file previews. Without file previews, end users not only have to open the files in the right application, but they have to download them first. While that’s just another in a string of minor inconveniences on desktop, lacking file previews makes file management a nonstarter on mobile devices.
To make any app a viable option for productivity and collaboration it needs to have rich support for file previews on desktop and mobile. While many cloud storage solutions like Dropbox or Google Drive offer file previews, there’s still a glut of apps in the mobile and desktop space that cannot preview any files at all. It’s understandable: configuring an app to parse and render a large swath of file types is a difficult undertaking. That’s why having file preview support was such a high priority for Weavy’s development team, especially for our Files API.
Right out of the box, any application that has integrated Weavy document collaboration is able to offer desktop and mobile previews of the following file types:
Time to get to work! Now the big question is which version of the file are your users going to work on, and how can they keep in sync and not overwrite each other’s work? Luckily software developers figured out a solution decades ago, and that solution has made its way to the consumer sector: version control.
File version control is a system that tracks and manages different versions of the same file. The basic philosophy behind version control is storing multiple iterations of the same document within a repository, surfacing each iteration to end users should they need to reference them or roll back to that iteration. More advanced implementations of version control will also track which versions were modified by which user, creating a digital chain of custody for the file.
Numerous platforms have sprung up in the last few years to provide version control solutions to large enterprises, while leaving smaller developers and organizations in the cold. That’s why our development team wanted to bring the convenience of automatic version control to every file that a team would have to work with. With Weavy any developer can add full enterprise class file management To that end, any local files that are synced with Files API have an automatic version control that updates which each update to the original file.
Since we’re big fans of file previews our implementation of file version control goes a step beyond merely archiving older versions by having full sized previews of each version. This means users can see exactly what differences there are between versions without having to open them in other applications. This is crucial for mobile apps where opening an SVG or Word file is less convenient.
As the need for streamlining workflows increases, many product managers and developers are tasked with bringing functionalities like file sharing into their existing products. But today's most common solutions for File APIs may be incomplete, or not provide the ease of use to truly be considered streamlined. Weavy's Files APIs not only can enable your users to upload various file types into your application, but also allows them to preview those files, and have proper oversight and version control when sharing documents.