1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Android]Realmってなんか名前かっこいいから、良く分からないけども使ってみる

Posted at

#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倍は分かりやすい記事達(最初から出せや!)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?