Developers dish on iCloud's challenges

With services like Dropbox, Google Docs, and even IMAP email, users today expect their data to remain up-to-date and available on every device. iOS users want conflict-free access to their datawhether it's documents, in-game progress, or other detailson their iPads, iPhones, and Macs. Apple aims to satisfy that user need with iCloud.

With iCloud, Apple promises developers that they can keep their users data in sync. But while a steadily increasing number of developers are implementing iCloud support within their apps, its adoption rate still seems surprisingly low overall.

Are developers hesitant to embrace iCloud? And if so, why?

Clearing the iCloud fog

To better understand developer perspectives on iCloud, its worth forming a clearer picture of how the technology worksideally, without requiring that you hold a computer science degree.

Apple offers developers three distinct iCloud syncing approaches. The first focuses on document-based syncing. Thats the approach that Apple apps like Pages use when you open and save documents; its a means of saving files to iCloud rather than to an individual device. By implementing that document sync, developers can let a user access the same files from multiple devices, so long as that user uses the same app on all those devices.

The second iCloud syncing method Apple offers developers relates to something called Key-Value data. In its simplest form, Key-Value data refers to storing tiny bits of information. An app that lets you choose a custom font, for example, might store a key/value pair where the key is font and the value is Helvetica Neue. Developers can sync lots of such key/value pairs for each user; beyond font preferences, developers might use the feature to sync high scores, in-game progress, a preferred email address, or other small bits of data.

The third iCloud syncing approach is, perhaps, the hairiest for developers to implement. Apple refers to it as Data Storage; developers prefer to call it Core Data. Its meant for syncing data that users create themselves through use of an app, or data that the app couldnt recreate itself. Of the three iCloud syncing technologies, this is the one that requires the most work for developers. Developers must not only implement the core syncing, but also code their apps to actively police the syncing process, including removing old data periodically when appropriate.

An app that implements any one of these three approaches is, by definition, using iCloud. But for many kinds of apps, userswhether they think of it in these terms or notare looking for Core Data syncing, the most complicated option.

Implementing the first two syncing approaches isnt easy, but developers tell Macworld that the third approach, for syncing Core Data, is what Steve Jobs might call a bag of hurtits extremely complex. While iOS 6 will offer developers some significant improvements for behind-the-scenes iCloud syncing, the challenges such syncing presents will likely remain difficult.

Developers with their heads in the cloud

For some developers, iCloud is a mixed bag: They want to implement it, but its an awfully complicated undertaking.

Greg Pierce owns Agile Tortoise, which makes iOS apps like Phraseology and Drafts. There are many aspects of iCloud I am excited about, and I look forward to using in apps in the future, Pierce told Macworld. And theres some good news on that front, he says, since some aspectslike the aforementioned key/value sync support, are fairly straightforward. But he adds: There are other places, like Core Data database support, where iCloud is still somewhat half-baked, and the majority of the implementation work remains in the developers hands.

Pierce says that his companys apps that are candidates for iCloud all use Core Data. Im sure Apple is hard at work improving the integration issues, he said, so for the time being Ive taken a wait-and-see attitude toward iCloud.

Rich Siegel of Barebones Software says that while his company hasnt yet released software with iCloud integration, we are hard at work on implementing iCloud synchronization in Yojimbo. Unfortunately, however, Siegel reports that the company has certainly encountered unexpected technical challenges while bending iCloud synchronization to our will.

Thats a familiar sentiment. Matt Comi of Big Bucket Software uses iCloud to sync data in apps like TV Forecast and The Incident. Comi told Macworld that while hes happy with the [iCloud] feature set, he has issues & with the implementation of those features.

Objections to iCloud

Developers tend to focus on three sorts of objections to iClouds implementation: technical issues with the API, unease regarding its reliability, and complaints surrounding iClouds scope and functionality.

API issues: The API challenges are the most commonly shared concern. Comi says, one problem is that the iCloud API is too low level, meaning that it takes a lot of code to accomplish basic tasks. For example, the iCloud API doesnt offer a single function for putting a file into iCloud, or removing one. The iCloud documentation Apple provides developers includes sample functions that encapsulate all the necessary code for handling such common actions, and Comi says that many developers just copy and paste them, but he adds: These functions should exist as part of the API & [T]he iCloud API needs to be more abstracted.

Many of the developers who spoke to Macworld indicated that theyre optimistic iOS 6due out in the fallwill improve many of these underlying API issues.

Reliability: Even once developers wrangle the iCloud APIs well enough to do their apps bidding, significant problems remain. Developers consistently report that iCloud works anything but, well, consistently.

Heres Comi again: I regularly receive support emails about iCloud not syncing between devices. He advises customers whose iCloud syncing gets stuck to delete the apps Documents & Data from the Settings -> General -> Usage screen. Having to do this dance doesnt inspire confidence, Comi told Macworld, adding I dont know why it happens or why this fix works.

Paul Haddad, the lead iOS developer at Tapbots, offers up a similar assessment: Under iOS 5.x there are times when iCloud simply doesnt work, he said. The implementation is a black box for developers, so if something isnt working for a user, its nearly impossible to find out why.

