Realm Xamarin v10.4.0 Release Notes
Release Date: 2021-08-31 // over 2 years ago-
๐ Fixed
- ๐ Fixed an issue that would cause
Logger.Default
on Unity to always revert toDebug.Log
, even when a custom logger was set. (Issue #2481) - ๐ Fixed an issue where
Logger.Console
on Unity would still useConsole.WriteLine
instead ofDebug.Log
. (Issue #2481) - โ Added serialization annotations to RealmObjectBase to prevent Newtonsoft.Json and similar serializers from attempting to serialize the base properties. (Issue #2579)
- ๐ Fixed an issue that would cause an
InvalidOperationException
when removing an element from an UI-bound collection in WPF. (Issue #1903) - โฌ๏ธ User profile now correctly persists between runs. (Core upgrade)
- ๐ Fixed a crash when delivering notifications over a nested hierarchy of lists of RealmValue that contain RealmObject inheritors. (Core upgrade)
- ๐ Fixed a crash when an object which is linked to by a RealmValue property is invalidated (sync only). (Core upgrade)
- ๐ Fixes prior_size history corruption when replacing an embedded object in a list. (Core upgrade)
- ๐ Fixed an assertion failure in the sync client when applying an AddColumn instruction for a RealmValue property when that property already exists locally. (Core upgrade)
- ๐ Fixed an
Invalid data type
assertion failure in the sync client when applying anAddColumn
instruction for aRealmValue
property when that property already exists locally. (Core upgrade)
โจ Enhancements
- โ Added two extension methods on
IList
to get anIQueryable
collection wrapping the list:list.AsRealmQueryable()
allows you to get aIQueryable<T>
fromIList<T>
that can be then treated as a regular queryable collection and filtered/ordered with LINQ orFilter(string)
.list.Filter(query, arguments)
will filter the list and return the filtered collection. It is roughly equivalent tolist.AsRealmQueryable().Filter(query, arguments)
.
The resulting queryable collection will behave identically to the results obtained by calling
realm.All<T>()
, i.e. it will emit notifications when it changes and automatically update itself. (Issue #1499)- โ Added a cache for the Realm schema. This will speed up
Realm.GetInstance
invocations whereRealmConfiguration.ObjectClasses
is explicitly set. The speed gains will depend on the number and complexity of your model classes. A reference benchmark that tests a schema containing all valid Realm property types showed a 25% speed increase of Realm.GetInstance. (Issue #2194) - ๐ Improve performance of creating collection notifiers for Realms with a complex schema. In the SDKs this means that the first run of a synchronous query, first call to subscribe for notifications will do significantly less work on the calling thread.
- ๐ Improve performance of calculating changesets for notifications, particularly for deeply nested object graphs and objects which have List or Set properties with small numbers of objects in the collection.
- โฌ๏ธ Query parser now accepts
BETWEEN
operator. Can be used likerealm.All<Person>().Filter("Age BETWEEN {20, 60}")
which means "'Age' must be in the open interval ]20;60[". (Core upgrade)
Compatibility
- Realm Studio: 11.0.0 or later.
Internal
- Using Core 11.3.1.
- Removed the RealmStates dictionary that used to hold a threadlocal dictionary of all the states for the opened Realms. It was only used for detecting open Realms during deletion and that is now handled by the native
delete_realm_files
method. (PR #2251) - ๐ Stopped sending analytics to mixpanel.
- Started uploading benchmark results to MongoDB Charts. (Issue #2226)
- โ Removed the dedicated benchmark workflows from GHA. (Issue #2562)
- ๐ Use the Win81 SDK when building the Windows wrappers on Github Actions. (Issue #2530)
- โ Added CodeQL workflow. (Issue #2155)
- ๐ฆ Started tracking package and wrapper sizes over time. (Issue #2225)
- โ Removed the
[Serializable]
attribute from RealmObjectBase asBinarySerializer
is now obsolete. (PR #2578) - โ Added code coverage job to Github Actions. (PR #2581)
- โ Added CI tests running on Windows 8.1 . (PR #2580)
- ๐ Fixed an issue that would cause