Hi! Tim from Realm here. Glad to hear that Realm's been working out well for you in place of Core Data. :)
In response to your drawbacks there:
* Definitely try out the Realm Mobile Platform. We're also looking at leveraging CloudKit to seamlessly authenticate all devices belonging to a user.
* Multi-process encryption wasn't possible until relatively recently (Issue #1845 on our newly open-sourced realm-core project!), so we'll definitely be looking at it from now. Please do thumbs-up any of our GitHub issues for features that you would like.
* We've published articles on how the Realm Core works in the past, but now that it's open-source, you can go and see the code for yourself!
* It's possible to generate compacted copies of Realm files, so you can implement this functionality yourself if you need it. We've had long discussions about whether this should be an automatic feature, but we feel in most cases it would be premature optimization.
Disclaimer: I presently work for Realm. However, what I've written here is based on the opinion I formed in the time I spent using the product before I joined the company.
---
I've been working on a comic reader app for iOS for about 3 years (http://icomics.co). Up until last year, I was using Core Data to persist both metadata information for each comic, as well as per-page caching information to disk.
Unfortunately, Core Data hit a breaking point with me (I encountered a rather catastrophic data corruption issue when trying to get it to perform automatic schema migrations :( ) and, initially as a feasibility test, I decided to try migrating the whole solution over to using Realm. If it wasn't up to the task, my backup plan was going to have been moving to raw SQLite (and all the boilerplate code that that would have required).
Suffice it to say, I was more than impressed with Realm. Since it more or less followed the same objects model as Core Data, porting my apps entire data implementation over to it took less than a single evening of work. The API was ridiculously easy to learn, and I found it much easier to pass data between threads than what I was needing to do to achieve the same result in Core Data. It was also VERY satisfying deleting giant swaths of Core Data code. ;)
I was so impressed with the whole process that after that, I held a talk on it at a local iOS meetup in my city. Afterwards, I uploaded the talk as a video to YouTube (https://www.youtube.com/watch?v=cGptaE2_WEQ) and it was thanks to this video that Realm found me, and how I joined the company. :)
Realm's been in production use in my app for 5 months now, and I can safely say it's performed above and beyond my expectations. For iOS projects, I definitely recommend it. :)
In response to your drawbacks there: * Definitely try out the Realm Mobile Platform. We're also looking at leveraging CloudKit to seamlessly authenticate all devices belonging to a user. * Multi-process encryption wasn't possible until relatively recently (Issue #1845 on our newly open-sourced realm-core project!), so we'll definitely be looking at it from now. Please do thumbs-up any of our GitHub issues for features that you would like. * We've published articles on how the Realm Core works in the past, but now that it's open-source, you can go and see the code for yourself! * It's possible to generate compacted copies of Realm files, so you can implement this functionality yourself if you need it. We've had long discussions about whether this should be an automatic feature, but we feel in most cases it would be premature optimization.