# Matrice de validation beta 0.1.0 ## Objectif La phase beta n'ajoute pas de nouveau gameplay. Elle valide la stabilité du socle existant sur les runtimes et appareils réellement supportés par `0.1.0`. ## Desktop SDL3 natif Jeux : - Reflex ; - Snake. Smokes : ```bash cargo run -p game-reflex-poc-desktop cargo run -p game-snake-poc-desktop ``` Critères : - fenêtre créée ; - rendu correct ; - contrôles clavier/souris fonctionnels ; - sortie propre. ## Desktop Tauri / WASM Jeu POC : - Reflex. Smoke : ```bash cd crates/apps/game-reflex-poc-tauri cargo tauri dev ``` Critères : - Vite démarre via le hook Tauri ; - WASM est reconstruit via le hook Tauri ; - rendu Reflex visible ; - score mis à jour ; - traces Rust et TypeScript visibles ; - `Escape` traverse `QuitRequest` / `QuitDecision` puis ferme proprement. ## Android x86_64 AVD Jeux : - Reflex ; - Snake. Critères : - build Rust x86_64 ; - assemblage APK ; - installation ; - démarrage ; - tactile ; - Back Android. ## Android ARM64 réel Appareil de référence déjà utilisé : ```text Samsung Galaxy S9+ arm64-v8a ``` La beta doit au minimum revalider Snake et, si possible, Reflex sur appareil physique. Le tactile physique est évalué séparément de l'AVD, car la qualité de contrôle observée peut différer fortement. ## Provenance Les résultats de test conservent les dimensions de provenance pertinentes : ```text PlatformFamily DeviceClass ExecutionModel RuntimeHost InputProfile ``` Cette provenance décrit l'environnement ; elle ne décide pas automatiquement si deux scores doivent être classés ensemble. ## Packaging Desktop natif ```bash cargo build -p game-reflex-poc-desktop --release cargo build -p game-snake-poc-desktop --release ``` ## Packaging Tauri Le frontend ne doit pas être construit manuellement comme gate indépendante. ```bash cd crates/apps/game-reflex-poc-tauri cargo tauri build ``` Le hook `beforeBuildCommand` reconstruit WASM puis exécute le build Vite/TypeScript. ## Packaging Android beta Pour la beta, l'APK Debug reste l'artefact de validation multi-appareils. La signature et le packaging de publication sont réservés à la phase RC/stable. ## Gate lourde de phase La transition alpha vers beta justifie : ```bash cargo test --workspace --all-targets --all-features ``` Cette suite complète ne devient pas une gate de chaque futur correctif beta. ## Logcat Android Le buffer doit être vidé avant le lancement du jeu, pas après : ```bash adb -s logcat -c adb -s shell am start -n / adb -s logcat | grep -iE 'games\.sasedev|com\.sasedev\.games|SDL|AndroidRuntime|FATAL|panic' ``` Android utilise un subscriber `tracing` dédié à logcat. ## Back Android 16 Les applications ciblent API 36 et laissent Android exécuter la navigation Back système. Pour la launcher Activity racine : - aucun callback `PRIORITY_DEFAULT` ne consomme Back ; - `android:enableOnBackInvokedCallback="true"` reste explicitement activé ; - sur API 36+, `PRIORITY_SYSTEM_NAVIGATION_OBSERVER` trace l'action sans bloquer le Back-to-home ; - le bouton Back injecté par `adb shell input keyevent 4` constitue un smoke système valide si le contrôle graphique de l'AVD ne relaie pas correctement Back. Le moteur SDL conserve `AcBack` pour les plateformes qui émettent cet événement.