Live data from Hacker News

Frustrated with iCloud, Apple’s developer community speaks up

arstechnica.com

71–80 of 192 posts

Re: Frustrated with iCloud, Apple’s developer community speaks up

#71

I've worked with iCloud in conjunction with Core Data. It's as broken as the article describes, and in fact has gotten worse over time. No one really fully knows WTF is going with iCloud - documentation is basically nonexistent, support unavailable, implementation broken in trivial ways, and error messages inscrutable. I was at an Mac/iOS conference recently where the Core Data iCloud talk morphed from a standard tal…

After seeing the fate of mac.com and me.com I didn't even consider using iCloud for 'cloud storage'/sync for our Mac app. (We went with Dropbox). Apple has a long story of half-finished features they try to force onto developers and users. And if that doesn't work the technology gets killed off. The only downside of not using shiny but questionable new features is that your app won't get featured in the App Store.

Dropbox only does document-based syncing, which iCloud does correctly.

What technology are you referring to that Apple tried to force on developers and then killed off? The only one I can recall is garbage collection, which was never forced.

Re: Frustrated with iCloud, Apple’s developer community speaks up

#72

Earlier quoted context omitted.

If trying to juggle more than one apple ID in the same storefront is breaking the camel's back, she's in for a world of soul crushing disappointment with any less UX polished product -- which is pretty much all the rest of them.

You should qualify that statement, while no system is perfect, Apple seems to be the only one with a fundamentally broken cloud model.

I don't need to qualify it at all. A wife rejecting the iPhone 5 over AppleID frustration is going to have to use something else. There are things that spec higher, are more hackable, or more "open", etc., but nothing with the iPhone's level of wholistic user experience polish.

So if the corner case of swapping user IDs for purchased items is enough to dump a phone, she's going to be desperately unhappy with the other alternatives out there which currently have countless more normal user UX annoyances.

Re: Frustrated with iCloud, Apple’s developer community speaks up

#73
post #30

It might be nice if Apple's legendary attention to detail extended beyond the logo. [1] 1 - http://www.tuaw.com/2011/06/24/the-icloud-logo-and-the-golde...

And that's the problem in a nutshell. If it's consumer-facing it's years in development and polished. If it's for us lowly developers, well don't hold your breath.

The in-joke we had as Mac developers many years ago was that Macs are very user friendly. The problem is that developers aren't users.

Re: Frustrated with iCloud, Apple’s developer community speaks up

#74
post #60
post #46

I think the reason developers (myself included) try, and re-try to make it work (Coredata + iCloud), despite all the bad experiences and bad stories is that everybody would like badly that it worked. Because if it worked it would be awesome, when I test it and that it works it's really really nice, but I lost confidence in the overall reliability so in the end I never take the risk to ship it.

That's like staying with an abusive spouse because he bought you a nice dinner once.

Except that fixing abusive spouse is nearly impossible, but fixing buggy service is possible (though it may be hard in this case).

Re: Frustrated with iCloud, Apple’s developer community speaks up

#76

Frustrated with just iCloud? No I'd go further. I'm frustrated with the whole iOS platform. It's like writing an app in the 1990s. Sure it works. But it's painful as hell. So much so that I've decided this latest project on iOS was probably my last unless something big changes. And just for the record I have a few flagship apps in the app store with millions of active users and I've worked quite extensively with the…

    And just for the record I have a few flagship apps in the app store with millions of active users
Source please.

     because your toolset is from yesterday and their's is from tomorrow
This is why I don't believe your first point without sources to verify. Eclipse+Android SDK is hardly from tomorrow. Windows 8 possibly. What else does that leave? Nada.

Re: Frustrated with iCloud, Apple’s developer community speaks up

#77
post #36

I've worked with iCloud in conjunction with Core Data. It's as broken as the article describes, and in fact has gotten worse over time. No one really fully knows WTF is going with iCloud - documentation is basically nonexistent, support unavailable, implementation broken in trivial ways, and error messages inscrutable. I was at an Mac/iOS conference recently where the Core Data iCloud talk morphed from a standard tal…

I just hope people can differentiate between Core Data and iCloud from both your comment and the article.Core Data isn't broken. It might be somewhat magical, but it's not broken.

I think there's a good argument for it being broken:

1) Core Data objects are not NSObject objects. You can't treat them remotely like normal objects: https://developer.apple.com/library/mac/documentation/Cocoa/...

2) Core Data requires making your model mutable, and spreading dependencies on Core Data's abnormal objects throughout your entire code base.

