Apple's ambitious plan to make iCloud the new digital hub for Mac and iOS users' documents, data and media files has run into complaints from developers who reportedly don't believe Apple will address their issues related to database sync. There's hope for thinking things will improve, however.

Frustrated with the limited options Apple provides for handling their issues, several app developers have taken their complaints public via blog entries, primarily focused on problems related to Core Data database sync with iCloud.

Their complaints have been picked up by journalists who often conflate these specific, limited database sync issues with Apple's entire spectrum of online services, resulting in headlines that pronounce the entire iCloud umbrella as being "broken," with no hope in sight, while castigating Apple for advertising iCloud as "automatic and effortless."

Apple's tightlipped secrecy makes it harder to reliably forecast how soon the company will precipitate fixes for specific issues, complicating developers' plans even as their own customers rain down complaints and poor reviews for either a lack of support for iCloud, or alternatively, syncing issues within an app after the developer adds support for iCloud.

"I would love for Apple to tell us they fixed everything with iCloud in iOS 7 and we can finally use it without issue two years later, but I?m not getting my hopes up," one unnamed iOS developer reportedly toldthe Verge for an article headlined "Why doesn't iCloud 'just work'?"

The wide span of Apple's iCloud services

Further complicating things is the reality that "iCloud" is an extremely broad marketing term Apple nebulously uses to cover nearly all of its online services.

In general terms, "the cloud" refers to the Internet, often specifically to network based services, but more recently to simple "cloud storage" of files as well. Anything happening "in iCloud" is simply being done on Apple's servers, which includes Mail, Contacts and Calendar services. Developers aren't taking issue with any of these services, which despite some sporadic interruptions, have not generated unusual volumes of complaint from users.

Apple's various digital download and shopping services, including its industry leading media content in iTunes, iBooks and iOS and Mac App Store software are also roped together under the "iCloud" umbrella. This isn't the iCloud that developers are complaining about either.

The company also offers a unique app-based file storage service that saves documents "in the Cloud" for access from any one of a user's various Macs or iOS devices, and in some cases, from the web. Photo Stream, Find My iPhone, Back to My Mac, and various other data sync services (such as Safari bookmarks and Reading List) are also features associated with iCloud.

None of these features are directly related to the iCloud problems that developers are reporting, resulting in confusion for many of the 250 million users who don't see Apple's useful and generally reliable (but certainly not flawless) iCloud as being "broken."

The dark, silver lining of Apple's iCloud

The primary iCloud problems for third party app developers relate to issues with reliably syncing databases between their own apps and the cloud (and keeping them in sync across devices). This is handled by Core Data, an Apple framework designed to simplify the management and storage of data within an app for developers, allowing them to focus on the unique aspects of their software titles. Core Data itself is highly regarded among most developers.

Apple introduced Core Data back in 2005's Mac OS X Tiger, and made it available to App Store developers in iOS 3.0. Core Data enables developers to work with a user's data as objects, handing much of the complexity of data storage and retrieval for them. The Core Data framework provides options of how to store that data suited for different tasks: either as a simple XML text file or in binary data (both examples of a standard file), or within a SQLite database (a specialized file that contains organized data that is accessed and modified via specialized transactions).

When Apple introduced iCloud, it integrated a new "Documents & Data" feature of the service with the Core Data framework, to enable apps to leverage the familiar framework to save and retrieve an app's data via iCloud. For document-based data files or simple "key value pairs" (such as preference settings), iCloud seems to work pretty well.

"The core idea behind iCloud," Apple's developer documentation explains, "is to eliminate explicit synchronization between devices. A user never needs to think about syncing and your app never interacts directly with iCloud servers. When you adopt iCloud storage APIs as described in this document, changes appear automatically on all the devices attached to an iCloud account. Your users get safe, consistent, and transparent access to their personal content everywhere."

