KMM Compose UI 中的 MVVM

问题描述 投票:0回答:1

我正在尝试在 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?

mvvm kotlin-multiplatform
1个回答
0
投票

实际上,AndroidX ViewModel 库尚未适合在通用目标中使用。如果需要,您仍然可以在 Android 目标中使用 AndroidX ViewModel。

但是,如果您需要在公共目标中共享逻辑,则存在许多使用与 Kotlin Multiplatform 中的 ViewModel 相同概念的替代方案。以下是在 KMP 中执行相同工作的其他库:

这里管理导航和状态管理的库:

我建议你看看Awesome Kotlin Multiplatform,它引用了很多 KMP 库。

© www.soinside.com 2019 - 2024. All rights reserved.