--- a/gradle/libs.versions.toml	Sun Apr 27 16:24:34 2025 -0400
+++ b/gradle/libs.versions.toml	Sun Apr 27 16:28:55 2025 -0400
@@ -34,7 +34,6 @@
 androidx-compose-bom = "2025.04.01"
 androidx-lifecycle = "2.8.7"
 org-jetbrains-androidx-lifecycle = "2.9.0-alpha07"
-org-jetbrains-androidx-core-uri = "1.1.0-alpha03"
 org-jetbrains-androidx-navigation = "2.9.0-alpha17"
 org-jetbrains-androidx-compose-material3-adaptive-navigation = "1.1.0-rc01"
 org-jetbrains-compose-material-icons-core = "1.7.3"
@@ -81,8 +80,6 @@
 
 kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
 
-org-jetbrains-androidx-core-uri = { module = "org.jetbrains.androidx.core:core-uri", version.ref = "org-jetbrains-androidx-core-uri" }
-
 
 [plugins]
 com-android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
--- a/ui/material3/build.gradle.kts	Sun Apr 27 16:24:34 2025 -0400
+++ b/ui/material3/build.gradle.kts	Sun Apr 27 16:28:55 2025 -0400
@@ -26,6 +26,7 @@
     kotlin("multiplatform")
     alias(libs.plugins.org.jetbrains.kotlin.compose.compiler)
     alias(libs.plugins.org.jetbrains.compose.multiplatform)
+    alias(libs.plugins.org.jetbrains.kotlinx.serialization)
     id("com.geekorum.build.source-license-checker")
     `maven-publish`
 }
@@ -62,9 +63,9 @@
             implementation(compose.components.resources)
             implementation(compose.components.uiToolingPreview)
             implementation(libs.org.jetbrains.androidx.navigation.compose)
-            implementation(libs.org.jetbrains.androidx.core.uri)
             implementation(libs.org.jetbrains.androidx.compose.material3.adaptive.navigation)
             implementation(libs.org.jetbrains.compose.ui.backhandler)
+            implementation(libs.org.jetbrains.androidx.lifecycle.viewmodel.compose)
         }
 
         androidMain.dependencies {
--- a/ui/material3/src/commonMain/kotlin/com/geekorum/aboutoss/ui/material3/OpenSourceDependenciesNavHost.kt	Sun Apr 27 16:24:34 2025 -0400
+++ b/ui/material3/src/commonMain/kotlin/com/geekorum/aboutoss/ui/material3/OpenSourceDependenciesNavHost.kt	Sun Apr 27 16:28:55 2025 -0400
@@ -22,11 +22,20 @@
 package com.geekorum.aboutoss.ui.material3
 
 import androidx.compose.runtime.Composable
-import androidx.core.uri.UriUtils
 import androidx.navigation.compose.NavHost
 import androidx.navigation.compose.composable
 import androidx.navigation.compose.rememberNavController
+import androidx.navigation.toRoute
 import com.geekorum.aboutoss.ui.common.OpenSourceLicensesViewModel
+import kotlinx.serialization.Serializable
+
+@Serializable
+private object DependenciesList
+
+@Serializable
+private data class DependencyLicense(
+    val dependency: String
+)
 
 @Composable
 fun OpenSourceDependenciesNavHost(
@@ -34,18 +43,19 @@
     navigateUp: () -> Unit
 ) {
     val navController = rememberNavController()
-    NavHost(navController, startDestination = "dependencies") {
-        composable("dependencies") {
+    NavHost(navController, startDestination = DependenciesList) {
+        composable<DependenciesList> {
             OpenSourceDependenciesListScreen(
                 viewModel = openSourceLicensesViewModel,
                 onDependencyClick = {
-                    navController.navigate("dependency_license/${UriUtils.encode(it)}")
+                    navController.navigate(DependencyLicense(it))
                 },
                 onUpClick = navigateUp
             )
         }
-        composable("dependency_license/{dependency}") {
-            val dependency = requireNotNull(it.arguments?.getString("dependency"))
+        composable<DependencyLicense> {
+            val route = it.toRoute<DependencyLicense>()
+            val dependency = route.dependency
             OpenSourceLicenseScreen(
                 viewModel = openSourceLicensesViewModel,
                 dependency = dependency,