Realm Kotlin 0.6.0
We just released v0.6.0 of Realm Kotlin. It contains support for Kotlin/JVM, indexed fields as well as a number of bug fixes.
Kotlin/JVM support
The new Realm Kotlin SDK was designed from its inception to support Multiplatform. So far, we’ve been focusing on KMM targets i.e Android and iOS but there was a push from the community to add JVM support, this is now possible using 0.6.0 by enabling the following DSL into your project:
kotlin { jvm() // other targets …}
Now your app can target:
Android, iOS, macOS and JVM (Linux since Centos 7, macOS x86_64 and Windows 8.1 64).
What to build with Kotlin/JVM?
- You can build desktop applications using Compose Desktop (see examples: MultiplatformDemo and FantasyPremierLeague).
- You can build a classic Java console application (see JVMConsole).
- You can run your Android tests on JVM (note there’s a current issue on IntelliJ where the execution of Android tests from the common source-set is not possible, see/upvote :) https://youtrack.jetbrains.com/issue/KTIJ-15152, alternatively you can still run them as a Gradle task).
Where is it installed?
The native library dependency is extracted from the cinterop-jar and installed into a default location on your machine:
- Linux:
$HOME/.cache/io.realm.kotlin/
- macOS:
$HOME/Library/Caches/io.realm.kotlin/
- Windows:
%localappdata%\io-realm-kotlin\
Support Indexed fields
To index a field, use the @Index annotation. Like primary keys, this makes writes slightly slower, but makes reads faster. It’s best to only add indexes when you’re optimizing the read performance for specific situations.
Abstracted public API into interfaces
If you tried out the previous version, you will notice that we did an internal refactoring of the project in order to make public APIs consumable via interfaces instead of classes (ex: Realm and RealmConfiguration), this should increase decoupling and make mocking and testability easier for developers.
🎉 Thanks for reading. Now go forth and build amazing apps with Realm! As always, we’re around on GitHub, Twitter and #realm channel on the official Kotlin Slack.
See the full changelog for all the details.