Cladèse documentation

Application mobile

Le parcours apprenant en application Flutter, pour Android, iOS et Linux. Le studio reste sur le web.

Périmètre#

InclusHors périmètre
Connexion par email et mot de passe, session conservéeStudio : création, téléversement, réordonnancement, comptes
Catalogue, détail formation, progressionsLecture hors ligne
Lecteur vidéo et audio, reprise, vitesse, ±10 s, précédent / suivantNotifications
Notes horodatées : création, édition, suppression, seek au tapChangement de mot de passe (depuis le web)
Lecture des résumés ; transcription, génération et édition du résumé pour les administrateurs
Documents de la leçon, assistant de formation
Consommation IA : tokens sur 7, 30 ou 90 jours, par jour et par usage
Thème clair, sombre ou système

La position de lecture est sauvegardée avec un anti-rebond de 500 ms, et forcée à la pause, au passage en arrière-plan et en quittant l'écran. Un apprenant qui commence sur le web reprend sur son téléphone en se connectant avec le même compte.

Connexion et session#

Si la connexion affiche « Cette API ne gère pas la connexion par compte », l'URL vise une API d'une version antérieure : vérifiez l'adresse dans les Paramètres.

Lecture : video_player et chewie pour la vidéo, just_audio pour l'audio sur mobile ; media_kit (libmpv) sur desktop.

Configuration de l'API#

cd e-learning-mobile
cp .env.template .env      # obligatoire : le fichier est embarqué comme asset
CibleAPI_URL
Émulateur Androidhttp://10.0.2.2:8000
Simulateur iOShttp://localhost:8000
Téléphone réelhttp://<IP-LAN>:8000
Desktop Linux sur la machine de l'APIhttp://localhost:8000
ProductionHTTPS, via --dart-define=API_URL=https://…

Ordre de priorité, du plus fort au plus faible :

  1. le panneau Paramètres de l'application (icône engrenage, présente dès l'écran de connexion) : saisie, test de /health, enregistrement ;
  2. --dart-define=API_URL=… ;
  3. le fichier .env ;
  4. http://10.0.2.2:8000.
Le .env est lu au lancement Embarqué comme asset, il n'est pas rechargé par le hot reload. Relancez l'application, ou changez l'URL depuis le panneau Paramètres.

Lancer#

Flutter 3.47+ et Dart 3.13+. Sur Linux desktop, installez aussi libsecret-1-dev, libmpv-dev et mpv.

flutter pub get
flutter run -d android
flutter run -d linux

Sur Linux, le runner force l'ancien moteur de rendu à la place d'Impeller : avec Impeller, quitter le lecteur vidéo fait planter le moteur Flutter. Rien à faire de votre côté.

Construire pour Android#

La compilation demande l'Android SDK API 37 (exigence de flutter_secure_storage 11+). Le pas-à-pas complet — détection du téléphone, APK, installation par adb — est dans e-learning-mobile/docs/how-to-build-android.md.

flutter build apk --release --dart-define=API_URL=http://192.168.1.20:8000
adb install -r build/app/outputs/flutter-apk/app-release.apk
Téléphone et API sur le même réseau localhost sur le téléphone désigne le téléphone. Utilisez l'IP LAN de la machine qui fait tourner l'API, et vérifiez que le port 8000 est joignable.