Limited scope: Assuming developers get the iCloud APIs working, and assuming that the APIs perform as expectedand lets be clear, neither of those is a safe assumption todaydevelopers still can remain wary about the service because of what it doesnt do.

Pierce, from Agile Tortoise, said that some of the inherent limitations of the iCloud platform make it a questionable choice for certain applications, highlighting specifics like apps that want data you store from other apps, or on other platforms. iCloud apps can access only their own data; sharing that data across different apps from other developers isnt supported.

And Siegel from Barebones said that his company concluded that for BBEdit and TextWrangler, we dont really think that iClouds document ubiquity model is a good fit with the highly technical nature of the products at this point. Siegel said that his companys customers typically prefer a revision control system, which keeps track of separate versions of filessomething iCloud doesnt offer.

And integrating iCloud in Mac apps comes with another serious limitation, too, Siegel points out: Products that use iCloud may only be distributed in the Mac App Store. Some developers, like Panic, offer iCloud sync in the Mac App Store versions of their apps, and not in the standalone versions. But that, of course, means developers must maintain separate versions of their apps with unique feature setsand without full cross-compatibility.

The Dropbox option

If developers want to offer syncing features within their apps, without relying on iCloud, thats of course an option. One popular alternative developers turn to is Dropbox, the free cloud-based storage service. Dropbox and iCloud dont solve exactly the same needthe former being a login-based, versioned, file-syncing system, while the latter is meant to be ubiquitous, seamless, and friction-free. But Dropbox sync is a hugely popular feature across apps, particularly on the iOS side.

Where almost all the developers Macworld spoke to expressed significant concerns about iCloud, none had anything bad to say about Dropbox. Agile Tortoises Pierce called it a great platform; Bareboness Siegel described it as a great service and an essential part of my workflow.

But Pierce added that the biggest limitation to Dropbox is that is that it works with traditional file and folders. There are times such a traditional approach feels entirely appropriateas with text editors, where users are accustomed to saving individual documents. But for other apps, Dropbox makes little sense; Siegel points out that the file-oriented synchronization that Dropbox offers is not suitable for a database-model product such as Yojimbo.

And Tapbotss Haddad adds thatwhen it works, anywayiCloud is instantly ready to go from the first launch of an app. To access your Dropbox storage from within a third-party app, you first need to log into it. It seems like a pretty minor detail, Haddad says, but having to log in to yet another account just to use a feature is an inconvenience I like to avoid.

And then theres Simperium

Another potential competitor in the space comes from the company behind Simplenote, which offers a cloud-sync service called Simperium. Simperium supports Dropbox-style versioning, but is also built to sync Core Data fluidly. Alternatively, iCloud doesnt offer developers the ability to choose older versions of the data their users sync. And as a hosted Web service like Dropbox, Simperium syncs across platforms and devices alikemeaning its not limited, as iCloud is, to Apple devices.

Michael Johnston is a Simperium co-founder. He described Simperium to Macworld as a simple service for developers to move data among deviceslike iCloud. Even better, Johnston says, it lets users access their data on their iPhone, iPad, and Mac, along with the Web and other devices, with full offline access as wellbut its faster, more reliable, and gives developers more control than iCloud does.

Because of these advantages, some developers are turning to Simperium as an iCloud alternative. Emerson Malca built an app for students called inClass; it will soon cross the 2 million downloads mark. Now it syncs with Simperium, but that wasnt always the plan. Malca told Macworld that his users wanted sync, so he worked to integrate iCloud within the inClass app.

I tried to use iCloudit was really really a pain, Malca said. I never released a version with iCloud. Malcas reasons included all the downsides we covered already (difficulty with the API, inconsistent functionality, being limited to Apple devices, and so on), but he adds one more complaint to the list: Because of Apples control over the data, he said, I cant do cool things with it. For example, Malca is working to include the ability for students to share or collaborate on note-taking within inClass. With iCloud, data is tied to an individual user, so that sharing is impossible. Simperium, he says, lets him sync data between not just devices, but also between people. Though the cross-user sharing portion of Simperiums API isnt yet publicly available, it is at least on the roadmap; its antithetical to Apples approach to iCloud.

Oh, and its a lot simpler than iCloud, too, Malca says: Simperiums technology is awesome & I can implement it in fifteen minutes or less, just drag and drop the SDK, set the entities, and Im set. With iCloud, Malca said, he would have had to reengineer his apps data models to mesh with Apples iCloud APIs; Simperium, ironically enough, just worked.

Despite all the pluses, Simperium may have one major downside to developers that iCloud doesnt: It costs money. But rather than charge by the amount of data stored, Simperiums pricing model centers on monthly active users. Malca is appreciative of the approach, since not fretting about megabytes means I dont have to tell users they can sync up to, say, 20 notesI can just sync all their data, period. He says his costs work out to about two cents per user each month, a rate at which he says its very easy for him to profit well.

1 2 Page 1
Page 1 of 2
Shop Tech Products at Amazon