Bölge Kotlin 1.6.0
Realm Kotlin 1.6.0'ı Maven Central ve Gradle Plugin Portal'a yayınladık . Bu sürüm, Atlas İşlevlerini çağırma desteği, yeni RealmAny ve Decimal128 veri türleri, gömülü nesneler için geri bağlantılar, yazma ağırlıklı veritabanlarının boyutunu önemli ölçüde azaltan Çekirdek veritabanı güncellemeleri ve çok daha fazlasını içerir.
Atlas Fonksiyonları Desteği
Atlas Functions'ı doğrudan Kotlin SDK üzerinden çağırmak artık mümkün. functionsBu, sınıftaki yeni bir özellik aracılığıyla yapılır User. Giriş yaptıktan sonra kullanılabilir.
runBlocking {
val app = App("my-app-id")
val credentials = Credentials.usernamePassword("my-email", "my-password")
val user: User = app.login(credentials)
// Call a function configured on Atlas App Services
val response: String = user.functions.call("function-name", "foo", 42)
}
JSON nesneleri de kullanılarak hem girdi hem de çıktı olarak desteklenir BsonDocument.
runBlocking {
val user: User = getUser()
val inputObj = BsonDocument("param1" to BsonString("value1"), "param2" to BsonInt32(42))
val responseObj: BsonDocument = functions.call("foo", inputObj)
val name: BsonString = responseObj["name"]!!.asString()
val age: BsonInt32 = responseObj["age"]!!.asInt32()
}
RealmAny ve Decimal128 veri türleri
RealmAnyesnek bir şemaya sahip olan ve birkaç farklı tür içerebilen verileri modellemek için kullanılabilen bir veri türüdür. Boş değerler, Kotlin tipi sistem kullanılarak ifade edilir:
import io.realm.kotlin.types.RealmAny
class Person: RealmObject {
var mixed: RealmAny? = null // Must be marked with `?`
}
val obj: Person = realm.write {
copyToRealm(Person().apply {
mixed = RealmAny.create("stringValue")
})
}
when (obj.mixed?.type) {
RealmAny.Type.INT -> showInteger(obj.mixed.asInt())
RealmAny.Type.STRING -> showString(obj.mixed.asString())
null -> showNull()
else -> throw IllegalStateException()
}
import org.mongodb.kbson.Decimal128
// Usage in model classes
class Person: RealmObject {
var floatingPoint: Decimal128 = Decimal128("0.73e-7")
var list: RealmList<Decimal128> = realmListOf()
}
Realm Kotlin 1.6.0 ayrıca Realm Core veritabanını bir dizi iyileştirme getiren sürüm 13'e yükseltir:
- Realm, realm nesnelerinin farklı sürümleri kullanıldığında artık çok daha az bellek ve disk alanı kullanacak.
- Realm artık Realm dosyasını yalnızca etkin durumda açarken değil, kullanımdayken sürekli olarak izleyecek ve boyutunu küçültecektir
Configuration.compactOnLaunch. - OpenSSL, 1.1.1n'den 3.0.7'ye yükseltildi.
Realm'den nesneleri kopyala
copyFromRealm()Tüm Realm nesnelerine, listelerine, kümelerine ve sorgu sonuçlarına çağrılan bir uzantı işlevi eklendi. Bu, nesne içindeki tüm verilerin Realm'den belleğe kopyalanmasını mümkün kılar ve bağımsız bir kopya oluşturarak onu Realm yaşam döngüsünden ayırır.
class Person: RealmObject {
var name: String = ""
var children: RealmList<Person> = realmListOf()
}
val configuration = RealmConfiguration.create(schema = setOf(Person::class))
val realm = Realm.open(configuration)
val managedObj: Person = realm.writeBlocking {
copyToRealm(Person())
}
// Copy managed objects
val unmanagedObj = managedObj.copyFromRealm()
assertFalse(unmanagedObj.isManaged())
// Copy collections list RealmList and RealmSet
val copiedList: List<Person> = managedObj.children.copyFromRealm()
// Copy query results
val persons: List<Person> = realm.query<Person>().find().copyFromRealm()
Realm'de saklanan özellik adlarını yeniden eşlemeyi mümkün kılan yeni bir @PersistedNameaçıklama eklendi. Bu, platform deyimsel olmayan adlarla çalışmayı kolaylaştırır ve geçiş ihtiyacını azaltır. Veriler sorgulanırken hem orijinal hem de eşlenmiş adlar kullanılabilir.
class Person: RealmObject {
@PersistedName("_id")
var id = ObjectId()
}
// Both of these will work
val person1 = realm.query<Person>("_id = $0", getId()).first().find()
val person2 = realm.query<Person>("id = $0", getId()).first().find()
Realm Kotlin 1.6.0 ayrıca gömülü nesnelerde geri bağlantılarla çalışma, senkronize Realm'lerle çalışırken özel kullanıcı verileri için destek, Esnek Senkronizasyon realm'lerinin kopyalarını oluşturma, kimlik doğrulama işlevlerini kullanarak oturum açma, işlevleri kullanarak parolaları sıfırlama ve daha pek çok konuda iyileştirmeler getiriyor.
Okuduğunuz için teşekkürler. Şimdi devam edin ve Realm ile harika uygulamalar oluşturun! Her zaman olduğu gibi, Github ve Twitter'dayız .

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































