claude/lib/project-archetypes/mobile-expo.md
bastien 3c8b2a8f68 feat(archetypes): add project archetype library + detection algorithm
Introduce ~/.claude/lib/project-archetypes/ with 25 archetype files
(web, mobile, APIs, CMS, infra, firmware, etc.) and the detection
algorithm in lib/archetype-detector.md. Consumed by /onboard STEP 1
to drive archetype-specific audit stacks and plugin recommendations.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-21 22:37:07 +02:00

4.6 KiB
Raw Permalink Blame History

name category public database hosting_hints audit_stack plugins
mobile-expo mobile true optional
app-store
play-store
expo-go
eas-build
analyze
code-clean
design-review
perf
cso
a11y
doc
context7 ui-ux-pro-max gstack
yes yes no

Mobile Expo / React Native

Application mobile React Native gérée par Expo (managed workflow) ou bare React Native. Distribution iOS + Android via App Store / Play Store, ou Expo Go en dev.

Detection signals

Strong signals (×3)

  • FILE: app.json OR app.config.js OR app.config.ts contenant "expo"
  • DEP: package.json contient "expo"
  • FILE: metro.config.js OR metro.config.ts
  • DEP: "react-native"

Medium signals (×2)

  • DEP: "expo-router", "@expo/vector-icons", "expo-font"
  • DIR: app/ (Expo Router file-system routing) avec .tsx
  • DIR: assets/ avec icon.png, splash.png
  • FILE: eas.json (EAS Build)
  • FILE: babel.config.js avec preset "babel-preset-expo"

Weak signals (×1)

  • DIR: android/, ios/ (bare workflow uniquement)
  • DEP: "react-navigation" OR "@react-navigation/native"
  • DEP: "@supabase/supabase-js" OR "firebase" OR "@tanstack/react-query"

Counter-signals

  • DEP: "next" ET .tsx au root → c'est Next.js (web), pas Expo
  • FILE: astro.config.* → Astro

Implications

  • Distribution : App Store (iOS), Play Store (Android), Expo Go (dev), internal distribution (TestFlight/Play Console Internal)
  • Base de données : locale (AsyncStorage / SQLite / MMKV / WatermelonDB) + backend (Supabase / Firebase / API custom)
  • SEO/GEO : N/A (app native)
  • Surface sécurité : GRANDE — AsyncStorage non chiffré par défaut, secrets côté app, deep links exploitables
  • UI/UX : CRITIQUE — mobile = exigences spécifiques (gestures, haptics, safe area)

Typical pain points

  • Secrets / API keys dans app.json → exposés dans le bundle
  • AsyncStorage utilisé pour tokens → JWT en clair sur l'appareil
  • Pas d'expo-secure-store ou react-native-keychain pour secrets
  • Permissions iOS/Android demandées mal justifiées (rejet review)
  • Performances : listes longues sans FlatList/FlashList (re-render entier)
  • Images non optimisées / pas de expo-image (cache + formats)
  • Pas de splash screen configuré → écran blanc au démarrage
  • Icône app basse résolution
  • Deep links non configurés / configurés sans validation
  • Pas de crash reporting (Sentry / Bugsnag absents)
  • Expo SDK obsolète (upgrade annuel obligatoire)
  • Bare workflow sans CI/CD (builds manuels en local)
  • Tests E2E absents (Detox / Maestro non configurés)
  • i18n absent ou hardcodé
  • Accessibilité : accessibilityLabel absent, focus order cassé, contrast insuffisant
  • Dark mode pas supporté (useColorScheme non utilisé)
  • Safe area non respectée (contenu sous notch / home indicator)
  • Gestures conflits (swipe drawer vs swipe back iOS)
  • Over-the-air updates (expo-updates) non utilisées
  • app.json "version" / "buildNumber" non incrémentés

Interview questions (adaptive)

En plus du set minimum business :

  • Workflow : Expo managed / Expo bare / pur React Native ?
  • SDK Expo version ?
  • Navigation : Expo Router / React Navigation / autre ?
  • State : Redux / Zustand / Jotai / Context / React Query seul ?
  • Backend : Supabase / Firebase / API custom / BaaS autre ?
  • Auth : provider + storage (SecureStore / Keychain / AsyncStorage) ?
  • Database locale : AsyncStorage / MMKV / SQLite / WatermelonDB / Realm ?
  • Push notifications : Expo Push / FCM / OneSignal / aucun ?
  • Crash reporting : Sentry / Bugsnag / aucun ?
  • Analytics : Amplitude / Mixpanel / PostHog / Firebase / aucun ?
  • Tests : unit (Jest) + E2E (Detox / Maestro) ?
  • Build + distribution : EAS Build + EAS Submit / Xcode/Gradle manuels / CI custom ?
  • Over-the-air updates activées ?
  • Cible OS : iOS min version / Android min API level ?
  • Dark mode supporté ?
  • i18n : librairie + langues ?
  • Accessibilité : audit VoiceOver / TalkBack effectué ?
  • App Store Review : première soumission faite / rejetée / en cours ?

Plugin recommendations

  • context7 : ON — Expo SDK évolue vite (breaking chaque SDK)
  • ui-ux-pro-max : ON — mobile UX spécifique
  • gstack : OFF (pas de browser QA)

Example project layout (Expo Router)

app.json                  OR  app.config.ts
package.json
metro.config.js
babel.config.js
eas.json
app/
  _layout.tsx             (root layout)
  index.tsx               (home)
  (tabs)/
    _layout.tsx
    home.tsx
    profile.tsx
  auth/
    login.tsx
components/
  Button.tsx
  Card.tsx
hooks/
lib/
  supabase.ts
assets/
  icon.png
  splash.png
  adaptive-icon.png
  fonts/
.env.example