Actually implementing iCloud support in an app isn't trivial; Apple itself spent about a year adding iCloud support to various apps built into Mac OS X Mountain Lion, and it took some additional time to get iCloud-based files working between the iOS and Mac versions of its iWork apps (depicted below).

The more ambitious effort of syncing incremental changes made to an SQLite database with iCloud is even more complex. Several developers have reported considerable frustration in getting this to work at all, and their efforts are complicated by the unforeseen actions of users, who may, for example, log out of iCloud on their device and log in as a new user, throwing additional complexity into the situation.

While Apple has implemented document-based iCloud sync in its own apps, neither it nor its FileMaker subsidiary appear to be making any significant use of SQLite databases synced with iCloud. And if Apple isn't yet using it, you can bet that it isn't polished for third party developers either.

A catch-22 for innovation

The Mac and iOS platforms depend upon the architecture of Core Data (and its integration with iCloud) to present a number of innovative features. Everything from AutoSave to Versions (below) to Time Machine leverages the novel concept of incrementally saving users' work so that it can be rolled back, archived, and even synced between devices in real time. Apple has been rolling out and progressively enhancing these features (and their underlying frameworks) over the past several years.

During that time, Apple's critics have both complained about how unimpressed they are with every new bit of hardware Apple and software update the company has released, while also complaining about any changes and growing pains that have occured as a result of Apple's often aggressive plans to roll out new features.

