我正在尝试在 KMM Compose UI 中实现具有 mvvm 架构的应用程序。
可悲的是我找不到办法做到这一点。我能找到的所有教程都是针对 KMM 的,但不是针对 KMM Compose UI 的。
我正在尝试添加使用视图模型的依赖项,但这是不可能的:
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material)
implementation(compose.ui)
// These ones I'm trying to add
implementation(libs.androidx.lifecycle.viewmodel.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.activity.ktx)
implementation(libs.androidx.fragment.ktx)
@OptIn(ExperimentalComposeLibrary::class)
implementation(compose.components.resources)
}
我在同步时遇到以下错误:
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':composeApp:iosArm64CompilationDependenciesMetadata'.
有没有办法在 KMM Compose UI 中使用 mvvm?
实际上,AndroidX ViewModel 库尚未适合在通用目标中使用。如果需要,您仍然可以在 Android 目标中使用 AndroidX ViewModel。
但是,如果您需要在公共目标中共享逻辑,则存在许多使用与 Kotlin Multiplatform 中的 ViewModel 相同概念的替代方案。以下是在 KMP 中执行相同工作的其他库:
这里管理导航和状态管理的库:
我建议你看看Awesome Kotlin Multiplatform,它引用了很多 KMP 库。