I just starting to use Core Data for my iOS app and I am thinking about how use Core Data for my needs.

What are the features of my app:

  1. The user look for products proposed from a catalog.
  2. The user can add products into a basket.
  3. The user can customise each selected product.
  4. The user have to create an account to purchase the order.
  5. The user have to add recipients for his order.
  6. The user pay the order.

How I would persist the datas with Core Data:

  • If the user isn't logged on iCloud or on my RESTful API: Persist the datas on the device.

  • If the user is logged on iCloud but not on my RESTful API: Persist the datas on iCloud.

  • If the user is logged on my RESTful API: Persiste the datas on my back-end.


After reading some articles about Core Data, I quickly understood that it is really verbose and I will rewrite lot of similar code in my app.

After researches I found a wonderful article about libraries for Core Data by NSHipster and I am really interested by using Objective-Record library for my app. But one sentence on the NSHipster's article alerts me on the consequences of using such a library:

Using Core Data as an ORM necessarily limits the capabilities of Core Data and muddies its conceptual purity.

I would have more informations about the "limits the capabilities" of using a library inspired by Active Records. I wouldn't regret the choice of using Objective-Record library on my app if it can pose problems for the development of feature for me later.

Thanks !


The good point for me to use Core Data with a library inspired by Active Record is I have to do a lot of "requests" inside my app and this will allow me to write less code.

  • Can you look on RestKit (github.com/RestKit/RestKit). I think RestKit can accomplish your needs! And will not force you to create a lot of boilerplate code. – Voda Ion Dec 19 '14 at 17:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.