fredjuel-arc-skill
Fredjuel/arc-skill
★1
INSTALL
$
npx skills add Fredjuel/arc-skillRequires npx skills — the open source skill installer.
SKILL_DESCRIPTION
React Native Arc
Scaffold a complete React Native (Expo) project with production-ready architecture.
When to Use
- User wants to create a new React Native / Expo project
- User asks for mobile app boilerplate or starter template
- User needs project architecture guidance for React Native
- User mentions scaffolding, project setup, or mobile app structure
Pre-Flight
Ask the user for:
- Project name (used in
app.json, package name) - Brief description of the app
- Target platforms: iOS only, Android only, or both
- i18n needed? (default: yes)
- Auth flow needed? (default: yes)
- Navigation pattern:
tabs + stack(default),stack only, ordrawer + stack
Mobile Design Checkpoint (mandatory)
Before writing any code, complete:
Platform: [iOS / Android / Both]
Framework: React Native (Expo)
3 Principles:
1. Touch-first (44pt+ targets, thumb zone aware)
2. Platform-respectful (iOS HIG / Material Design 3)
3. Performance-first (FlatList, Reanimated, memo)
Anti-Patterns to Avoid:
1. ScrollView for lists
2. Hardcoded pixel values
3. Inline styles / anonymous functions in render
Architecture Reference Files
Read from skills/arc-skill/ before generating code:
Core Architecture:
project-structure.md— Folder tree, naming conventions, barrel exportsnavigation.md— React Navigation, typed hooks, deep linking, tab UXtheme.md— Theme system, color schemes, OLED dark mode, useStyles hookcomponents.md— Component file structure, touch targets, haptics, expo-imageapi-services.md— Axios HTTP client, interceptors, cursor paginationstorage.md— MMKV wrappers, typed access, React Query persistencestate-management.md— React Query setup, query/mutation patternsperformance.md— FlatList, images, animations, startup optimizationproviders.md— Provider stack order, AppInitializationtypescript.md— TSConfig, path aliases, type conventionslinting.md— ESLint, Prettier, Husky, lint-staged, import orderi18n.md— Lingui.js internationalization
Mobile Design System (skills/arc-skill/mobile-design/):
GUIDE.md— Master checklist and anti-patternstouch-psychology.md— Fitts' Law, thumb zones, hapticsmobile-performance.md— Deep optimization (16ms frame budget)mobile-navigation.md— Tab bar UX, state preservation, back handlingmobile-typography.md— SF Pro / Roboto, Dynamic Type, type scalesmobile-color-system.md— OLED, dark mode, WCAG contrastplatform-ios.md— iOS Human Interface Guidelinesplatform-android.md— Material Design 3mobile-backend.md— Offline sync, push notifications, auth patternsdecision-trees.md— Framework, state, storage decisionsmobile-testing.md— Testing pyramid (Jest, RNTL, Detox, Maestro)mobile-debugging.md— Reactotron, Flipper, profiling
Code Templates (skills/arc-skill/templates/):
component.md— Component with types, styles, constants, sub-componentsscreen.md— Screen with data fetching, forms, navigationhook.md— Custom hooks (useStyles, useAppTheme, useDebounce)api-service.md— API module + React Query hooks
Execution Steps
1. Initialize
npx create-expo-app@latest <project-name> --template blank-typescript
cd <project-name>
2. Install Dependencies
# Navigation
npx expo install @react-navigation/native @react-navigation/native-stack @react-navigation/bottom-tabs react-native-screens react-native-safe-area-context
# State & Storage
npx expo install @tanstack/react-query @tanstack/react-query-persist-client react-native-mmkv
# HTTP
npx expo install axios
# UI & Animations
npx expo install react-native-reanimated react-native-gesture-handler react-native-size-matters expo-blur expo-haptics expo-status-bar expo-image expo-splash-screen expo-font @expo/vector-icons react-native-keyboard-controller
# Forms (if auth)
npx expo install formik yup
# i18n (if enabled)
npm install @lingui/react @lingui/core
npm install -D @lingui/cli @lingui/macro @lingui/babel-plugin-lingui-macro
npx expo install expo-localization
# Dev tools
npm install -D typescript @types/react eslint prettier eslint-config-expo eslint-plugin-react-hooks eslint-plugin-react-native eslint-config-prettier husky lint-staged babel-plugin-module-resolver
3. Generate src/ Structure
Follow project-structure.md for the complete folder tree.
4. Generate Core Files (in dependency order)
- Types → 2. Constants → 3. Theme → 4. Storage → 5. API Client → 6. API Modules → 7. Store Services → 8. Hooks → 9. Providers → 10. Components → 11. Screens → 12. Navigation → 13. App Entry → 14. i18n
5. Configure Tooling
tsconfig.jsonwith path aliases (seetypescript.md)babel.config.jswith reanimated + lingui + module-resolver- ESLint + Prettier + Husky + lint-staged (see
linting.md) .env.example,app.json
6. Verify
npx expo start
Component Convention
component-name/
├── index.tsx # Component + barrel export
├── component-name.styles.ts # Styles via useStyles callback
├── component-name.types.ts # Props interface
├── component-name.constants.ts # (optional) Variants, sizes
├── component-name.utils.ts # (optional) Pure helpers
├── component-name.hooks.ts # (optional) Component hooks
└── components/ # (optional) Sub-components
├── index.ts
└── sub-component/
└── index.tsx
Critical Rules
- Styles via
useStyles()— never inlineStyleSheet.create - Sizing via
moderateScale— never hardcode pixels - API data via React Query — never call API directly in components
- Storage via typed MMKV wrappers — never raw access
- Navigation via typed
useAppNavigation()hook - Touch targets min 44pt (iOS) / 48dp (Android)
FlatListwithReact.memoitems — neverScrollViewfor listsexpo-image— never React NativeImage- Reanimated for animations — never
AnimatedAPI for complex motion - Barrel exports (
index.ts) in every folder - kebab-case folders, PascalCase exports
- Platform-respectful: iOS feels iOS, Android feels Android
- Dark mode:
#121212surfaces,#E8E8E8text, WCAG AA contrast - No
console.login production — blocks JS thread
Last indexed: 6/16/2026
COMMENTS(0)
NO_COMMENTS_YET. BE_THE_FIRST.
SIGN_IN_TO_LEAVE_A_COMMENT
[SIGN_IN]