Mobile-first design and engineering doctrine for iOS and Android apps. Covers touch interaction, performance, platform conventions, offline behavior, and mobile-specific decision-making. Teaches principles and constraints, not fixed layouts. Use for React Native, Flutter, or native mobile apps.
Add this skill
npx mdskills install sickn33/mobile-designComprehensive mobile development doctrine with actionable checklists, platform-specific rules, and anti-patterns
1---2name: mobile-design3description: Mobile-first design and engineering doctrine for iOS and Android apps. Covers touch interaction, performance, platform conventions, offline behavior, and mobile-specific decision-making. Teaches principles and constraints, not fixed layouts. Use for React Native, Flutter, or native mobile apps.4allowed-tools: Read, Glob, Grep, Bash5---6# Mobile Design System78**(Mobile-First · Touch-First · Platform-Respectful)**910> **Philosophy:** Touch-first. Battery-conscious. Platform-respectful. Offline-capable.11> **Core Law:** Mobile is NOT a small desktop.12> **Operating Rule:** Think constraints first, aesthetics second.1314This skill exists to **prevent desktop-thinking, AI-defaults, and unsafe assumptions** when designing or building mobile applications.1516---1718## 1. Mobile Feasibility & Risk Index (MFRI)1920Before designing or implementing **any mobile feature or screen**, assess feasibility.2122### MFRI Dimensions (1–5)2324| Dimension | Question |25| -------------------------- | ----------------------------------------------------------------- |26| **Platform Clarity** | Is the target platform (iOS / Android / both) explicitly defined? |27| **Interaction Complexity** | How complex are gestures, flows, or navigation? |28| **Performance Risk** | Does this involve lists, animations, heavy state, or media? |29| **Offline Dependence** | Does the feature break or degrade without network? |30| **Accessibility Risk** | Does this impact motor, visual, or cognitive accessibility? |3132### Score Formula3334```35MFRI = (Platform Clarity + Accessibility Readiness)36 − (Interaction Complexity + Performance Risk + Offline Dependence)37```3839**Range:** `-10 → +10`4041### Interpretation4243| MFRI | Meaning | Required Action |44| -------- | --------- | ------------------------------------- |45| **6–10** | Safe | Proceed normally |46| **3–5** | Moderate | Add performance + UX validation |47| **0–2** | Risky | Simplify interactions or architecture |48| **< 0** | Dangerous | Redesign before implementation |4950---5152## 2. Mandatory Thinking Before Any Work5354### ⛔ STOP: Ask Before Assuming (Required)5556If **any of the following are not explicitly stated**, you MUST ask before proceeding:5758| Aspect | Question | Why |59| ---------- | ------------------------------------------ | ---------------------------------------- |60| Platform | iOS, Android, or both? | Affects navigation, gestures, typography |61| Framework | React Native, Flutter, or native? | Determines performance and patterns |62| Navigation | Tabs, stack, drawer? | Core UX architecture |63| Offline | Must it work offline? | Data & sync strategy |64| Devices | Phone only or tablet too? | Layout & density rules |65| Audience | Consumer, enterprise, accessibility needs? | Touch & readability |6667🚫 **Never default to your favorite stack or pattern.**6869---7071## 3. Mandatory Reference Reading (Enforced)7273### Universal (Always Read First)7475| File | Purpose | Status |76| ----------------------------- | ---------------------------------- | ----------------- |77| **mobile-design-thinking.md** | Anti-memorization, context-forcing | 🔴 REQUIRED FIRST |78| **touch-psychology.md** | Fitts’ Law, thumb zones, gestures | 🔴 REQUIRED |79| **mobile-performance.md** | 60fps, memory, battery | 🔴 REQUIRED |80| **mobile-backend.md** | Offline sync, push, APIs | 🔴 REQUIRED |81| **mobile-testing.md** | Device & E2E testing | 🔴 REQUIRED |82| **mobile-debugging.md** | Native vs JS debugging | 🔴 REQUIRED |8384### Platform-Specific (Conditional)8586| Platform | File |87| -------------- | ------------------- |88| iOS | platform-ios.md |89| Android | platform-android.md |90| Cross-platform | BOTH above |9192> ❌ If you haven’t read the platform file, you are not allowed to design UI.9394---9596## 4. AI Mobile Anti-Patterns (Hard Bans)9798### 🚫 Performance Sins (Non-Negotiable)99100| ❌ Never | Why | ✅ Always |101| ------------------------- | -------------------- | --------------------------------------- |102| ScrollView for long lists | Memory explosion | FlatList / FlashList / ListView.builder |103| Inline renderItem | Re-renders all rows | useCallback + memo |104| Index as key | Reorder bugs | Stable ID |105| JS-thread animations | Jank | Native driver / GPU |106| console.log in prod | JS thread block | Strip logs |107| No memoization | Battery + perf drain | React.memo / const widgets |108109---110111### 🚫 Touch & UX Sins112113| ❌ Never | Why | ✅ Always |114| --------------------- | -------------------- | ----------------- |115| Touch <44–48px | Miss taps | Min touch target |116| Gesture-only action | Excludes users | Button fallback |117| No loading state | Feels broken | Explicit feedback |118| No error recovery | Dead end | Retry + message |119| Ignore platform norms | Muscle memory broken | iOS ≠ Android |120121---122123### 🚫 Security Sins124125| ❌ Never | Why | ✅ Always |126| ---------------------- | ------------------ | ---------------------- |127| Tokens in AsyncStorage | Easily stolen | SecureStore / Keychain |128| Hardcoded secrets | Reverse engineered | Env + secure storage |129| No SSL pinning | MITM risk | Cert pinning |130| Log sensitive data | PII leakage | Never log secrets |131132---133134## 5. Platform Unification vs Divergence Matrix135136```137UNIFY DIVERGE138────────────────────────── ─────────────────────────139Business logic Navigation behavior140Data models Gestures141API contracts Icons142Validation Typography143Error semantics Pickers / dialogs144```145146### Platform Defaults147148| Element | iOS | Android |149| --------- | ------------ | -------------- |150| Font | SF Pro | Roboto |151| Min touch | 44pt | 48dp |152| Back | Edge swipe | System back |153| Sheets | Bottom sheet | Dialog / sheet |154| Icons | SF Symbols | Material Icons |155156---157158## 6. Mobile UX Psychology (Non-Optional)159160### Fitts’ Law (Touch Reality)161162* Finger ≠ cursor163* Accuracy is low164* Reach matters more than precision165166**Rules:**167168* Primary CTAs live in **thumb zone**169* Destructive actions pushed away170* No hover assumptions171172---173174## 7. Performance Doctrine175176### React Native (Required Pattern)177178```ts179const Row = React.memo(({ item }) => (180 <View><Text>{item.title}</Text></View>181));182183const renderItem = useCallback(184 ({ item }) => <Row item={item} />,185 []186);187188<FlatList189 data={items}190 renderItem={renderItem}191 keyExtractor={(i) => i.id}192 getItemLayout={(_, i) => ({193 length: ITEM_HEIGHT,194 offset: ITEM_HEIGHT * i,195 index: i,196 })}197/>198```199200### Flutter (Required Pattern)201202```dart203class Item extends StatelessWidget {204 const Item({super.key});205206 @override207 Widget build(BuildContext context) {208 return const Text('Static');209 }210}211```212213* `const` everywhere possible214* Targeted rebuilds only215216---217218## 8. Mandatory Mobile Checkpoint219220Before writing **any code**, you must complete this:221222```223🧠 MOBILE CHECKPOINT224225Platform: ___________226Framework: ___________227Files Read: ___________2282293 Principles I Will Apply:2301.2312.2323.233234Anti-Patterns I Will Avoid:2351.2362.237```238239❌ Cannot complete → go back and read.240241---242243## 9. Framework Decision Tree (Canonical)244245```246Need OTA + web team → React Native + Expo247High-perf UI → Flutter248iOS only → SwiftUI249Android only → Compose250```251252No debate without justification.253254---255256## 10. Release Readiness Checklist257258### Before Shipping259260* [ ] Touch targets ≥ 44–48px261* [ ] Offline handled262* [ ] Secure storage used263* [ ] Lists optimized264* [ ] Logs stripped265* [ ] Tested on low-end devices266* [ ] Accessibility labels present267* [ ] MFRI ≥ 3268269---270271## 11. Related Skills272273* **frontend-design** – Visual systems & components274* **frontend-dev-guidelines** – RN/TS architecture275* **backend-dev-guidelines** – Mobile-safe APIs276* **error-tracking** – Crash & performance telemetry277278---279280> **Final Law:**281> Mobile users are distracted, interrupted, and impatient—often using one hand on a bad network with low battery.282> **Design for that reality, or your app will fail quietly.**283284---285
Full transparency — inspect the skill content before installing.