#Realmってかっこ良さそう!なんそれ?編
普通、クラスで宣言された文字や数値はアプリ(画面)を開く度に初期化されます。
なので、アプリで特定のデータを保存しようと思ったら、データベースを使う必要があります。
データベースは、アプリを利用している時だけでなく、消した後も保存されるのです。
そのデータベースの一種が、Realmというわけです。
ちなみに、今回使うRealmはローカルデータといってアプリ内でデータを保存することができるのですが、アプリ自体をアンインストールしてしまったら、保存されたデータを使うことはできないのでそこだけは注意です。
#Realm使っちゃう編
早速使ってみます。今回は、本当にシンプルに文字を保存して、それを取り出すだけのシンプルな実装でいきます。データベースと言っても、箱みたいなもんですね。それと、正確さに欠けている部分アリの自信があるので、優しく指摘してくれると幸いです。それと、Fragmentでの実装すまぬ。
######使うための準備
//appの方ね
plugins {
id "kotlin-android"
id "kotlin-kapt"
//kotlin-androidの後に書くように!(だった気がする)
id "realm-android"
}
//projectの方のね
dependencies {
classpath "io.realm:realm-gradle-plugin:6.0.2"
}
#####Realm召喚
class MyApplication(): Application() {
override fun onCreate() {
super.onCreate()
//ここでRealmを召喚!
Realm.init(this)
//箱に入れる値の種類を増やしたり、型を変更したりするときに、色々面倒なので。
val realmConfigration = RealmConfiguration.Builder()
.deleteRealmMigrationNeeded()
.build()
Realm.setDefaultConfiguration(realmConfigration)
}
}
open class Text (
//Realmにtextを入れるよ!の意
@PrimaryKey var text: String = ""
): RealmObject()
class MyFragment: Fragment() {
private lateinit var realm: Realm
val kotlin : String = "小鳥ん"
//・・・・省略
//追加
lifecycleScope.launch(Dispatchers.IO) {
realm.beginTransaction()
realm.insert(Text(kotlin))
realm.commitTransaction()
realm.close()
//・・・・省略
//中身取り出し
val textBox = realm.where<Text>().findAll()?.last()?.text.toString()
}
}
#お詫び編
今回は、自作ポートフォリオで無理やりRealmを使おうという魂胆でしたが、やっぱりRealm使う必要ないわ――と思い、ただ折角実装したのでどこか勿体ない気がし、じゃぁ記事に残そう!と思い、書こうと思いました。
この記事を見てRealmを実装しよう!と試みても中々思った挙動通りにいかなくて、イライラかと思います。
自分自身、兎に角最低限なものをシンプルに書いて、誰でも簡単に実装できるようにと思いましたが、やっぱり難しいですね。
よく、リファレンス等を参照して実装するときに、思った通りに行かないこと多々あって、色々いじくった挙句やっと実装出来たりすることがあります。
その際、もっと分かりやすく書けや!と心の中で叫びます。
しかし、普遍的な実装手順を書く難しさって、書いてみて分かるものがあります。
他のネット上の記事は、皆分かりやすいです笑。
この記事より1000倍は分かりやすい記事達(最初から出せや!)