One of the apps I use on a daily basis is Ember by Realmac Software. These are the same folks who are responsible for website builder RapidWeaver and minimalist to-do app Clear. They are among the most well known and best Apple platform developers in the business. You know their software is quality because Ember costs $49. Even in the App Store economy of $0.99 to free, Realmac has a $49 app that sells. I happen to be a person who takes and manages a lot of screenshots, both for my day job and for blog posts such as this one. So naturally I gave Ember a try and instantly fell in love with its features and ease of use. Take my money please!
But even quality apps can have their problems, especially when they rely on one of Apple’s more notorious features – iCloud, specifically Core Data sync. Core Data sync has been the bane of many a developer’s existence. One of my favorite podcast apps, Instacast, was among the first to abandon iCloud’s sync for its own custom solution. This paid off as Instacast has been far more reliable since leaving iCloud behind.
Given that I have experienced this first hand, in every case where I am offered the choice to sync with either iCloud or an alternative such as Dropbox, I choose the alternative.
But Ember syncs with iCloud and iCloud alone. Up until about a week ago it was mostly fine. Yes, it would sometimes take a minute or two for the sync to engage, and god forbid iCloud ever allow for user control over the sync process, but otherwise it was pretty solid. Then came the 1.5 update on the Mac. This update added the ability to organize your collections into folders. Yay, I like folders, so I updated right then and there on my work computer.
After the app relaunched, my library of hundreds of images was blown to bits. The app now reported about 40 images, and most were blank thumbnails that lead to nothing. And this being iCloud, the deleted data doesn’t go to the trash. Oh no, it’s a one way trip to oblivion.
And I was not alone. Lots of users on Twitter were frantically @ing Ember’s account with tales similar to mine. And thanks to iOS 7’s auto-update feature, my iPhone and iPad were also hit before I could react in time. Thankfully my home computer was shut down at the time. I actually unplugged my router when I got home so that I could open Ember and backup the library before Mavericks’ auto-update feature did the same thing.
Realmac later confirmed that iCloud Core Data sync was indeed to blame. Like many a developer before them, they appear to be looking at ways to abandon Core Data sync entirely.
It goes without saying that we want you to have confidence in saving your inspiration with Ember. We’re currently hard at work on an update to Ember that removes our reliance on the opaque iCloud integration that Apple provides, and adopts an iCloud sync solution that is not only far less fragile and tempestous (sic), but something that allows us to consider further sync services in the future. This new solution also gives us the ability to fix things without waiting for the yearly OS X / iOS release cycle.
We know that there’s also a lot of interest in non-iCloud sync options for a variety of reasons (iCloud storage limits, personal preference, teams). This forthcoming update remains focused on iCloud, however we appreciate all your feedback about sync in Ember, and hope that our future plans will interest those of you who’d prefer other options.
Ultimately I was able to restore my library and nothing was lost. But I was lucky. If you are an Ember user I highly recommend backing up your library regularly (Ember>Backup>Create Library Backup), especially if you have not yet upgraded to version 1.5. And for other developers, it appears Core Data sync remains too unreliable to use.
Moral of the story, sync is hard. And if you are going to offer a sync solution, for the love of Odin make regular, offline backups an automatic feature.
I should state that Realmac was extremely responsive to my support inquiry, and I would continue to recommend Ember to anyone who needs to work with a lot of screenshots and images on a regular basis. Just remember to backup your library, especially before any future app updates.
- By free I mean loaded to the gills with in-app purchases of course. Ember on iOS does use IAP to be fair, but this was planned from the beginning, limited to a few advanced features, and given that the iOS app is still meant as an extension of the Mac version rather than a standalone product, I consider their IAP usage to be legitimate. ↩
- Yes I have Time Machine running, but this often does not help with iCloud related issues as the server will end up ruining the restored backup as soon as it engages anyway. If you are a developer using iCloud, please consider an auto backup feature that stores locally. Ember doesn’t have this. Were it not for my home computer being off, I would have lost my library permanently. ↩
- Keep in mind that there are other ways to sync with iCloud that do appear to be reasonably stable, for example, document sync. In fact, I usually prefer iCloud sync for documents over solutions such as Dropbox for their simplicity. Calendar sync generally works well too, although it is pretty much just CalDAV so one would expect this. ↩