software-mobile
Originally frommosif16/codex-skills
Installation
SKILL.md
Mobile Development
Use this skill for platform choice, cross-platform tradeoffs, Android implementation guidance, and shared mobile concerns such as authentication, notifications, deep linking, release readiness, and policy checks. For deep native iOS implementation or rewrite work, route to software-ios-native. For native iOS build, install, packaging, or stale-app debugging, route to software-ios-runtime-debugging.
Quick Reference
| Task | iOS | Android | Cross-Platform | Default |
|---|---|---|---|---|
| UI | SwiftUI + UIKit interop | Jetpack Compose + Views interop | React Native, Flutter, KMP + native UI | Native first for platform-heavy work |
| State | @State, @Observable, @Environment |
ViewModel + StateFlow | Zustand/RTK, Riverpod, shared domain state | Platform-native state models |
| Navigation | NavigationStack |
Navigation Compose / Navigation Component | Expo Router or React Navigation | Expo Router for greenfield Expo apps |
| Networking | URLSession + async/await |
Retrofit/OkHttp/Ktor + coroutines | Fetch/Axios, generated clients | Typed clients over ad hoc fetches |
| Storage | SwiftData/Core Data, Keychain | Room/DataStore, Keystore | MMKV/SQLite/WatermelonDB, secure storage | Keep secrets in platform secure storage |
| Testing | Swift Testing + XCTest UI | JUnit + Compose Test + Macrobenchmark | Detox/Maestro, framework-native tests | Measure performance, do not assume it |
| Release | Privacy manifests, App Review checks | Play target SDK, Data safety, Integrity | Expo/EAS or native pipelines | Re-check store policy before each cut |
| iOS CI | Xcode Cloud ci_scripts/ci_post_clone.sh for generated files |
Gradle Play Publisher or managed pipelines; Play Integrity for signing | EAS Build / Codemagic for RN/Expo | Platform-managed CI for submission |
| Push proof | Xcode real-device → APNs sandbox |
FCM debug / prod separation by config | Production send path must prove delivery per environment | Never treat local push success as TestFlight proof |