こんにちは。
ゆーさんと申します。
当方20代後半で未経験転職をして1年ほど経ちました駆け出し中の駆け出しエンジニアです。
婚活中です(どうでもいい)
今までは技術のキャッチアップでアップアップしていて頭に知識をねじ込んで何とかやっていくので精一杯でしたが、ある程度余裕も出てきたのでそろそろ技術記事を書きたい!!!!!!と考え本記事作成に至りました。
今回のお題はkotlinで開発するアンドロイドアプリケーションでのDBセットアップについて書こうと思います。
前提条件
- kotlin kotlinc-jvm 1.9.21 (JRE 17.0.9+9)
-
jdk openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment Temurin-17.0.9+9 (build 17.0.9+9)
OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (build 17.0.9+9, mixed mode) - [x]gradle 8.4
- [x]realm 1.9.0
今回やること
- kotlinで開発するAndroidアプリケーションでRealmをセットアップする。
- AndroidStudioで立ち上げた出来合いのプロジェクトにそのままrealmの依存関係を書き込んでもビルドできなかったので修正を加える。
Realmとは
モバイルデバイス上で動作する軽量で高速なローカルデータベースが含まれています。これにより、アプリはインターネット接続がない場合でもデータの読み書きが可能となり、オフラインファーストのアプリケーション開発が容易にな
るというモバイルアプリケーション開発では重宝されているDBサービス
ディレクトリ構造
以下のようなディレクトリ構造になっている。

今回設定していくのは以下のファイルたち
- build.gradle.kts(アプリケーションレベル)
- build.gradle.kts(プロジェクトレベル)
- gradle-wrapper.properties
- gradle.xml
- kotlinc.xml
今回はAndroidStudioで立ち上げたプロジェクトにそのままrealmの設定を書き込んだら当然動かず依存関係やプラグインの 設定が必要だったのでサクッとどのような変更を行なったのか書いていきます。
build.gradleの設定
アプリレベル(APPディレクトリ)とプロジェクトレベル(ルートディレクトリ)2つあって紛らわしいのでお気をつけ下さい、、、
こちらの両ファイルで変更したのは"com.android.application"
のバージョンです。8.0だとエラーが出たのでjdk17とkotlin1.9.0に合わせたgradleのバージョンに変更します。
その後realmをプラグインに追加します。
アプリレベル
gradle.wrapper.propertiesの設定

gradle.xmlの設定

Realmの初期化クラスを作成
最後にRealmインスタンスがアプリケーションのどこからでもアクセス可能にするため、アプリケーションの起動時にデータベース操作のパフォーマンスが最適化させるため等に必要な初期化クラスを用意します。
これはMainActivity同階層に作成します。
今回はMyApplicationとします。
MyApplication
上記の設定を行い、
./gradlew clean
./gradlew build
コマンドを行えば正常にビルドが成功するはずです。

以上がkotlinで開発するプロジェクトへのrealmセットアップ方法でした。
闘の筆者も数日前からkotlin、realmを触りだしたので内容等不備がありましたらご指摘いただけますと幸いです。 モバイルアプリ開発初心者の皆様、一緒に頑張って行きましょ〜
では。