mobile-developer-skill/SKILL.md
Expert in pure native development (Swift/Kotlin) for iOS and Android, maximizing platform capabilities and performance.
npx skillsauth add 404kidwiz/claude-supercode-skills mobile-developerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Provides native mobile development expertise specializing in Swift (iOS) and Kotlin (Android). Builds platform-native applications maximizing device capabilities, performance, and OS features like Dynamic Island, Widgets, and Foldables.
Architecture Choice?
│
├─ **Pure Native (Swift/Kotlin)**
│ ├─ Needs deep system integration? → **Yes** (Best access)
│ ├─ Zero compromise UX? → **Yes** (Standard platform behavior)
│ └─ Team size? → **Large** (Requires separate iOS/Android teams)
│
├─ **Kotlin Multiplatform (KMP)**
│ ├─ Share business logic only? → **Yes** (Shared Domain/Data layer)
│ ├─ Native UI required? → **Yes** (SwiftUI on iOS, Compose on Android)
│ └─ Existing native app? → **Yes** (Good for migration)
│
└─ **Cross-Platform (RN/Flutter)**
├─ UI consistency priority? → **Yes** (Same UI on both)
└─ Single codebase priority? → **Yes**
| Platform | Framework | State of Tech (2026) | Recommendation | |----------|-----------|----------------------|----------------| | iOS | SwiftUI | Mature, Default choice | Use for 95% of new apps. Fallback to UIKit only for complex custom gestures/legacy. | | iOS | UIKit | Legacy, Stable | Maintenance only, or wrapping old libs. | | Android | Jetpack Compose | Standard, Default | Use for 100% of new apps. XML is legacy. | | Android | XML / View | Legacy | Maintenance only. |
| Platform | Model | Best Practice |
|----------|-------|---------------|
| iOS | Swift Concurrency | async/await, Actors for thread safety. Avoid GCD/closures. |
| Android | Kotlin Coroutines | suspend functions, Flow for streams. Dispatchers.IO for work. |
Red Flags → Escalate to mobile-app-developer (Cross-platform):
Goal: Build a scalable iOS app using Swift 6 concurrency and SwiftUI.
Steps:
Project Setup
Complete.ViewModel Definition (Observable)
import SwiftUI
import Observation
@Observable
class ProductListViewModel {
var products: [Product] = []
var isLoading = false
var error: Error?
private let service: ProductService
init(service: ProductService = .live) {
self.service = service
}
func loadProducts() async {
isLoading = true
defer { isLoading = false }
do {
products = try await service.fetchProducts()
} catch {
self.error = error
}
}
}
View Implementation
struct ProductListView: View {
@State private var viewModel = ProductListViewModel()
var body: some View {
NavigationStack {
List(viewModel.products) { product in
ProductRow(product: product)
}
.overlay {
if viewModel.isLoading { ProgressView() }
}
.task {
await viewModel.loadProducts()
}
.navigationTitle("Products")
}
}
}
Goal: Share networking and database logic between iOS and Android.
Steps:
Shared Module Structure
shared/
src/commonMain/kotlin/ # Shared logic
src/androidMain/kotlin/ # Android specific
src/iosMain/kotlin/ # iOS specific
Networking (Ktor)
// commonMain
class ApiClient {
private val client = HttpClient {
install(ContentNegotiation) {
json(Json { ignoreUnknownKeys = true })
}
}
suspend fun getData(): Data = client.get("...").body()
}
Consumption
ApiClient().getData() directly in ViewModel.ApiClient().getData() via Swift interop (wrapper may be needed for async/await bridging if older Kotlin version).What it looks like:
ViewController.swift files containing networking, logic, and UI code.Why it fails:
Correct approach:
What it looks like:
onAppear but not cancelling it on onDisappear.Why it fails:
Correct approach:
.task in SwiftUI cancels auto).SavedStateHandle in Android ViewModels to persist state across process death.What it looks like:
Why it fails:
Correct approach:
Dispatchers.Default / Task.detached).Scenario: Build a secure, compliant banking app for iOS and Android with biometric authentication.
Development Approach:
Implementation Highlights:
// iOS Biometric Authentication
func authenticateWithBiometrics() async throws {
let context = LAContext()
var error: NSError?
guard context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) else {
throw AuthenticationError.biometricsNotAvailable
}
do {
let success = try await context.evaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
reason: "Authenticate to access your account"
)
guard success else { throw AuthenticationError.authenticationFailed }
} catch {
throw AuthenticationError.authenticationFailed
}
}
Results:
Scenario: Develop a patient management app with strict HIPAA compliance requirements.
Compliance Implementation:
Android Implementation:
// Encrypted SharedPreferences
val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
val encryptedPrefs = EncryptedSharedPreferences.create(
context,
"patient_data",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
// Usage
encryptedPrefs.edit().putString("patient_id", "12345").apply()
Results:
Scenario: Build a smart home control app integrating with IoT devices via Bluetooth Low Energy.
BLE Implementation:
Architecture:
Results:
Platform Standards:
Performance:
Architecture:
Security:
development
Expert in automating Excel workflows using Node.js (ExcelJS, SheetJS) and Python (pandas, openpyxl).
content-media
Expert in designing durable, scalable workflow systems using Temporal, Camunda, and Event-Driven Architectures.
tools
Use when user needs WordPress development, theme or plugin creation, site optimization, security hardening, multisite management, or scaling WordPress from small sites to enterprise platforms.
tools
Expert in Windows Server, Active Directory (AD DS), Hybrid Identity (Entra ID), and PowerShell automation.