The alternative solutions to Apple's iCloud dilemma (and more broadly, everything about OS X and iOS) would be to either greatly scale back innovation on all fronts (allowing competitors to catch up and critics to amplify their complaints that Apple 'isn't innovating enough'); to put "beta" warnings on new software features the way Google does to avoid harsh criticism of new software and features (as Apple did with Siri, although this didn't have any real effect); or to assemble larger teams to work on various projects (complicating development and increasing the staffing and operational issues the company already struggles under given its crowded campus and the difficulty of hiring qualified, experienced developers).

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.

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.

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."

This is the main problem. The network is not robust enough. Apple is attempting to work around the issue by having the data local and in the cloud so you can work offline. When the user restores network connectivity the data is supposed to sync with the cloud. Pretty complicated stuff, especially if they are swapping out Apple IDs on the same device as mentioned in the article.

The Google solution is that you need to be connected to the Internet or you can't work. That way there is no syncing to be done because there is only one copy of the data, which is the way it should be.

If you are going to rely on the cloud then you need always on network connections.

"Growing pains" isn't good enough. If Apple called it a beta and let developers give it a shot if they wanted, that's one thing. But Apple has pushed this as something developers can count on, when in fact, it's still not ready for use, and leads to customers being mad at developers.

Now, iCloud has been great for me, but I'm pretty sure the apps I use it with are only synching files or big monolithic data chunks, NOT full Core Data functionality. (I'm probably using some Core Data games, but haven't moved between devices enough to need much synching.)

Apple should have released iCloud file synching to developers first, and waited on iCloud Core Data until it was solid. Maybe nobody has fully done this KIND of synching in the past, and maybe Apple doesn't have to offer this feature, but if they do--and I'd love to have it!--then it should work a lot better! I hope they get it together. This kind of thing has never been Apple's strength.

>Complaining about things is much easier, and offering simplistic solutions (Hire more developers! Make it "just work!") is almost as effortless

OMG, could you be more of an Apple apologist? You seem to be saying that the critics, not Apple's failed Core Data, are wrong. Really?

I mean, if Apple were up-front about everything that is happening, then perhaps the criticism would be unjustified. But not only has Apple refused to even once admit that there are problems with Core Data, not only has Apple not used Core Data itself, not only have they refused to answer questions from hundreds of developers at WWDC who inquired about the issues with Core Data, but *worst of all*, they have refused to supply a roadmap for when the issues might be resolved (if ever). That leaves developers completely in the lurch. And when that happens, any & all criticism of Apple is justified.

Apple has a haughty "our way or the highway" attitude, which, if they followed it up with actual working services, would be OK. (Michael Jordan bragged a lot too, but he then went out and kicked ass.) Apple, meanwhile, has a pathological addiction to secrecy. When things aren't working and thousands of businesses are suffering as a result of your failure to deliver, secrecy *just doesn't work*. It's not just annoying, it's insulting. Core Data is a *big problem* and Apple needs to man up, say "Yeah, that's not working", and then, "Here is what we are doing to fix it." Best of all would be if they invited developers into Cupertino to work with them to fix it. Team effort.

But that's not happening. And until it does, heap all the critique on Apple you want, guys.

OMG, could you be more of an Apple apologist? You seem to be saying that the critics, not Apple's failed Core Data, are wrong. Really?

One doesn't need to be an Apple apologist to see that this article is rather meaningless.

How many developers have complained? Out of how many total developers? How frequently do they experience problems? Do their users experience problems or is it simply making things a bit more difficult for the developer?

This is one of an endless stream of articles about "someone is complaining about something that Apple did". It's absolutely impossible to tell if this is a problem that affects an insignificant number of people and which has a simple workaround or if it's a serious problem that affects a large number of users.

"I'm way over my head when it comes to technical issues like this"Gatorguy 5/31/13

When Apple does fix their Core Data iCloud sync problems, they need to release an update for iOS 5 and iOS 6 and not just fix it in iOS 7. If that is not done then nothing is really fixed since developers still need to support the original iPad which cannot be updated past iOS 5. You can't have your app work fine on some devices but lose its data on others. For developers the best thing to do right now is to either avoid Core Data syncing or to sync it themselves using file syncing.

Maybe I am just a Mac simpleton but somehow Apple manages to do this splendidly with the iWork suite (Pages, Numbers, and Keynote); moreover, I use GoodReader and Scanner Pro with iCloud to great success.

It sounds a lot like some "developers" do not want to put in the homework to make their apps work properly, but that's just my conjecture.

Why is it that Apple just plain sucks are doing cloud stuff? They always have and apparently always will.

Well, iCloud is a more pervasive, thorough, and ambitious cloud and syncing solution than anyone has ever done or is doing, including Google. So no, Apple doesn't just "plain suck" at cloud, they're just pushing the envelope more than anyone, and running into extremely complex technical problems to resolve that noone has ever encountered, and not simple to just "solve". Also, for a company that just "plain sucks at doing cloud stuff", it's not too shoddy that they have by far the most successful mobile app store on the planet, not to mention music store, bookstore, movies, TV shows, academic courses, etc- those all rely completely on the cloud, and hundreds of millions of people are using these servies and are extremely satisfied. Enough with the "lol Apple sucks at cloud" bullshit sensationalism. Their innovation with mobile stores and apps is what has gotten them a massive amount of their success.

iCloud is responsible for a shitload of services, processes, and features on hundreds of millions of devices spanning Phones, tablets, iPods, and computers, under millions of use case scenarios, and often under unreliable network conditions, in which its constantly syncing and comparing massive amounts of data between different devices and platforms, while the userbase is growing by like 50 million devices a quarter. So yeah, stuff will happen, shit won't work 100% perfectly 100% of the time, but based on recent customer satisfaction numbers, it seems to work damn well for a majority of people. I doubt any other company on the planet could pull off what Apple has pulled off, as noone else has the balls or the ambition to make someone as thorough and complex.

Not sure why I bothered to give such a rational answer to your assinine statement, as it's obvious you're a troll.

On another note, do we really need a multi-line sig which includes the specs, HDD, and ram of your computer? Why, who cares, and who does it benefit? All it does is create useless noise in necessitate more scrolling.

For developers the best thing to do right now is to either avoid Core Data syncing or to sync it themselves using file syncing.

Quote:

Originally Posted by JuanGuapo

Maybe I am just a Mac simpleton but somehow Apple manages to do this splendidly with the iWork suite (Pages, Numbers, and Keynote); moreover, I use GoodReader and Scanner Pro with iCloud to great success.

It sounds a lot like some "developers" do not want to put in the homework to make their apps work properly, but that's just my conjecture.

As noted in the post just above yours there are two methods of syncing: Core Data and file syncing. Core Data is the one that is being criticized. The examples you mentioned are most likely using the file syncing method which is working fine, perhaps because it is a lot easier to do. Syncing rows of a database is done by updating specific rows using SQL queries to change data objects, which is incrementally more difficult than simply overwriting a file.

Well, iCloud is a more pervasive, thorough, and ambitious cloud and syncing solution than anyone has ever done or is doing, including Google. So no, Apple doesn't just "plain suck" at cloud, they're just pushing the envelope more than anyone, and running into extremely complex technical problems to resolve that noone has ever encountered, and not simple to just "solve". Also, for a company that just "plain sucks at doing cloud stuff", it's not too shoddy that they have by far the most successful mobile app store on the planet, not to mention music store, bookstore, movies, TV shows, academic courses, etc- those all rely completely on the cloud, and hundreds of millions of people are using these servies and are extremely satisfied. Enough with the "lol Apple sucks at cloud" bullshit sensationalism. Their innovation with mobile stores and apps is what has gotten them a massive amount of their success.

iCloud is responsible for a shitload of services, processes, and features on hundreds of millions of devices spanning Phones, tablets, iPods, and computers, under millions of use case scenarios, and often under unreliable network conditions, in which its constantly syncing and comparing massive amounts of data between different devices and platforms. So yeah, stuff will happen, shit won't work 100% perfectly 100% of the time, but based on recent customer satisfaction numbers, it seems to work damn well for a majority of people. I doubt any other company on the planet could pull off what Apple has pulled off, as noone else has the balls or the ambition to make someone as thorough and complex.

Not sure why I bothered to give such a rational answer to your idiotic statement, as it's obvious you're a troll.

On another note, do we really need a multi-line sig which includes the specs, HDD, and ram of your computer? Why, who cares, and who does it benefit? All it does is create useless noise in necessitate more scrolling.

Who pissed in your cornflakes today? Way to cover their ass for them. Good job!

And oh yes..I'm just a troll because I badmouthed Apple! *gasps* God forbid Apple not do something right and they get called out on it. Never mind the countless times iCloud goes down, the fact that both .mac and mobileme were complete failures, etc, etc. But I'm a troll.... *rolls eyes* I guess I should now say to stop drinking so much koolaid.

And since my signature bothers you so much, I'll leave it there...maybe I'll make it bold too so it stands out more just to piss you off.

Soooo, why does Dropbox just work? And why does it work across all platforms?

I've been an early adopter for most of Apple's stuff (MobileMe), and as the article states iCloud services within Apple's core programs works OK. But it is far from providing what is needed to support a truly mobile workforce, with multiple devices, in various states of connection to the internet.

I disagree with mstone that ubiquitous internet connect is necessary. My life, and most people's lives are NOT always connected to the internet. Rather life is a series of hops between hot spots, free wifi, and cell coverage - and that is if you are urban. If you live/work in a rural area for-get-about-it.

I am a bit surprised that it is Apple that is trying to solve this issue and not a consortium (or government/military contract). The solutions are hard, but immensely important. In the end if anyone can solve it, it will probably be Apple

Soooo, why does Dropbox just work? And why does it work across all platforms?

I've been an early adopter for most of Apple's stuff (MobileMe), and as the article states iCloud services within Apple's core programs works OK. But it is far from providing what is needed to support a truly mobile workforce, with multiple devices, in various states of connection to the internet.

I disagree with mstone that ubiquitous internet connect is necessary. My life, and most people's lives are NOT always connected to the internet. Rather life is a series of hops between hot spots, free wifi, and cell coverage - and that is if you are urban. If you live/work in a rural area for-get-about-it.

I am a bit surprised that it is Apple that is trying to solve this issue and not a consortium (or government/military contract). The solutions are hard, but immensely important. In the end if anyone can solve it, it will probably be Apple

Dropbox is more of a file sync and that actually works very well on iCloud. Dropbox does not offer anything like CoreData syncing.

Personally, I use key-value syncing and it works very well but I don't sync huge amounts of data and tend to sync state, configuration and default data.

Maybe I am just a Mac simpleton but somehow Apple manages to do this splendidly with the iWork suite (Pages, Numbers, and Keynote); moreover, I use GoodReader and Scanner Pro with iCloud to great success.

It sounds a lot like some "developers" do not want to put in the homework to make their apps work properly, but that's just my conjecture.

I agree. I've never had any problem, nor have I heard of widespread problems. The fact that the article doesn't have any figures suggests that it's a tempest in a teapot.

Quote:

Originally Posted by mstone

As noted in the post just above yours there are two methods of syncing: Core Data and file syncing. Core Data is the one that is being criticized. The examples you mentioned are most likely using the file syncing method which is working fine, perhaps because it is a lot easier to do. Syncing rows of a database is done by updating specific rows using SQL queries to change data objects, which is incrementally more difficult than simply overwriting a file.

Really? OP stated that iWork works fine for him. Are you suggesting that Apple doesn't use CoreSync?

"I'm way over my head when it comes to technical issues like this"Gatorguy 5/31/13

Soooo, why does Dropbox just work? And why does it work across all platforms?

Dropbox is managing files and the counterpart of iCloud that manages files is also working fine. The issue is with data objects. One solution that developers are suggesting is that you need to sync your database on the phone and then do a complete replacement of the iCloud table. Trying to do selective SQL commands in Core Data is sometimes resulting in lost data. Just like file syncing, replacing the entire dataset is one way to increase the reliability, but that only works with small to medium sized databases, not so well large ones and especially not on sketchy Internet connections.

To explain how file syncing compares to database syncing imagine that you had an image stored in the cloud and also on the device. You then did a tiny bit of photo editing such as red eye correction. To sync that file iCloud would just overwrite the file easy peasy. Now to compare, imagine that the iCloud software had to analyze every pixel of both local and iCloud images and figure out which pixels where different and which pixels were newer and only update those pixels. Of course that would be stupid as overwriting the older file is so straight forward, but do you see where the complexity comes into play? What if the image was several GB it might make sense to just update the changed pixels instead to transferring the entire file over again. Core Data syncing is completely different than file syncing.

As noted in the post just above yours there are two methods of syncing: Core Data and file syncing. Core Data is the one that is being criticized. The examples you mentioned are most likely using the file syncing method which is working fine, perhaps because it is a lot easier to do. Syncing rows of a database is done by updating specific rows using SQL queries to change data objects, which is incrementally more difficult than simply overwriting a file.

Really? OP stated that iWork works fine for him. Are you suggesting that Apple doesn't use CoreSync?

Since you discredit the entire article I don't expect you to agree with the statement below quoted from the article that Apple is not using Core Data in document type apps for syncing, which is how I would characterize iWork apps. I seems more likely they are using file syncing.

Quote:

Originally Posted by AppleInsider

While Apple has implemented document-based iCloud sync in its own apps, neither it nor its FileMaker subsidiary appear to be making any significant use of SQLite databases synced with iCloud. And if Apple isn't yet using it, you can bet that it isn't polished for third party developers either.

I'm not a developer. Is my inability to find a third party app that synchronizes correctly with the iOS/OSX/iCloud versions of Apple's Reminders app probably a Core Data issue or just a Reminders app immaturity problem?

Soooo, why does Dropbox just work? And why does it work across all platforms?

Dropbox is very simple in comparison to what Apple is doing, and always will be. I also have not had any major problems with Apple's catalog of programs connected to the so-called cloud, the ecosystem is a joy to use everyday in comparison to Windows and the Ribbons interface. Perfect no, but by far the best place to be computing wise across multiple devices.

Since you discredit the entire article I don't expect you to agree with the statement below quoted from the article that Apple is not using Core Data in document type apps for syncing, which is how I would characterize iWork apps. I seems more likely they are using file syncing.

I discredited the article because there were no facts. Just silly innuendo and a couple of developers complaining. No evidence of widespread problems or how many people are affected.

I discredited your post for the same reason. OP said that his apps worked fine - and you immediately said that's because Apple doesn't use CoreData. No facts, no evidence - just your continued FUD about Apple. Where's the evidence that Apple doesn't use CoreData? And where's the evidence that that's why iWork doesn't have problems? And where's the evidence that any significant number of people DO have problems?Edited by jragosta - 3/29/13 at 12:50pm

"I'm way over my head when it comes to technical issues like this"Gatorguy 5/31/13

Since you discredit the entire article I don't expect you to agree with the statement below quoted from the article that Apple is not using Core Data in document type apps for syncing, which is how I would characterize iWork apps. I seems more likely they are using file syncing.

I discredited the article because there were no facts. Just silly innuendo and a couple of developers complaining. No evidence of widespread problems or how many people are affected.

I discredited your post for the same reason. OP said that his apps worked fine - and you immediately said that's because Apple doesn't use CoreData. No facts, no evidence - just your continued FUD about Apple. Where's the evidence that Apple doesn't use CoreData? And where's the evidence that that's why iWork doesn't have problems? And where's the evidence that any significant number of people DO have problems?

Well I'm only quoting the article and combined that information with other articles on the net posted by actual developers wrestling with inexplicable loss of data using Core Data. Of course well reasoned documentation from several credible sources is always trumped by a single anonymous naive poster on AI. Since some developers are having an issue with it, I can think of only one reason that the problem is not widespread: The developers have not released any apps using Core Data to sync to iCloud, perhaps, because they can't rely on it yet.

Edit: According to Apple's developer tech documentation, it states that Keynote and Numbers use Core Data syncing to iCloud. I'm watching the relevant developer videos right now so I can verify the actual methodology.

FYI, Apple released Core Data in 2004 at WWDC with the Tiger Preview. (have the wwdc videos to prove it).

On a side note, my experience with iCloud and Core Data has been positive as of late. When it first came out it wasn't working AT ALL. Even last year around WWDC we were still running into many issues. But lately it's been working as expected going from iOS to iOS device. We still run into issues going Mac -> iOS though, but not very frequent.

Quote:

The reason why they are analysts is because they failed at running businesses.

Well I'm only quoting the article and combined that information with other articles on the net posted by actual developers wrestling with inexplicable loss of data using Core Data. Of course well reasoned documentation from several credible sources is always trumped by a single anonymous naive poster on AI. Since some developers are having an issue with it, I can think of only one reason that the problem is not widespread: The developers have not released any apps using Core Data to sync to iCloud, perhaps, because they can't rely on it yet.

Where's the "reasoned documentation from several credible sources"? Maybe you can point out the evidence as to how many people are affected and where someone has identified an actual flaw in the system?

It's the same as the Maps nonsense. A few people whine about a 'problem' and people like you jump on the bandwagon and start spreading FUD about how bad it is - even without a single shred of quantitative data showing it to be any worse than the alternatives. Apparently, in your FUD-filled mind, simply saying something bad about Apple makes it true - and means that every human being on the planet should start screaming about it, as well.

Quote:

Originally Posted by mstone

Edit: According to Apple's developer tech documentation, it states that Keynote and Numbers use Core Data syncing to iCloud. I'm watching the relevant developer videos right now so I can verify the actual methodology.

So you were wrong. Not surprising.

"I'm way over my head when it comes to technical issues like this"Gatorguy 5/31/13

Soooo, why does Dropbox just work? And why does it work across all platforms?

...

I disagree with mstone that ubiquitous internet connect is necessary. ...

Dropbox doesn't alway "just work". Dealing with "conflicted" documents can be a headache. Things like Office's autosave feature can make it even worse.

iCloud isn't perfect, and they do need to work out the core data issues (although, bi- or multi-directional database syncing is not a trivial issue, especially when network connections are not continuous (and even when they are)), but what does work works well.

I do agree that cloud solutions for personal use that require internet connections just to access the data are not the solution. (Good luck with Google solutions on the subway.) Those are just remote database access solutions, and barely even deserve the designation "cloud". iCloud's approach is the correct solution, they just need work out some of the remaining issues. I'm confident that they will, but some of them are not easy problems to solve.

Where's the "reasoned documentation from several credible sources"? Maybe you can point out the evidence as to how many people are affected and where someone has identified an actual flaw in the system?

I did a search on Google and Apple. You could too instead of asking me to post links. You wouldn't read them anyway since you apparently already know everything.

I was looking into the statement in the article that Apple has not used SQLite databases to sync to iCloud. As indicated in the documentation there are two different ways to sync to iCloud using CoreData: Library and Document. In the library method you are supposed to use SQLite but in the document method you use atomic, which is apparently what Keynote and Numbers do, however in either case it is recommended that you use the local storage or iCloud storage but not both. If you choose iCloud only, your data will not show up unless you are connected to the Internet and signed into iCloud so it is unclear how Apple is doing a combination of the two because they recommend against doing that with CoreData in the documentation. The developer posts I have read they are trying to do this very thing but no examples are given in the Apple developer code snippets. Using file sync is trivial for using both iCloud and local, but that is not at issue in this discussion.

I did a search on Google and Apple. You could too instead of asking me to post links. You wouldn't read them anyway since you apparently already know everything.

I was looking into the statement in the article that Apple has not used SQLite databases to sync to iCloud. As indicated in the documentation there are two different ways to sync to iCloud using CoreData: Library and Document. In the library method you are supposed to use SQLite but in the document method you use atomic, which is apparently what Keynote and Numbers do, however in either case it is recommended that you use the local storage or iCloud storage but not both. If you choose iCloud only, your data will not show up unless you are connected to the Internet and signed into iCloud so it is unclear how Apple is doing a combination of the two because they recommend against doing that with CoreData in the documentation. The developer posts I have read they are trying to do this very thing but no examples are given in the Apple developer code snippets. Using file sync is trivial for using both iCloud and local, but that is not at issue in this discussion.

It's SQLite at all times on iOS, yet it can be multiple types on OS X. plists (XML), Sqlite, or anything that Apple chooses. They reserve the right to change it at any time with Core Data. It being SQLite is supposed to be behind the scenes.

Edit: Was on the phone, shouldn't have been positing as I completely missed your point :)

I'm not sure what you mean you are supposed to use SQLite for Library method. You don't directly interact with SQLite, you use a managed object context to do all the communication with your data structure (which could be SQLite, XML, etc).

You still have a data model on your device when utilizing iCloud / Core Data. It syncs only when it gets a connection. In fact, they've even worked it to where you don't even have to go out to their servers, iCloud is smart enough to sync through your LAN if all devices are on the same Network. Apple has a "Last to store wins" rule as well.

Edited by emig647 - 3/29/13 at 2:27pm

Quote:

The reason why they are analysts is because they failed at running businesses.

As a developer, my main problem with iCloud isn't even its reliability, but rather the fact that there is no public API to access its content from the web. This means that even if it does become reliable, anything stored on iCloud cannot be accessed outside of iOS or OS X apps. Many apps want to offer a companion web service sharing account info, app data and so on. For me, this is the real showstopper: imagine Dropbox without the web access! Ironically, Apple's own apps (Mail, Calendar) DO access iCloud from their web interface!... Oh well.

It's SQLite at all times on iOS, yet it can be multiple types on OS X. plists (XML), Sqlite, or anything that Apple chooses. They reserve the right to change it at any time with Core Data. It being SQLite is supposed to be behind the scenes.

True about iOS but some applications such as Numbers, etc. have both an OS X and an iOS version.

For developers the best thing to do right now is to either avoid Core Data syncing or to sync it themselves using file syncing.

Quote:

Originally Posted by JuanGuapo

Maybe I am just a Mac simpleton but somehow Apple manages to do this splendidly with the iWork suite (Pages, Numbers, and Keynote); moreover, I use GoodReader and Scanner Pro with iCloud to great success.

It sounds a lot like some "developers" do not want to put in the homework to make their apps work properly, but that's just my conjecture.

As noted in the post just above yours there are two methods of syncing: Core Data and file syncing. Core Data is the one that is being criticized. The examples you mentioned are most likely using the file syncing method which is working fine, perhaps because it is a lot easier to do. Syncing rows of a database is done by updating specific rows using SQL queries to change data objects, which is incrementally more difficult than simply overwriting a file.

I think the problem is a corrupted .mdb file.

"Swift generally gets you to the right way much quicker." - auxio -

"The perfect [birth]day -- A little playtime, a good poop, and a long nap." - Tomato Greeting Cards -

But the dates on those results should be noted. IMO, it's much improved since iOS 6. Perfect? Hell no, but I don't expect it that quickly.

Quote:

Originally Posted by Tallest Skil

Originally Posted by mstone
Any of the 206,000 documents returned by this Google search: icloud core data problems

Foolishness.

Sorry I was just being flippant. I'm trying to have a reasonable discussion about the topic at hand with out criticizing anyone, or Apple and some jackass keeps stalking me. Very annoying. I have not used iCloud syncing however I did do some research on it at Apple Developer and watched the WWDC videos as well as read some recent blogs, 30 of which show up on the first page of the proposed Google search with every one being relevant to the topic of this thread. This guy is just in a completely unprovoked attack mode.

Who pissed in your cornflakes today? Way to cover their ass for them. Good job!

And oh yes..I'm just a troll because I badmouthed Apple! *gasps* God forbid Apple not do something right and they get called out on it. Never mind the countless times iCloud goes down, the fact that both .mac and mobileme were complete failures, etc, etc. But I'm a troll.... *rolls eyes* I guess I should now say to stop drinking so much koolaid.

And since my signature bothers you so much, I'll leave it there...maybe I'll make it bold too so it stands out more just to piss you off.

I'll ignore most of your post because you didn't bother to actually address any of the points I made, instead of just resorting to attacking me. Apple doesn't need me to defend them, but what people like you need is some perspective, and I was attempting to give that to you. Unfortunately, instead of reflecting on it, and aknowledging that your statement of "Apple sucks at the cloud and always will" is flat out wrong, you bring out obsolete software services like .mac and mobileme which do not exist anymore, just to pad whatever non-point that you had. I never suggested Apple's cloud services are absolutely perfect, because they are not, but that doesn't mean that they're the other extreme. You never aknowledged the fact that that noone is attempting to do what Apple is doing, so you have absolutely nothing to compare it to to prove it's subpar. Noone in the industry that knows their head from their ass believes Apple is incompetent with cloud services. Quite the opposite, most of the industry has continually emulated the steps Apple has taken. You take offense to calling you a troll, but how is "Apple sucks at the cloud AND ALWAYS WILL" not a completely trollish statement? The company that pretty much pioneered and popularized so many cloud services that are standard today? As far as iCloud, noone is even attempting or executing anything close to the scale of what Apple is doing in the cloud.

As for your signature, it's cool that your motivation for leaving it is to bother me, but I guarantee you it has a negative effect on every single other person on this board, and you still haven't answered me question, and articulated WHY we need to know the specs of YOUR computer, when none of us think it's important enough to post the specs of whatever computer we have in every single post and making posts tougher to read for everyone else for absolutely no reason. You're one of these people that yells really loudly but actually has nothing of substance to say, except mindless attacks.