目次

04.データモジュールの作成

発車予定表示機能のデータモジュールを作成します。

データの永続化はRoomで行います。

Roomの導入

バージョンカタログファイルにRoomのバージョン定義を追記します。

[versions]
   :
room = "2.8.2"                      # https://mvnrepository.com/artifact/androidx.room/room-runtime

[libraries]
   :
room-runtime  = { module = "androidx.room:room-runtime",  version.ref = "room" }
room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
room-ktx      = { module = "androidx.room:room-ktx",      version.ref = "room" }

3行目[versions]
コメント部分のURLを参照して、最新安定バージョンを指定します。
7行目~9行目[libraries]
Roomライブラリモジュールとバージョンを関連付けします。

追記後、『Sync Now』で内容をプロジェクトに反映させます。

モジュールの作成

uiモジュールの作成と同様に、トップディレクトリで:feature:depart:dataを作成し、javaディレクトリ名の変更、および、サンプルテストクラスの削除を行います。

LibraryConfigurePluginの適用

:feature:depart:dataモジュールのbuild.gradle.ktsLibraryConfigurePluginを適用します。

plugins {
  alias(libs.plugins.android.library)
  alias(libs.plugins.kotlin.android)
  id("build.logic.library.configure")
}

android {
  namespace = "jp.co.progress_llc.portal.feature.depart.data"
  compileSdk {
    version = release(36)
  }

  defaultConfig {
    minSdk = 28

    testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    consumerProguardFiles("consumer-rules.pro")
  }

  buildTypes {
    release {
      isMinifyEnabled = false
      proguardFiles(
        getDefaultProguardFile("proguard-android-optimize.txt"),
        "proguard-rules.pro"
      )
    }
  }
  compileOptions {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
  }
  kotlinOptions {
    jvmTarget = "11"
  }
}

dependencies {

  implementation(libs.androidx.core.ktx)
  implementation(libs.androidx.appcompat)
  implementation(libs.material)
  testImplementation(libs.junit)
  androidTestImplementation(libs.androidx.junit)
  androidTestImplementation(libs.androidx.espresso.core)
  implementation(libs.room.runtime)
  implementation(libs.room.ktx)
  ksp(libs.room.compiler)
  implementation(libs.hilt.android)
  ksp(libs.hilt.compiler)

2行目~3行目、9行目~15行目、17行目~35行目、40行目~42行目
ビルドプラグインで定義しているので削除します。
3行目
/build-logic/build.gradle.ktsで定義したビルドプラグインのidを指定します。
16行目、43行目~45行目
テストを行うときまで削除します。
46行目~47行目
Roomの依存関係を追加します。
49行目~50行目
Hiltの依存関係を追加します。

適用後、『Sync Now』で内容をプロジェクトに反映させます。