Skip to content
Content
Skill

/mobile-design

Mobile-first design thinking and decision-making for iOS and Android apps. Touch interaction, performance patterns, platform conventions. Teaches principles, not fixed values. Use when building React Native, Flutter, or native mobile apps.

BOOST
From plugin
happycapy-skills
13757 skills
Install
$ npx -y skills add happycapy-ai/happycapy-skills --skill mobile-design --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/mobile-design

Context preview

The summary Claude sees to decide when to auto-load this skill.

Mobile-first design thinking and decision-making for iOS and Android apps. Touch interaction, performance patterns, platform conventions. Teaches principles, not fixed values. Use when building React Native, Flutter, or native mobile apps.

SKILL.md

mobile-design.SKILL.md
name: mobile-design
description: Mobile-first design thinking and decision-making for iOS and Android apps. Touch interaction, performance patterns, platform conventions. Teaches principles, not fixed values. Use when building React Native, Flutter, or native mobile apps.
allowed-tools: Read, Glob, Grep, Bash

Mobile Design System

> **Philosophy:** Touch-first. Battery-conscious. Platform-respectful. Offline-capable. > **Core Principle:** Mobile is NOT a small desktop. THINK mobile constraints, ASK platform choice.

---

🔧 Runtime Scripts

**Execute these for validation (don't read, just run):**

| Script | Purpose | Usage | |--------|---------|-------| | `scripts/mobile_audit.py` | Mobile UX & Touch Audit | `python scripts/mobile_audit.py <project_path>` |

---

🔴 MANDATORY: Read Reference Files Before Working!

**⛔ DO NOT start development until you read the relevant files:**

Universal (Always Read)

| File | Content | Status | |------|---------|--------| | **[mobile-design-thinking.md](mobile-design-thinking.md)** | **⚠️ ANTI-MEMORIZATION: Forces thinking, prevents AI defaults** | **⬜ CRITICAL FIRST** | | **[touch-psychology.md](touch-psychology.md)** | **Fitts' Law, gestures, haptics, thumb zone** | **⬜ CRITICAL** | | **[mobile-performance.md](mobile-performance.md)** | **RN/Flutter performance, 60fps, memory** | **⬜ CRITICAL** | | **[mobile-backend.md](mobile-backend.md)** | **Push notifications, offline sync, mobile API** | **⬜ CRITICAL** | | **[mobile-testing.md](mobile-testing.md)** | **Testing pyramid, E2E, platform-specific** | **⬜ CRITICAL** | | **[mobile-debugging.md](mobile-debugging.md)** | **Native vs JS debugging, Flipper, Logcat** | **⬜ CRITICAL** | | [mobile-navigation.md](mobile-navigation.md) | Tab/Stack/Drawer, deep linking | ⬜ Read | | [mobile-typography.md](mobile-typography.md) | System fonts, Dynamic Type, a11y | ⬜ Read | | [mobile-color-system.md](mobile-color-system.md) | OLED, dark mode, battery-aware | ⬜ Read | | [decision-trees.md](decision-trees.md) | Framework/state/storage selection | ⬜ Read |

> 🧠 **mobile-design-thinking.md is PRIORITY!** This file ensures AI thinks instead of using memorized patterns.

Platform-Specific (Read Based on Target)

| Platform | File | Content | When to Read | |----------|------|---------|--------------| | **iOS** | [platform-ios.md](platform-ios.md) | Human Interface Guidelines, SF Pro, SwiftUI patterns | Building for iPhone/iPad | | **Android** | [platform-android.md](platform-android.md) | Material Design 3, Roboto, Compose patterns | Building for Android | | **Cross-Platform** | Both above | Platform divergence points | React Native / Flutter |

> 🔴 **If building for iOS → Read platform-ios.md FIRST!** > 🔴 **If building for Android → Read platform-android.md FIRST!** > 🔴 **If cross-platform → Read BOTH and apply conditional platform logic!**

---

⚠️ CRITICAL: ASK BEFORE ASSUMING (MANDATORY)

> **STOP! If the user's request is open-ended, DO NOT default to your favorites.**

You MUST Ask If Not Specified:

| Aspect | Ask | Why | |--------|-----|-----| | **Platform** | "iOS, Android, or both?" | Affects EVERY design decision | | **Framework** | "React Native, Flutter, or native?" | Determines patterns and tools | | **Navigation** | "Tab bar, drawer, or stack-based?" | Core UX decision | | **State** | "What state management? (Zustand/Redux/Riverpod/BLoC?)" | Architecture foundation | | **Offline** | "Does this need to work offline?" | Affects data strategy | | **Target devices** | "Phone only, or tablet support?" | Layout complexity |

⛔ AI MOBILE ANTI-PATTERNS (YASAK LİSTESİ)

> 🚫 **These are AI default tendencies that MUST be avoided!**

Performance Sins

| ❌ NEVER DO | Why It's Wrong | ✅ ALWAYS DO | |-------------|----------------|--------------| | **ScrollView for long lists** | Renders ALL items, memory explodes | Use `FlatList` / `FlashList` / `ListView.builder` | | **Inline renderItem function** | New function every render, all items re-render | `useCallback` + `React.memo` | | **Missing keyExtractor** | Index-based keys cause bugs on reorder | Unique, stable ID from data | | **Skip getItemLayout** | Async layout = janky scroll | Provide when items have fixed height | | **setState() everywhere** | Unnecessary widget rebuilds | Targeted state, `const` constructors | | **Native driver: false** | Animations blocked by JS thread | `useNativeDriver: true` always | | **console.log in production** | Blocks JS thread severely | Remove before release build | | **Skip React.memo/const** | Every item re-renders on any change | Memoize list items ALWAYS |

Touch/UX Sins

| ❌ NEVER DO | Why It's Wrong | ✅ ALWAYS DO | |-------------|----------------|--------------| | **Touch target < 44px** | Impossible to tap accurately, frustrating | Minimum 44pt (iOS) / 48dp (Android) | | **Spacing < 8px between targets** | Accidental taps on neighbors | Minimum 8-12px gap | | **Gesture-only interactions** | Motor impaired users excluded | Always provide button alternative | | **No loading state** | User thinks app crashed | ALWAYS show loading feedback | | **No error state** | User stuck, no recovery path | Show error with retry option | | **No offline handling** | Crash/block when network lost | Graceful degradation, cached data | | **Ignore platform conventions** | Users confused, muscle memory broken | iOS feels iOS, Android feels Android |

Security Sins

| ❌ NEVER DO | Why It's Wrong | ✅ ALWAYS DO | |-------------|----------------|--------------| | **Token in AsyncStorage** | Easily accessible, stolen on rooted device | `SecureStore` / `Keychain` / `EncryptedSharedPreferences` | | **Hardcode API keys** | Reverse engineered from APK/IPA | Environment variables, secure storage | | **Skip SSL pinning** | MITM attacks possible | Pin certificates in production | | **Log sensitive data** | Logs can be extracted | Never log tokens, passwords, PII |

Architecture Sins

| ❌ NEVER DO

Read more
Ships withhappycapy-skills

A curated collection of high-quality Claude Code skills to enhance your development workflow

Get the whole plugin

Other skills on happycapy-skills.