[kotlin] Navigation 사용법

Android 앱에서 화면 간의 이동을 처리하는 Navigation은 사용자 경험을 향상시키고 코드를 더 효율적으로 관리할 수 있습니다. Kotlin으로 Navigation을 구현하는 방법을 알아보겠습니다.

먼저, build.gradle 파일에 Navigation Component를 추가합니다.

implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

nav_version은 사용하는 Navigation 버전에 맞게 설정합니다.

다음으로, NavGraph를 생성하여 앱 내에서 화면 간의 이동을 정의합니다.

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    app:startDestination="@id/firstFragment">
    <fragment
        android:id="@+id/firstFragment"
        android:name="com.example.FirstFragment"
        android:label="fragment_first"
        tools:layout="@layout/fragment_first" />
    <fragment
        android:id="@+id/secondFragment"
        android:name="com.example.SecondFragment"
        android:label="fragment_second"
        tools:layout="@layout/fragment_second" />
    <action
        android:id="@+id/action_firstFragment_to_secondFragment"
        app:destination="@id/secondFragment" />
</navigation>

NavGraph를 작성한 후, 이를 XML 파일로 저장하고 앱 리소스에 추가합니다.

Navigation을 사용할 화면에 Navigation Host를 추가합니다.

<fragment
    android:id="@+id/navHostFragment"
    android:name="androidx.navigation.fragment.NavHostFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:defaultNavHost="true"
    app:navGraph="@navigation/nav_graph" />

이벤트 처리

이제 Kotlin 코드에서 Navigation을 처리할 수 있습니다.

val navController = findNavController(R.id.navHostFragment)
button.setOnClickListener {
    navController.navigate(R.id.action_firstFragment_to_secondFragment)
}

위 예시에서는 버튼 클릭 시 action_firstFragment_to_secondFragment로 정의된 이벤트에 따라 두 번째 화면으로 이동합니다.

이렇게 Kotlin으로 Navigation을 구현할 수 있으며, 사용자 경험을 향상시키고 화면 간의 이동을 효율적으로 관리할 수 있습니다.

더 자세한 내용은 Android 공식 문서를 참고하시기 바랍니다.