software-mobile
Production-grade iOS, Android, and cross-platform mobile dev. Use when building apps, handling auth/push, or preparing App Store releases.
What this skill does
# Mobile Development Skill — Quick Reference
This skill equips mobile developers with execution-ready patterns for building native and cross-platform mobile applications. Apply these patterns when you need iOS/Android app architecture, UI components, navigation flows, API integration, offline storage, authentication, or mobile-specific features.
---
## When to Use This Skill
Use this skill when you need:
- iOS app development (Swift, SwiftUI, UIKit)
- Android app development (Kotlin, Jetpack Compose)
- Cross-platform development (React Native, WebView)
- Mobile app architecture and patterns
- Navigation and routing
- State management (Redux, MobX, MVVM)
- Network requests and API integration
- Local data storage (Core Data, Room, SQLite)
- Authentication and session management
- Push notifications (APNs, FCM)
- Camera and media access
- Location services
- App Store / Play Store deployment
- Mobile performance optimization
- Offline-first architecture
- Deep linking and universal links
---
## Quick Reference Table
| Task | iOS | Android | Cross-Platform | When to Use |
|------|-----|---------|----------------|-------------|
| Native UI | SwiftUI + UIKit | Jetpack Compose + Views | React Native | Native: Best performance; Cross-platform: Code sharing |
| Navigation | NavigationStack | Navigation Component | React Navigation | Platform-specific for native feel |
| State Management | @State/@Observable | ViewModel + StateFlow | Redux/MobX | iOS: @Observable; Android: ViewModel; RN: Redux |
| Networking | URLSession + async/await | Retrofit + Coroutines | Axios/Fetch | Native: Type-safe; RN: JavaScript ecosystem |
| Local Storage | Core Data + SwiftData | Room Database | AsyncStorage/SQLite | Native: Full control; RN: Simpler |
| Push Notifications | APNs | FCM | React Native Firebase | Native: Platform-specific; RN: Unified API |
| Background Tasks | BGTaskScheduler | WorkManager | Headless JS | For scheduled/background work |
| Deep Linking | Universal Links | App Links | React Navigation linking | For URL-based app entry |
| Authentication | AuthenticationServices | Credential Manager | Expo AuthSession | For social/biometric auth |
| Analytics | Firebase/Amplitude | Firebase/Amplitude | Expo Analytics | Track user behavior |
---
## Decision Tree: Platform Selection
```text
Need to build mobile app for: [Target Audience]
│
├─ iOS only?
│ ├─ New app? → SwiftUI (modern, declarative)
│ ├─ Existing UIKit codebase? → UIKit + incremental SwiftUI adoption
│ └─ Complex animations? → UIKit for fine-grained control
│
├─ Android only?
│ ├─ New app? → Jetpack Compose (modern, declarative)
│ ├─ Existing Views codebase? → Views + incremental Compose adoption
│ └─ Complex custom views? → Custom View for fine-grained control
│
├─ Both iOS and Android?
│ ├─ Need maximum performance / platform fidelity?
│ │ └─ Build separate native apps (Swift + Kotlin)
│ │
│ ├─ Need faster development + code sharing?
│ │ ├─ JavaScript/TypeScript team? → React Native (Expo-managed or bare)
│ │ ├─ Dart team? → Flutter
│ │ └─ Kotlin team? → Kotlin Multiplatform (KMP)
│ │
│ ├─ Kotlin Multiplatform (KMP)?
│ │ ├─ Share business logic only? → KMP shared module + native UI
│ │ ├─ Share some UI? → Compose Multiplatform (validate iOS maturity for your needs)
│ │ └─ Shared modules need platform UI? → Keep native UI, share domain/data/networking
│ │
│ └─ Wrapping existing web app?
│ ├─ Simple wrapper? → WebView (iOS WKWebView / Android WebView)
│ └─ Native features needed? → Capacitor or React Native WebView
│
└─ Prototype/MVP only?
└─ React Native or Flutter for fastest iteration
```
## Decision Tree: Architecture Pattern
```text
Choosing architecture pattern?
│
├─ iOS (Swift)?
│ ├─ SwiftUI app? → MVVM with @Observable/ObservableObject (based on OS baseline)
│ ├─ Complex SwiftUI? → TCA (Composable Architecture) for testability
│ ├─ UIKit app? → MVVM-C (Coordinator pattern)
│ ├─ Large team? → Clean Architecture + MVVM
│ └─ Simple app? → MVC (Apple default)
│
├─ Android (Kotlin)?
│ ├─ Compose app? → MVVM with ViewModel + StateFlow
│ ├─ Views app? → MVVM with LiveData
│ ├─ Large team? → Clean Architecture + MVVM
│ └─ Simple app? → Activity/Fragment-based
│
└─ React Native?
├─ Small app? → Context API + useState
├─ Medium app? → Redux Toolkit or Zustand
└─ Large app? → Redux + RTK Query + feature-based structure
```
## Decision Tree: Data Persistence
```text
Need to store data locally?
│
├─ Simple key-value pairs?
│ ├─ iOS → UserDefaults
│ ├─ Android → SharedPreferences / DataStore
│ └─ RN → AsyncStorage
│
├─ Structured data with relationships?
│ ├─ iOS → Core Data or SwiftData
│ ├─ Android → Room Database
│ └─ RN → WatermelonDB or Realm
│
├─ Secure credentials?
│ ├─ iOS → Keychain
│ ├─ Android → EncryptedSharedPreferences / Keystore
│ └─ RN → react-native-keychain
│
└─ Large files/media?
├─ iOS → FileManager (Documents/Cache)
├─ Android → Internal/External Storage
└─ RN → react-native-fs
```
## Decision Tree: Networking
```text
Need to make API calls?
│
├─ iOS?
│ ├─ Simple REST? → URLSession + async/await
│ ├─ Complex API? → URLSession + Codable
│ └─ GraphQL? → Apollo iOS
│
├─ Android?
│ ├─ Simple REST? → Retrofit + Coroutines
│ ├─ Complex API? → Retrofit + OkHttp interceptors
│ └─ GraphQL? → Apollo Android
│
└─ React Native?
├─ Simple REST? → fetch() or Axios
├─ Complex API? → RTK Query or React Query
└─ GraphQL? → Apollo Client
```
---
## Core Capabilities
### iOS Development
- **UI Frameworks**: SwiftUI (declarative), UIKit (imperative)
- **Architecture**: MVVM, Clean Architecture, Coordinator, TCA (Composable Architecture)
- **Concurrency**: Swift Concurrency (async/await, actors, TaskGroup); keep UI state on `@MainActor`; enable strict concurrency checks as appropriate
- **Storage**: Core Data, SwiftData, Keychain
- **Networking**: URLSession, async/await patterns
- **Platform compliance**: Privacy manifests + required-reason APIs, background execution limits, and accessibility settings (Dynamic Type, VoiceOver)
- **Defensive Decoding**: Handle missing fields, array/dict formats, snake_case/camelCase
### Android Development
- **UI Frameworks**: Jetpack Compose (declarative), Views (XML)
- **Architecture**: MVVM, Clean Architecture, MVI
- **Concurrency**: Coroutines, Flow, LiveData
- **Storage**: Room, DataStore, Keystore
- **Networking**: Retrofit, OkHttp, Ktor
### Cross-Platform Development
- **Kotlin Multiplatform (KMP)**: Share domain/data/networking; keep native UI; consider Compose Multiplatform when shared UI is worth the constraints
- **React Native**: JavaScript/TypeScript; evaluate New Architecture readiness and native-module surface area; Expo-managed path is often fastest for greenfield apps
- **Flutter**: Dart; high code sharing; validate platform-specific gaps and plugin maturity for your requirements
- **WebView**: WKWebView (iOS), WebView (Android), JavaScript bridge
---
## Platform Baselines (Verify Current Requirements)
### iOS/iPadOS (Core)
- Privacy manifest files (app + embedded SDKs) are maintained and reviewed https://developer.apple.com/documentation/bundlereferences/privacy_manifest_files
- Required-reason APIs are declared with valid reasons https://developer.apple.com/documentation/bundlereferences/privacy_manifest_files
- Background work uses supported primitives (avoid fragile timers) https://developer.apple.com/documentation/backgroundtasks
- App Transport Security is configured; exceptions are justified and documented https://developer.apple.com/documeRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.