[kotlin] 코틀린을 사용하여 Android Jetpack의 Navigation 구성 요소를 적용하는 방법은?

Android 앱에서 화면 간 전환 및 탐색을 관리하는 것은 매우 중요합니다. Android Jetpack의 Navigation 구성 요소는 이러한 작업을 더 쉽게 만들어주는 라이브러리입니다. 이 라이브러리를 사용하면 화면 간 전환, 깊은 링크, 백 스택 관리 및 애니메이션 효과 등을 쉽게 구현할 수 있습니다.

먼저, build.gradle 파일에 다음 코드를 추가하여 Navigation 구성 요소를 프로젝트에 추가합니다.

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

여기서 $nav_version은 사용하려는 Navigation 구성 요소 라이브러리의 버전을 나타냅니다.

NavGraph는 앱의 탐색 구조를 정의하는 데 사용됩니다. res/navigation 디렉토리에 새로운 XML 파일을 생성하여 NavGraph를 정의합니다.

<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"
    android:id="@+id/nav_graph"
    app:startDestination="@id/firstFragment">

    <fragment
        android:id="@+id/firstFragment"
        android:name="com.example.myapp.FirstFragment"
        android:label="fragment_first"
        tools:layout="@layout/fragment_first">

        <action
            android:id="@+id/action_firstFragment_to_secondFragment"
            app:destination="@id/secondFragment" />

    </fragment>

    <fragment
        android:id="@+id/secondFragment"
        android:name="com.example.myapp.SecondFragment"
        android:label="fragment_second"
        tools:layout="@layout/fragment_second" />

</navigation>

NavHostFragment를 추가하여 NavGraph와 연결하고 화면에 표시합니다.

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

여기서 nav_graph는 이전에 정의한 NavGraph 파일의 이름을 나타냅니다.

ViewModel 생성

다음으로, 화면 간 데이터 교환 및 상태 관리를 위해 ViewModel을 생성합니다.

class MyViewModel : ViewModel() {
    // ViewModel 코드 작성
}

코틀린 코드에서 Navigation 사용

마지막으로, Kotlin 코드에서 Navigation 구성 요소를 사용하여 화면 간 전환을 처리할 수 있습니다.

val navController = findNavController(R.id.nav_host_fragment)
navController.navigate(R.id.action_firstFragment_to_secondFragment)

Navigation 구성 요소를 사용하여 쉽게 Android 앱의 탐색을 관리할 수 있습니다. 이를 통해 화면 간 전환 로직을 보다 간단하게 작성할 수 있으며, 엄격한 백 스택 및 깊은 링크 관리 등의 고급 기능을 더 쉽게 구현할 수 있습니다. Kotlin을 사용하여 Android 앱을 개발할 때는 Navigation 구성 요소를 적극적으로 활용하여 보다 효율적인 앱을 구축할 수 있습니다.

더 자세한 내용은 공식 Android 개발자 사이트를 참고하세요.