3) Since the abnormal objects are spread throughout your code, and they're tied to non-thread-safe NSManagedObjectContexts, concurrency becomes rather difficult. You have to deal with multiple managed object contexts becoming out-of-sync across threads. Most people just give up and perform expensive operations like -save on the main thread.

4) Core Data merges the concepts of your on-disk model with your in-memory model, despite the fact that the two problem domains have very different requirements in terms of API design, data longevity, relational design, etc. This leads to code that is neither a clean in-memory model, nor a clean on-disk model.

5) Since Core Data objects are abnormal objects, one must produce a considerable amount of boilerplate just to define new model objects. What time you save upfront using a GUI to design your original model, you spend 10-fold in maintaining the code to support it, and in being handicapped by the contraints Core Data places on your code.

6) NSPredicate is awful. It's a brain-dead query language that often make it impossible to cleanly normalize your data store. Aggregate operations are expensive and often require O(n) cost, the query language is poorly documented and poorly specified.

Core Data is a very poorly fit abstraction, but it probably works well enough for simple use-cases. Once you move into concurrency, complex/large models, aggregate operations/projections across your data, or have to deal with it failing, it falls over.

After using it myself for a large project and struggling with all of these issues (and more), and watching another team do the same on their own project, I'd never make use of it again. SQL (via sqlite) is a far better abstraction for managing on-disk data, especially when doing so in a highly concurrent application where one can rely on SQLite's transaction support.

Re: Frustrated with iCloud, Apple’s developer community speaks up

#78

Earlier quoted context omitted.

You should qualify that statement, while no system is perfect, Apple seems to be the only one with a fundamentally broken cloud model.

I don't need to qualify it at all. A wife rejecting the iPhone 5 over AppleID frustration is going to have to use something else. There are things that spec higher, are more hackable, or more "open", etc., but nothing with the iPhone's level of wholistic user experience polish. So if the corner case of swapping user IDs for purchased items is enough to dump a phone, she's going to be desperately unhappy with the othe…

You seem to have bought into the marketing, as an owner of a Nexus 4 I am unfamiliar with the "UX annoyances" that you are referring to. Could you be specific?

Re: Frustrated with iCloud, Apple’s developer community speaks up

#79
post #70

I have been surprised at the relative lack of interest from developers about first class syncing support, when mobile blew up I expected a flurry if libraries and tools that I could use to have my app work offline and sync data wherever I am. Sometime last year I gave up waiting and started working on PouchDB ( http://pouchdb.com/ ), its based on CouchDB's syncing model (and syncs with CouchDB) and works anywhere tha…

I'm very interested in this, in fact I'm planning on rolling an iOS based couchDB solution for a company sometime this summer. Could you comment on some key differences between pouchDB and touchDB? Did you also try to simply run ARM compiled couchDB on iOS? If yes, how was the performance there? I've read that initializing takes about 10 seconds - I'd be willing to swallow that if the subsequent interactions are smoo…

The key differences between touchDB and pouchDB is that touch is written for ios and pouch is written for web browsers, if you are building for ios and not using phonegap then I suggest using touchdb. It is also the more mature of the 2 but hopefully we arent too far behind with pouch.

I used to work for Couchbase on the arm compiled couchdb mobile versions, mainly android but either way I wouldnt hugely recommend using them, they always worked against the grain of the platform, never had great performance and due to those reasons they didnt really get widely adopted and therefore I wouldnt trust their stability across a variety of platforms and use cases.

The problems with arm compiled couchdb is the reason TouchDB was made, and similiarly with PouchDB / TouchDB for android and CouchDB I hope we get to the point were there is an out of the box sync solution that works great on every platform, it doesnt feel too far away.

For large initial datasets I have tried taking a dump of the database and importing it on first load, it worked however replication has been more than sufficient for my use cases right now. Once pouch has stabilised and released there are a lot of low hanging fruit that can be done to optimise replication (and in particular for first load).

Re: Frustrated with iCloud, Apple’s developer community speaks up

#80

Anyone using TouchDB as an alternative to iCloud core data syncing? https://github.com/couchbaselabs/TouchDB-iOS Of course, you would need to support some form of CouchDB server for this to work, deal with authentication, etc.

In my last startup, I used TouchDB and found that 95% of the time, it worked great, and 5% of the time, the app would grind to a screeching halt.

Reading documents from the local TouchDB store would block the main thread until the upstream CouchDB server would reply with the document's current revision, even if the local store already has an existing version of the document. Using GCD to wrap around these document transactions was still clunky at best and resulted in a poor overall UX.

YMMV, perhaps these issues could have been worked around if I had had a more realistic deadline and stayed in touch with the community. The maintainer, Jens Alfke, is very active.

Post reply on HN