New MacBook Pros are here! Get the lowest prices anywhere: Apple Price Guides updated Sept 18th (exclusive coupons)
 


Friday, March 29, 2013, 09:37 am PT (12:37 pm ET)

Apple's iCloud disparaged over Core Data sync problems



Real solutions don't come easy



Perfecting the only cloud synced, relational database architecture offered on any mobile development platform is a big task that takes time. Struggling to make third party apps work with such a system in its unfinished, or at least unpolished, current state is also difficult. Complaining about things is much easier, and offering simplistic solutions (Hire more developers! Make it "just work!") is almost as effortless, so far more progress has been made in those regards.

One further complication is that Apple is pushing developers to both adopt Core Data and support iCloud in their apps. For some apps, this runs the developer smack into the bleeding edge of what's possible, a situation that further results in usability complaints from end users.

Solving the issue is complex, the very reason Apple began working on Core Data in the first place; it's simply difficult to manage the sync of database transactions across multiple devices, particularly when third party applications can encounter very specialized use cases or need to accommodate various unusual circumstances of their customers. That complexity is why app developers want Apple to fix iCloud's database sync problems rather than having to roll their own custom solutions at great effort and expense.

Once app developers or their users encounter a syncing issue, it can also be difficult and expensive to resolve. On top of that, Apple doesn't currently provide any robust tools for salvaging a corrupt database or improperly synced data within iCloud. In most cases, the only option for users may be to remove existing data from iCloud and start over.

One solution: do it yourself



Developer Steve Streza wrote, "the reality of syncing data is that it’s tough, and network availability is not always reliable or fast (especially on mobile). You have to write a lot of nonobvious code to handle updates and problems."

Speaking of Apple's iCloud team, he added, "what they’re doing is immensely difficult, and I have great respect for that team for trying to solve a problem of this magnitude in a way amenable to every app. But sympathy is not something you can build a business on. Of course, the downside to the DIY solution is that it’s really, really hard."

Streza went on to discuss the advantages and disadvantages of building one's own sync infrastructure or using Apple's iCloud in greater detail. "iCloud," he concluded "while a beautiful idea, is not production-ready for most apps, will cause endless headaches, and will lock you in to forever developing apps only for Apple products."

Any sufficiently advanced technology is indistinguishable from magic



While some developers have expressed skepticism of Apple's entire approach to Core Data database syncing in iCloud, the company has a lot invested in the technology. It's also spending billions to develop massive new data centers to host iCloud, making it less likely that the company will simply abandon the project as it did with iWeb or other earlier MobileMe features, or as Google recently has with its RSS Reader, support for CalDAV calendar sync and ActiveSync push Gmail.

Additionally, there's indications that Apple's recent management realignments may help focus attention on solving iCloud's root problems with Core Data. The Core Data framework was salvaged from the work Steve Jobs' NeXT did on Enterprise Objects Framework in the early 90s. The original EOF enabled NeXT and WebObjects apps to integrate with large scale databases. Core Data was a repurposing of this technology to solve problems encountered by desktop developers.

The original EOF project was managed at NeXT by Craig Federighi, who joined Apple when it acquired NeXT in 1996 and left after the company decided to port EOF to Java in 2001, effectively destroying it.

NeXT EOF


In 2009, after Apple had completed the work of transmuting EOF into Core Data, the then head of OS X at Apple, Bertrand Serlet, recruited Federighi back to work on OS X. Two years later, in August of last year, Serlet announced his retirement and introduced Federighi as his replacement to lead Apple's OS X efforts.

Serlet said at the time, "Craig has done a great job managing the Mac OS team for the past two years. Lion is a great release and the transition should be seamless."

Three months later, Apple's chief executive Tim Cook announced another shakeup which relieved Scott Forstall of his leadership of iOS, putting both OS X and iOS under the direction of Federighi.

For developers hoping to see progress made on Core Data, the idea that the original developer of EOF is now managing iOS is at least good news. It remains to be seen what Apple's OS teams have accomplished over the past year under the direction of Federighi, but at least there's only a few months left before the company details at WWDC what it plans to do with iOS 7, OS X 10.9, and iCloud v3.