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>
46 lines
3.4 KiB
Markdown
46 lines
3.4 KiB
Markdown
---
|
|
name: gametime-dev-environment
|
|
description: memory note gametime-dev-environment
|
|
metadata:
|
|
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
|
|
```bash
|
|
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`. |