10.発車予定モジュールの作成(1)

発車予定の表示機能を作成します。

:appモジュール側に必要な機能のみを公開する窓口モジュールを作成します。
開発の独立性が向上し、併せて保守性も向上するというメリットがあります。

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

LibraryConfigurePluginの適用

モジュールのbuild.gradle.ktsLibraryConfigurePluginを適用します。
:appからの画面遷移がありますので、Compose Navigationへの依存を行います。

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

android {
  namespace = "jp.co.progress_llc.portal.feature.depart"
  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"
  }
  buildFeatures {
    compose = true
  }
}

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.navigation.compose)
}

2行目~3行目、10行目~16行目、18行目~33行目、41行目~43行目
ビルドプラグインで定義しているので削除します。
3行目
/build-logic/build.gradle.ktsで定義したビルドプラグインのidを指定します。
4行目
Jetpack Composeのプラグインを追加指定します。
17行目、44行目~46行目
:feature:departモジュールではテストを行わないため削除します。
34行目~36行目
Jetpack Composeを有効にします。
47行目
Compose Navigationの依存関係を参照します。

適用後、『同期アイコン』で内容をプロジェクトに反映させます。