In addition to the reactive features that Realm offers, it also supports offline synchronization and works with a server component that offers fine grained acces control.
I played a bit, but there are 2 things that annoys me: the footprint is really huge, for iOS, Realm.dll has 103 MB, so it means my app will instantly have 100MB more!!!.
The second thing(even more important for me) is about the fact that all my storable objects have to be derived from RealmObject, so no POCO support. This is pretty important because I will need to carry Realm dependency everywhere I pass my objects.
Realm itself only adds less than 1 MB extra in your final app :-)
On Xamarin.iOS the Realm static libraries for all the iOS platforms and architectures we support are embedded inside the Realm.dll assembly. During build, Xamarin extracts the static libraries and links the app against them.
We should be more explicit about the size implications to avoid that chocking misunderstanding! We will update our FAQ.
Hey, Yavor on the Realm team here. A reactive database allows you to structure your code so that you "react" to changes in your data layer - you don't have to re-run queries to get updates, because Realm updates all your data objects to point to the newest version of your data. Check out the sample code in your blog post: https://realm.io/news/introducing-realm-xamarin
The core of Realm tracks writes across different threads and processes and that's how we know to update the result objects without rebuilding the query or rebinding the model objects. There is a PR to actually expose this as a high-level notifications API and we'll roll it out in our next Realm Xamarin release: https://github.com/realm/realm-dotnet/pull/502/commits/f4169.... Using that it will be possible to implement INotifyCollectionChanged and IObservable directly on top of Realm.
None of the effort in adding C# and Xamarin support distracted anyone from getting the core product to 1.0. We are an entirely separate team hired specifically for this project. If you follow the Java, Swift or Objective-C products you will have seen a steady set of releases in the last year. I can't comment on our closeness to 1.0 shipping.
I'd like to think that the C# team has also contributed by setting a high standard for API usability and ease of use but we're standing on the shoulders of the giants who wrote LINQ and Fody (thanks Simon Cropp).
In addition to the reactive features that Realm offers, it also supports offline synchronization and works with a server component that offers fine grained acces control.