:feature:depart:homeモジュールにnavigationディレクトリ(パッケージ)を追加し、直下にホーム画面のNavGraphとしてDepartHomeNavGraph.ktを作成します。
package jp.co.progress_llc.portal.feature.depart.home.navigation
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import jp.co.progress_llc.portal.feature.depart.home.presentation.DepartHomeScreen
const val DEPART_HOME = "depart_home"
fun NavGraphBuilder.departHomeNavGraph() {
composable(DEPART_HOME) {
DepartHomeScreen()
}
}
:feature:depart(窓口)モジュールのbuild.gradle.ktsにNavGraphの作成に必要な依存を追記します。
plugins {
:
alias(libs.plugins.hilt)
}
dependencies {
implementation(libs.hilt.navigation.compose)
implementation(libs.hilt.android)
implementation(project(":feature:depart:home"))
ksp(libs.hilt.compiler)
}
追記後、『Sync Now』で内容をプロジェクトに反映させます。
:feature:depart(窓口)モジュールにnavigationディレクトリ(パッケージ)を追加し、直下にDepartNavGraph.ktを作成します。
package jp.co.progress_llc.portal.feature.depart.navigation
import androidx.navigation.NavGraphBuilder
import androidx.navigation.navigation
import jp.co.progress_llc.portal.feature.depart.home.navigation.DEPART_HOME
import jp.co.progress_llc.portal.feature.depart.home.navigation.departHomeNavGraph
const val DEPART_ROOT = "depart_root"
fun NavGraphBuilder.departNavGraph() {
navigation(
startDestination = DEPART_HOME,
route = DEPART_ROOT
) {
departHomeNavGraph()
}
}
:feature:departモジュールにdiディレクトリ(パッケージ)を追加し、直下にDepartNavGraphModule.ktを作成します。
package jp.co.progress_llc.portal.feature.depart.di
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import dagger.multibindings.IntoSet
import androidx.navigation.NavGraphBuilder
import jp.co.progress_llc.portal.feature.depart.navigation.departNavGraph
@Module
@InstallIn(SingletonComponent::class)
object DepartNavGraphModule {
@Provides
@IntoSet
fun provideDepartNavGraph(): NavGraphBuilder.() -> Unit = {
departNavGraph()
}
}
:appモジュールのbuild.gradle.ktsに発車予定表示機能への依存を追記します。
:
dependencies {
:
implementation(project(":feature:depart"))
:
}
追記後、『Sync Now』で内容をプロジェクトに反映させます。
発車予定表機能はホーム画面の列車アイコンから遷移してきますので、:appモジュールのAppHomeScreen.ktにナビゲーション(画面遷移)を追記します。
:
import androidx.navigation.NavController
import androidx.navigation.compose.rememberNavController
:
import jp.co.progress_llc.portal.core.navigation.LocalNavController
import jp.co.progress_llc.portal.feature.depart.navigation.DEPART_ROOT
:
fun AppHomeScreen () {
fun AppHomeScreen(
navController: NavController = LocalNavController.current
) {
:
IconButton(
onClick = { },
onClick = { navController.navigate(DEPART_ROOT) },
:
fun AppHomeScreenPreview() {
AppTheme {
AppHomeScreen()
AppHomeScreen(navController = rememberNavController())
}
}
エミュレーターでアプリケーションを実行して、画面遷移で発車予定表示機能のホーム画面が表示されることを確認します。