10 February 2015
Dropbox does smart phone camera back ups correctly. Take a picture one minute and it's in a folder on your computer the next minute. I know... it may not sound like a big deal, but it means a lot to me. I spend more time than I probably should in Photoshop and to be able to have images I took earlier already downloaded and ready to be opened is just a nice convenience.
About a month ago most of my free promotional Dropbox space recently expired and I ended up migrating over to Google Drive for my cloud storage needs where to my surprise, there was more free space than I expected! Google Drive has an automatic photo and video back up as well, so I thought everything was perfect, until I realized the back up feature wasn't in the Google Drive app, but the Google+ app. I 'm not trying to say anything bad about Google or Google+ at all, but I needed to get my back up features... back...
Fortunately Google has an API that interfaces with Drive which made this project much easier than it could have been. On top of that, they had a fantastic quick start guide that really got things off the ground quickly. After downloading Google's API Client Objective-C library, there are a handful of steps required in order to get things set up in Xcode, but after that, it's all relatively straight forward. Google is doing a great job at keeping things documented for reference and it was surprising how little I had to travel to another website to get questions answered.
In a few hours I was able to throw a rough prototype together. There were some things I went crazy on because I was curious, for example, I'm pretty sure there's more multithreading, synchronization, and semaphores than an app like this really could ever need, but I wanted to make sure I still remembered the stuff from my Operating Systems class.
At the core, it's actually not that complicated; we make an API call to upload the files to a folder in Google Drive, then to give the app a way to continuously only upload new files, there's a quick and dirty implementation which locally caches the file names that have already been backed up. I really am planning on replacing the current Google back up with this, but there still is some progress I need to make before I'm satisfied with it. With that said though, it is functional so I wanted to go ahead and host the repository on Github in case anyone has a desire for similar functionality or may be interested in looking an example app that uses the Objective-C Library for the Drive API.
If you're interested, click here to check it out on GitHub.
Feel free to email me if you have any questions, comments, or concerns.