mobilelisted
Install: claude install-skill vendeesign/codebloom
# Mobile Dev — Patterns natifs et cross-platform
Se charge automatiquement quand du code touche Android, iOS, Flutter ou React Native.
## Règles universelles (tous les frameworks)
### Touch targets & Spacing
- Touch targets : **48x48dp** minimum (44pt iOS) — primary actions **56x56dp**
- Spacing grid : multiples de **8dp** (4, 8, 16, 24, 32, 48)
- Primary actions dans la **thumb zone** (moitié basse de l'écran)
### Accessibilité (non-négociable)
- Chaque élément interactif a un label accessible (`contentDescription` Android, `accessibilityLabel` iOS/RN)
- Ne pas décrire le type d'élément dans le label : "Sauvegarder" pas "Bouton Sauvegarder"
- Contraste texte : 4.5:1 (normal), 3:1 (grand texte ≥18sp)
- Ne jamais communiquer l'information par la couleur seule
- Respecter `prefers-reduced-motion` / `accessibilityReduceMotion`
- Support Bold Text et Increase Contrast
### Animation
- Animer uniquement `transform` et `opacity` — jamais layout (width, height, margin, padding)
- 60fps cible = < 16ms par frame
- Désactiver parallax/3D sur `pointer: coarse` (mobile)
### Navigation
- Tab bar : 3-5 sections principales, reste visible pendant la navigation
- Back swipe toujours fonctionnel
- Préserver l'état entre les tabs
- **Jamais** de hamburger menu / drawer comme navigation principale
---
## Android (Kotlin / Jetpack Compose)
### Fondation
Avant la logique métier : `./gradlew assembleDebug` doit réussir.
### Kotlin — Règles clés
- **Null safety** : éviter `!!` (crash