skills/mobile/SKILL.md
Mobile app development (iOS/Android/cross-platform).
npx skillsauth add arbazkhan971/godmode mobileInstall 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.
/godmode:mobile, "mobile app", "iOS", "Android"Target: iOS|Android|both
Approach: native|cross-platform|hybrid
IF cross-platform:
Framework: React Native|Flutter|KMP|.NET MAUI
Shared: business logic only|business+UI|everything
# Detect existing mobile project
ls ios/ android/ pubspec.yaml 2>/dev/null
ls package.json | xargs grep -l "react-native" 2>/dev/null
MVVM: most apps, reactive UI frameworks
models/ -> views/ -> viewmodels/
MVI: complex state, unidirectional data flow
State (immutable) -> Intent (actions) -> Reducer
Clean Architecture: large apps, complex business logic
Presentation -> Domain -> Data (dependency inversion)
IF app < 10 screens: MVVM is sufficient. IF state management complex: prefer MVI. IF > 30 screens with multiple data sources: Clean Arch.
iOS: bundle ID, min deployment target, ATS, Info.plist privacy descriptions, launch screen. Android: package name, min/target SDK, ProGuard, build variants (debug/staging/release). React Native: TypeScript, React Navigation, state management, Metro config. Flutter: pubspec.yaml, state management (Riverpod/Bloc), GoRouter, flavors (dev/staging/prod).
iOS: Dev cert + provisioning profile (development),
Dist cert + App Store profile (release).
NEVER share private keys. Use Fastlane match.
Android: keytool -genkey -v -keystore release.keystore
NEVER lose the keystore (app updates impossible).
Store in secure vault, not in VCS.
iOS App Store:
[ ] Review Guidelines compliance
[ ] Privacy policy URL
[ ] App Privacy labels
[ ] Screenshots (6.7", 5.5" minimum)
[ ] App name (30 char max)
Google Play:
[ ] Developer Policy compliance
[ ] Data safety section
[ ] AAB format (not APK)
[ ] Screenshots + feature graphic
Battery: significant-change location (not continuous),
batch network requests, 60fps animations.
Memory: resize images to display size, LRU cache,
recycle views, release on dispose.
Network: offline-first, request coalescing,
WebP/AVIF images, pagination (20-50 items).
Startup: cold < 1s, warm < 500ms.
Defer analytics/flags, lazy-load modules.
IF cold start > 2s: profile and defer init. IF app size > 50MB: audit assets, use on-demand resources.
Push: APNs (iOS) / FCM (Android)
Deep links: Universal Links / App Links
Biometrics: Face ID/Touch ID / Fingerprint
IAP: StoreKit 2 / Play Billing Library
Crash: Firebase Crashlytics / Sentry
A11y: VoiceOver / TalkBack support
# Mobile build and test
npx react-native run-ios --configuration Release
npx expo doctor
npx jest --config jest.mobile.config.js
Append .godmode/mobile-results.tsv:
timestamp platform screen action tests app_size_mb status
KEEP if: builds all platforms, tests pass,
cold start < 1s, size within budget.
DISCARD if: crashes, perf regression,
guidelines violated, min OS API missing.
STOP when FIRST of:
- Builds + runs on all target platforms
- Cold start < 2s, size < 50MB
- Platform conventions pass
- No secrets in VCS
On failure: git reset --hard HEAD~1. Never pause.
<!-- tier-3 -->| Failure | Action | |--|--| | Build fails one platform | Check deps, native linking | | Crashes on startup | Check permissions, async init | | Store rejection | Read reason, fix metadata/privacy |
development
Web performance optimization. Lighthouse, bundle analysis, code splitting, image optimization, critical CSS, fonts, service workers, CDN.
development
Webhook design, delivery, retry, HMAC verification, event subscriptions, dead letter queues.
development
Vue.js mastery. Composition API, Pinia, Vue Router, Nuxt SSR/SSG, Vite optimization, testing.
development
Evidence gate. Run command, read full output, confirm or deny claim. No trust, only proof.