mobile-design

Guides mobile app design decisions for iOS, Android, React Native, and Flutter projects.

Updated Jul 7, 2026
One-click install
npx skills add https://github.com/singhaganesh/Urban-assist --skill mobile-design-singhaganesh
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mobile-design
Source: https://github.com/singhaganesh/Urban-assist/tree/main/.cursor/skills/mobile-design
Command: npx skills add https://github.com/singhaganesh/Urban-assist --skill mobile-design-singhaganesh

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 relies on memorized defaults—ScrollView for long lists, insecure token storage, tiny touch targets, and platform-agnostic patterns that feel wrong on iOS or Android. This Skill forces deliberate, context-based thinking before any mobile code is written. ## Core Features & Use Cases - Anti-Memorization Protocol: Mandatory checkpoints and questioning matrices that prevent default patterns (Redux everywhere, tab bars for everything) and require platform-specific analysis. - Performance Guardrails: Concrete rules for React Native (FlatList with memoized renderItem, useNativeDriver) and Flutter (const constructors, ListView.builder, dispose patterns) to maintain 60fps. - Platform Decision Support: Decision trees for framework selection (RN vs Flutter vs native), state management, navigation patterns, storage strategy, and offline sync. - Use Case: When asked to build a cross-platform e-commerce app, the Skill requires confirming platform, framework, and offline needs first, then applies thumb-zone layout, 44-48px touch targets, SecureStore for tokens, and cursor-based pagination. ## Quick Start Ask the AI to design a mobile app screen or feature and it will first complete the mandatory checkpoint covering platform, framework, and principles 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; choose Flutter for pixel-perfect identical UI across platforms; choose native SwiftUI or Kotlin for maximum performance and deep OS integration. The decision depends on team skills and project constraints.

What is the minimum touch target size for mobile apps?

iOS requires 44pt minimum touch targets and Android requires 48dp, with at least 8-12px spacing between adjacent targets. Primary actions should sit in the thumb zone at the bottom of the screen for one-handed use.

Where should I store auth tokens in a mobile app?

Store tokens in iOS Keychain, Android EncryptedSharedPreferences, or Expo SecureStore—never in AsyncStorage, which is plain text and accessible on rooted devices. Use short-lived access tokens in memory with long-lived refresh tokens in secure storage.

Why does my Flutter app rebuild too many widgets?

Excessive rebuilds usually come from setState overuse and missing const constructors. Add const to every widget that does not depend on state, and use ValueListenableBuilder or provider selectors to rebuild only the widgets that actually changed.

Does dark mode save battery on mobile devices?

Dark mode saves significant battery only on OLED screens, where black pixels are fully off. Use true black (#000000) for backgrounds to maximize savings, and desaturate colors in dark mode rather than simply inverting the light palette.