Hacker News new | ask | show | jobs
by zzzhao 4101 days ago
Congratulations. Anyone in the HN community have experience using Realm that they can share? Would love to hear actual experiences from folks here.
4 comments

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. :)

So the key advantages of realm over coredata are speed and correctness, and over sqlite you don't need an orm layer? Is that fair?
Yep! That's fair. :)
Hi. I'm using it for the dictionaries in my Custom keyboard for iOS - Type Nine[1], and for the small amount of settings the app has.

It basically provided everything i needed out of the box, and i have dictionaries with 250,000 - 400,000 words that returns BEGINSWITH queries sorted by most used words faster than anyone would be able to type. (below 20ms on an iPhone 5)

I had actually implemented everything in CoreData (sqlite) at first, but when i fell over Realm i gave myself a couple of hours to test it out, and haven't looked back since. It has a really small API surface, so if you're considering to use it I would definitely recommend you to try it out, it wouldn't take a long time to find out if what you need is available.

1) http://typenineapp.com

I've used it in a couple of small Android apps. Overall, I wouldn't recommend it (yet) for anything more than toy projects. The sibling post mentioned a few reasons why, but here's are another few:

No inheritance. No nested transactions. No RxJava support (due to threading issues with Realm). Many annoying random errors (for example, get a row then close the DB connection -> You can't use those results after. Although I believe that this is by design because Realm doesn't cache any data - it queries every time it's requested AFAIK).

It's definitely on the way to being an awesome asset, but it's not there yet!

Yeah we absolutely have a lot of work ahead of us (as mentioned in the post). And the issues you mention are tracked in https://github.com/realm/realm-java/issues. There you can also see that we got a lot more features we want to add than the few you mention :-) We strive to be very transparent about our limitations (http://realm.io/docs/java/0.80.0/#current-limitations) so that they at least don't surprise anyone.

We seriously love to get the feedback so we can prioritize the additional features our users desire the most.

That said, we are very encouraged to see that the current features satisfy a lot of "non-toy" apps as well and that many thousands developers are building new apps every week.

You can see some of them mentioned here: http://realm.io/users/, and at the end of that page is also some unedited interviews with developers.

/Brian from Realm