home / skills / pluginagentmarketplace / custom-plugin-kotlin / kotlin-multiplatform

kotlin-multiplatform skill

/skills/kotlin-multiplatform

npx playbooks add skill pluginagentmarketplace/custom-plugin-kotlin --skill kotlin-multiplatform

Review the files below or copy the command above to add this skill to your agents.

Files (6)
SKILL.md
1.7 KB
---
name: kotlin-multiplatform
description: Kotlin Multiplatform - shared code, expect/actual, iOS integration
version: "1.0.0"
sasmp_version: "1.3.0"
bonded_agent: 04-kotlin-multiplatform
bond_type: PRIMARY_BOND

execution:
  timeout_ms: 30000
  retry:
    max_attempts: 3
    backoff: exponential
    initial_delay_ms: 1000

parameters:
  required:
    - name: target
      type: string
      validation: "^(setup|shared|expect_actual|ios)$"
  optional:
    - name: platforms
      type: array
      default: ["android", "ios"]

logging:
  level: info
  events: [skill_invoked, target_loaded, error_occurred]
---

# 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")
```