Files
GameTime/.ideai/memory/gametime-dev-environment.md
Blomios 27d1e3b6a9 docs(ideai): met à jour les tickets et la mémoire projet après le scaffolding
Ajoute la note mémoire sur l'environnement de dev et reflète l'avancement
du ticket #2 (terminé) et le cadrage du ticket #3 dans les carnets/issues.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 18:02:28 +02:00

3.4 KiB

name, description, metadata
name description metadata
gametime-dev-environment memory note gametime-dev-environment
type
project

GameTime — Environnement de build local

Flutter SDK et Android SDK sont installés et opérationnels sur la machine du projet (2026-07-17). Premier APK debug buildé avec succès le 2026-07-17.

Flutter

  • Installé via le paquet AUR flutter-bin (3.44.6, stable), pas flutter (source AUR) — ce dernier a un conflit de dépendance avec dart déjà présent sur le système (dart<3.12.0 requis alors que 3.12.2 est installé).
  • Binaire flutter disponible dans /usr/bin/flutter (wrapper flutter-bin), SDK réel monté via unionfs sous ~/.cache/flutter_sdk.

Android SDK

  • Installé via le paquet AUR android-sdk-cmdline-tools-latest, posé dans /opt/android-sdk (appartenait à root par défaut — il a fallu chown -R anthony:anthony /opt/android-sdk pour que sdkmanager puisse installer des composants sans sudo).
  • Composants installés : platform-tools, platforms;android-34/35/36, build-tools;34.0.0/28.0.3/36.0.0, NDK 28.2.13676358, CMake 3.22.1 (certains installés automatiquement par Gradle au premier build).
  • Licences acceptées via sdkmanager --licenses.
  • flutter config --android-sdk /opt/android-sdk exécuté pour lier Flutter au SDK.

JDK — point de friction important

  • Le JDK système par défaut est java-26-openjdk (trop récent : Unsupported class file major version 70 avec Gradle 9.1 utilisé par le template Flutter).
  • Installé jdk21-openjdk (dépôt officiel Arch, pas besoin d'AUR) en complément, sans le mettre par défaut système.
  • Flutter configuré spécifiquement pour l'utiliser : flutter config --jdk-dir=/usr/lib/jvm/java-21-openjdk. Cette config est stockée dans la config Flutter (probablement ~/.config/flutter/settings ou équivalent), donc persistante indépendamment du JDK système par défaut.

Variables d'environnement persistées

Ajoutées dans ~/.zshrc, ~/.bashrc et ~/.config/fish/config.fish (le shell de login est zsh, mais les agents peuvent tourner en bash) :

ANDROID_HOME=/opt/android-sdk
ANDROID_SDK_ROOT=/opt/android-sdk
PATH inclut $ANDROID_HOME/cmdline-tools/latest/bin et $ANDROID_HOME/platform-tools

Limite connue

  • Pas de Chrome installé (web toolchain Flutter indisponible), sans impact puisque la cible du projet est mobile (Android/iOS), pas web.
  • Pas de device/émulateur Android connecté — seul flutter build apk --debug (sans device) est utilisable pour produire l'APK à transférer manuellement sur le téléphone de l'utilisateur (pas de flutter run direct sur device depuis cet environnement).
  • Les sandbox des agents (DevBackend, DevFrontend, etc.) n'ont pas d'accès réseau à pub.dev, contrairement à l'environnement de Main (Bash direct). Conséquence pratique : flutter pub get, flutter analyze (si dépend de packages non encore en cache) et flutter build apk doivent être exécutés par Main en vérification finale après le travail de code d'un agent, pas par l'agent lui-même. Les agents peuvent en revanche modifier pubspec.yaml, écrire du code Dart, etc.

Commande de build APK de référence

export ANDROID_HOME=/opt/android-sdk
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH"
cd /home/anthony/Documents/Projects/GameTime
flutter pub get && flutter analyze && flutter build apk --debug

APK produit : build/app/outputs/flutter-apk/app-debug.apk.