mobile-design

Guides mobile app design decisions for iOS, Android, React Native, and Flutter with platform conventions and performance rules.

2|Updated May 30, 2026
One-click install
npx skills add https://github.com/virahitvin8/crafty-gis --skill mobile-design-virahitvin8
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mobile-design
Source: https://github.com/virahitvin8/crafty-gis/tree/main/GIT_STAR/.agent/skills/mobile-design
Command: npx skills add https://github.com/virahitvin8/crafty-gis --skill mobile-design-virahitvin8

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Mobile app development often suffers from AI-generated code that ignores platform conventions, uses ScrollView for long lists, skips touch target sizing, and applies memorized patterns without considering project context. This Skill enforces deliberate design thinking before writing mobile code. ## Core Features & Use Cases - Anti-Pattern Prevention: Explicit forbidden lists covering performance sins (ScrollView for lists, inline renderItem), touch/UX sins (touch targets under 44px), security sins (tokens in AsyncStorage), and architecture sins. - Platform Decision Guidance: Decision trees for framework selection (React Native vs Flutter vs native), state management (Zustand, Redux, Riverpod, BLoC), navigation patterns, and storage strategies. - Mandatory Checkpoint Workflow: Requires reading reference files and completing a design commitment checklist before writing any mobile code. - Use Case: When building a cross-platform e-commerce app, use this Skill to decide on React Native + Expo with tab navigation, TanStack Query for server state, and SecureStore for auth tokens, while avoiding common performance pitfalls. ## Quick Start Ask the AI to design a mobile app screen for iOS and Android and have it follow the mobile-design checkpoint process before writing any code.

Frequently Asked Questions about mobile-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I optimize FlatList performance in React Native?

Wrap list items in React.memo, memoize renderItem with useCallback, use a stable keyExtractor with item IDs instead of indexes, and provide getItemLayout for fixed-height items. Never use ScrollView with map for long lists since it renders all items at once.

React Native vs Flutter: which framework should I choose?

Choose React Native with Expo when you need OTA updates and have a web team familiar with React. Choose Flutter for pixel-perfect identical UI across platforms. Choose native SwiftUI or Kotlin when you need maximum performance or deep platform integration.

What is the minimum touch target size for mobile apps?

iOS requires a minimum of 44pt by 44pt and Android requires 48dp by 48dp for touch targets. Maintain at least 8-12px spacing between adjacent targets to prevent accidental taps, and place primary actions in the thumb zone at the bottom of the screen.

Where should I store authentication tokens in a mobile app?

Never store tokens in AsyncStorage since it is plain text and accessible on rooted devices. Use SecureStore on Expo, Keychain on iOS, or EncryptedSharedPreferences on Android. Keep short-lived access tokens in memory and refresh tokens in secure storage.

Why does my React Native animation lag and drop frames?

Animations lag when useNativeDriver is false, forcing work onto the JS thread. Set useNativeDriver to true and only animate transform and opacity properties. For animations requiring other properties, use Reanimated 3 which runs on the UI thread.

When should I use tab bar versus drawer navigation?

Use a tab bar for 3-5 top-level destinations of equal importance that users switch between frequently. Use drawer navigation when you have more than 5 destinations or less frequently accessed sections, since drawer items are hidden and less discoverable.