kotlinでRealmを利用【初期設定】

アプリ開発にあたり、モバイルアプリに適した軽量な

Realmというデータベースを利用することにしました。

公式ドキュメント(https://realm.io/docs)はこちらになります。

見ていただけたらわかりますがkotlinの書き方が載っていません。

Javaとほぼ同じだし、コード補完もあるから問題ないだろうという感じですが

できればあってほしかったなと思います笑

Realmの実装の手順になりますが、まずRealmを利用するのに必要な設定から始めます。

まず必要な設定は

・GradleにRealmのプラグイン追加する。(二つのファイルを編集)

です。

まず build.gradle (Project: ×××)ファイルに下記の一文を追加します。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
    //省略
        classpath "io.realm:realm-gradle-plugin:5.4.1" //これを追加
    }
}

5.4.1は現在の最新バージョンになります。

それからbuild.gradle(Modlue: app)ファイルには下記の一文を追加します。

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: "realm-android" // これを追加(com.androidの後である必要があります)

以上でRealmを使ったコードがビルドできるように設定が完了しました。

ちなみにbuild.gradleファイルを編集した後は、それを反映するために

表示されている画面上部の薄い黄色のバーの右側の「Sync now」をクリックして

gradleをリフレッシュしてやる必要があります。

ではリフレッシュも終えたら実際にコ-ド上で利用するために

もう少し準備を行います。

Realmを使用する場合、アプリケーションを起動する際に

Realmの設定(初期化)が実行されるようにする必要があるのでその設定です。

具体的にいえばRealmクラスのinitメソッドが一回だけ呼ばれないといけません。

そのためにアプリが起動したときに呼ばれるクラスを自分で作ります。

(MainActivity等にも書けますがRealmの初期化の処理は別で分けて作るのが良さそうです。)

今回私はBoardというテーブルを作ったので、とりあえず

BoardContentApplicationという名前のクラスファイルを作成しました。

(Applicationクラスを継承するクラスとなるので、

Applicationという名前を語尾に付けるのがわかりやすいです。)

クラスファイルの作り方は

左のフォルダツリーの場所で右クリックをして以下のように作成します。

KotlinFile/Classを押して

追加するのはmain\javaのところなのでここを選んでOK

名前を入力して作成します。

そして作成されたファイルに以下のように記述します。

class BoardContentApplication : Application(){ 
    override fun onCreate() {
        super.onCreate()

        Realm.init(this) //設定(初期化)

    }
}

Applicationクラスを継承しonCreateメソッドをオーバーライドします。

その中で書いた処理が、アプリ起動時に行われるようになるので、このonCreateメソッド内に

Realm.init(this)と書きます。

それから忘れずに AndroidManifest.xml ファイルに以下のように記述します。

<application
  android:name=".BoardContentApplication" //これを追加
 android:allowBackup="true"
  // 省略
</application>

こうすることでアプリ起動時にBoardContentApplicationクラスのonCreateメソッドも

実行されるようになりました。

これでRealmを利用する準備は整いました!

あとはテーブルを作り、いつものようにCRUDを実装していきます。

実際にデータを作成していくのはこちらの記事で!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする