kotlin-multiplatform
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseKotlin Multiplatform Skill
Kotlin Multiplatform 技能指南
Build cross-platform applications with shared Kotlin code.
使用共享Kotlin代码构建跨平台应用程序。
Topics Covered
涵盖主题
Project Setup
项目设置
kotlin
kotlin {
androidTarget()
listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
it.binaries.framework { baseName = "Shared"; isStatic = true }
}
sourceSets {
commonMain.dependencies {
implementation("io.ktor:ktor-client-core:2.3.8")
}
androidMain.dependencies { implementation("io.ktor:ktor-client-okhttp:2.3.8") }
iosMain.dependencies { implementation("io.ktor:ktor-client-darwin:2.3.8") }
}
}kotlin
kotlin {
androidTarget()
listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
it.binaries.framework { baseName = "Shared"; isStatic = true }
}
sourceSets {
commonMain.dependencies {
implementation("io.ktor:ktor-client-core:2.3.8")
}
androidMain.dependencies { implementation("io.ktor:ktor-client-okhttp:2.3.8") }
iosMain.dependencies { implementation("io.ktor:ktor-client-darwin:2.3.8") }
}
}expect/actual
expect/actual
kotlin
// commonMain
expect class SecureStorage { fun get(key: String): String? }
// androidMain
actual class SecureStorage { actual fun get(key: String) = prefs.getString(key, null) }
// iosMain
actual class SecureStorage { actual fun get(key: String) = KeychainWrapper.get(key) }kotlin
// commonMain
expect class SecureStorage { fun get(key: String): String? }
// androidMain
actual class SecureStorage { actual fun get(key: String) = prefs.getString(key, null) }
// iosMain
actual class SecureStorage { actual fun get(key: String) = KeychainWrapper.get(key) }Troubleshooting
问题排查
| Issue | Resolution |
|---|---|
| "No actual for expect" | Add implementation in platform source set |
| iOS framework not found | Run linkDebugFrameworkIos task |
| 问题 | 解决方法 |
|---|---|
| "No actual for expect" | 在平台源码集中添加实现 |
| iOS framework not found | 运行linkDebugFrameworkIos任务 |
Usage
使用方法
Skill("kotlin-multiplatform")Skill("kotlin-multiplatform")