mobile-design
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 pr...
Best use case
mobile-design is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
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 pr...
Teams using mobile-design should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/mobile-design/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How mobile-design Compares
| Feature / Agent | mobile-design | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
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 pr...
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Mobile Design System
**(Mobile-First · Touch-First · Platform-Respectful)**
> **Philosophy:** Touch-first. Battery-conscious. Platform-respectful. Offline-capable.
> **Core Law:** Mobile is NOT a small desktop.
> **Operating Rule:** Think constraints first, aesthetics second.
This skill exists to **prevent desktop-thinking, AI-defaults, and unsafe assumptions** when designing or building mobile applications.
---
## 1. Mobile Feasibility & Risk Index (MFRI)
Before designing or implementing **any mobile feature or screen**, assess feasibility.
### MFRI Dimensions (1–5)
| Dimension | Question |
| -------------------------- | ----------------------------------------------------------------- |
| **Platform Clarity** | Is the target platform (iOS / Android / both) explicitly defined? |
| **Interaction Complexity** | How complex are gestures, flows, or navigation? |
| **Performance Risk** | Does this involve lists, animations, heavy state, or media? |
| **Offline Dependence** | Does the feature break or degrade without network? |
| **Accessibility Risk** | Does this impact motor, visual, or cognitive accessibility? |
### Score Formula
```
MFRI = (Platform Clarity + Accessibility Readiness)
− (Interaction Complexity + Performance Risk + Offline Dependence)
```
**Range:** `-10 → +10`
### Interpretation
| MFRI | Meaning | Required Action |
| -------- | --------- | ------------------------------------- |
| **6–10** | Safe | Proceed normally |
| **3–5** | Moderate | Add performance + UX validation |
| **0–2** | Risky | Simplify interactions or architecture |
| **< 0** | Dangerous | Redesign before implementation |
---
## 2. Mandatory Thinking Before Any Work
### ⛔ STOP: Ask Before Assuming (Required)
If **any of the following are not explicitly stated**, you MUST ask before proceeding:
| Aspect | Question | Why |
| ---------- | ------------------------------------------ | ---------------------------------------- |
| Platform | iOS, Android, or both? | Affects navigation, gestures, typography |
| Framework | React Native, Flutter, or native? | Determines performance and patterns |
| Navigation | Tabs, stack, drawer? | Core UX architecture |
| Offline | Must it work offline? | Data & sync strategy |
| Devices | Phone only or tablet too? | Layout & density rules |
| Audience | Consumer, enterprise, accessibility needs? | Touch & readability |
🚫 **Never default to your favorite stack or pattern.**
---
## 3. Mandatory Reference Reading (Enforced)
### Universal (Always Read First)
| File | Purpose | Status |
| ----------------------------- | ---------------------------------- | ----------------- |
| **mobile-design-thinking.md** | Anti-memorization, context-forcing | 🔴 REQUIRED FIRST |
| **touch-psychology.md** | Fitts’ Law, thumb zones, gestures | 🔴 REQUIRED |
| **mobile-performance.md** | 60fps, memory, battery | 🔴 REQUIRED |
| **mobile-backend.md** | Offline sync, push, APIs | 🔴 REQUIRED |
| **mobile-testing.md** | Device & E2E testing | 🔴 REQUIRED |
| **mobile-debugging.md** | Native vs JS debugging | 🔴 REQUIRED |
### Platform-Specific (Conditional)
| Platform | File |
| -------------- | ------------------- |
| iOS | platform-ios.md |
| Android | platform-android.md |
| Cross-platform | BOTH above |
> ❌ If you haven’t read the platform file, you are not allowed to design UI.
---
## 4. AI Mobile Anti-Patterns (Hard Bans)
### 🚫 Performance Sins (Non-Negotiable)
| ❌ Never | Why | ✅ Always |
| ------------------------- | -------------------- | --------------------------------------- |
| ScrollView for long lists | Memory explosion | FlatList / FlashList / ListView.builder |
| Inline renderItem | Re-renders all rows | useCallback + memo |
| Index as key | Reorder bugs | Stable ID |
| JS-thread animations | Jank | Native driver / GPU |
| console.log in prod | JS thread block | Strip logs |
| No memoization | Battery + perf drain | React.memo / const widgets |
---
### 🚫 Touch & UX Sins
| ❌ Never | Why | ✅ Always |
| --------------------- | -------------------- | ----------------- |
| Touch <44–48px | Miss taps | Min touch target |
| Gesture-only action | Excludes users | Button fallback |
| No loading state | Feels broken | Explicit feedback |
| No error recovery | Dead end | Retry + message |
| Ignore platform norms | Muscle memory broken | iOS ≠ Android |
---
### 🚫 Security Sins
| ❌ Never | Why | ✅ Always |
| ---------------------- | ------------------ | ---------------------- |
| Tokens in AsyncStorage | Easily stolen | SecureStore / Keychain |
| Hardcoded secrets | Reverse engineered | Env + secure storage |
| No SSL pinning | MITM risk | Cert pinning |
| Log sensitive data | PII leakage | Never log secrets |
---
## 5. Platform Unification vs Divergence Matrix
```
UNIFY DIVERGE
────────────────────────── ─────────────────────────
Business logic Navigation behavior
Data models Gestures
API contracts Icons
Validation Typography
Error semantics Pickers / dialogs
```
### Platform Defaults
| Element | iOS | Android |
| --------- | ------------ | -------------- |
| Font | SF Pro | Roboto |
| Min touch | 44pt | 48dp |
| Back | Edge swipe | System back |
| Sheets | Bottom sheet | Dialog / sheet |
| Icons | SF Symbols | Material Icons |
---
## 6. Mobile UX Psychology (Non-Optional)
### Fitts’ Law (Touch Reality)
* Finger ≠ cursor
* Accuracy is low
* Reach matters more than precision
**Rules:**
* Primary CTAs live in **thumb zone**
* Destructive actions pushed away
* No hover assumptions
---
## 7. Performance Doctrine
### React Native (Required Pattern)
```ts
const Row = React.memo(({ item }) => (
<View><Text>{item.title}</Text></View>
));
const renderItem = useCallback(
({ item }) => <Row item={item} />,
[]
);
<FlatList
data={items}
renderItem={renderItem}
keyExtractor={(i) => i.id}
getItemLayout={(_, i) => ({
length: ITEM_HEIGHT,
offset: ITEM_HEIGHT * i,
index: i,
})}
/>
```
### Flutter (Required Pattern)
```dart
class Item extends StatelessWidget {
const Item({super.key});
@override
Widget build(BuildContext context) {
return const Text('Static');
}
}
```
* `const` everywhere possible
* Targeted rebuilds only
---
## 8. Mandatory Mobile Checkpoint
Before writing **any code**, you must complete this:
```
🧠 MOBILE CHECKPOINT
Platform: ___________
Framework: ___________
Files Read: ___________
3 Principles I Will Apply:
1.
2.
3.
Anti-Patterns I Will Avoid:
1.
2.
```
❌ Cannot complete → go back and read.
---
## 9. Framework Decision Tree (Canonical)
```
Need OTA + web team → React Native + Expo
High-perf UI → Flutter
iOS only → SwiftUI
Android only → Compose
```
No debate without justification.
---
## 10. Release Readiness Checklist
### Before Shipping
* [ ] Touch targets ≥ 44–48px
* [ ] Offline handled
* [ ] Secure storage used
* [ ] Lists optimized
* [ ] Logs stripped
* [ ] Tested on low-end devices
* [ ] Accessibility labels present
* [ ] MFRI ≥ 3
---
## 11. Related Skills
* **frontend-design** – Visual systems & components
* **frontend-dev-guidelines** – RN/TS architecture
* **backend-dev-guidelines** – Mobile-safe APIs
* **error-tracking** – Crash & performance telemetry
---
> **Final Law:**
> Mobile users are distracted, interrupted, and impatient—often using one hand on a bad network with low battery.
> **Design for that reality, or your app will fail quietly.**
---
## When to Use
This skill is applicable to execute the workflow or actions described in the overview.Related Skills
mobile_react_native
React Native best practices, hooks, navigation ve performance optimization.
mobile-ui-development-rule
General rules pertaining to Mobile UI development. Covers UI/UX best practices, state management, and navigation patterns.
mobile-security-expert
移动安全漏洞挖掘知识库,基于HackerOne公开报告提供Android和iOS应用的漏洞挖掘手法、技术细节和代码模式分析;用于安全研究人员和漏洞挖掘者学习参考、代码审计和漏洞检测指导。
mobile-security-coder
Expert in secure mobile coding practices specializing in input validation, WebView security, and mobile-specific security patterns.
mobile-offline-support
Implement offline-first mobile apps with local storage, sync strategies, and conflict resolution. Covers AsyncStorage, Realm, SQLite, and background sync patterns.
mobile-guide
Comprehensive mobile development guide for iOS, Android, React Native, and Flutter. Includes Swift, Kotlin, and cross-platform frameworks. Use when building mobile applications, iOS, Android, or cross-platform apps.
mobile-games
Mobile game development principles. Touch input, battery, performance, app stores.
mobile-frontend
React Native patterns, NativeWind styling, React Native Reusables components, mobile-specific patterns
mobile-first-design-rules
Focuses on rules and best practices for mobile-first design and responsive typography using tailwind.
mobile-development
Cross-platform and native mobile development. Frameworks: React Native, Flutter, Swift/SwiftUI, Kotlin/Jetpack Compose. Capabilities: mobile UI, offline-first architecture, push notifications, deep linking, biometrics, app store deployment. Actions: build, create, implement, optimize, test, deploy mobile apps. Keywords: iOS, Android, React Native, Flutter, Swift, Kotlin, mobile app, offline sync, push notification, deep link, biometric auth, App Store, Play Store, iOS HIG, Material Design, battery optimization, memory management, mobile performance. Use when: building mobile apps, implementing mobile-first UX, choosing native vs cross-platform, optimizing battery/memory/network, deploying to app stores, handling mobile-specific features.
mobile-developer
Develop React Native, Flutter, or native mobile apps with modern architecture patterns. Masters cross-platform development, native integrations, offline sync, and app store optimization. Use PROACTIVELY for mobile features, cross-platform code, or app optimization.
mobile-app-testing
Comprehensive mobile app testing strategies for iOS and Android. Covers unit tests, UI tests, integration tests, performance testing, and test automation with Detox, Appium, and XCTest.