# Kotlin Multiplatform

> Kotlin Multiplatform - shared code, expect/actual, iOS integration

- Skill: `majiayu000/kotlin-multiplatform` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/kotlin-multiplatform`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/kotlin-multiplatform/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/kotlin-multiplatform

---


# Kotlin Multiplatform Skill

Build cross-platform applications with shared Kotlin code.

## 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") }
    }
}
```

### 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) }
```

## Troubleshooting

| Issue | Resolution |
|-------|------------|
| "No actual for expect" | Add implementation in platform source set |
| iOS framework not found | Run linkDebugFrameworkIos task |

## Usage
```
Skill("kotlin-multiplatform")
```

