main
Tirage Classes — application mobile (Expo / React Native)
tirage aléatoire avec pondération par l'ancienneté du dernier tirage
Application 100% locale et hors-ligne (aucun compte, aucun serveur) : les classes et l'historique des tirages sont stockés sur l'appareil via AsyncStorage.
Prérequis : Node.js ≥ 20.19 (requis par Expo SDK 54).
Installation rapide (test avec Expo Go)
npm install
npx expo install --fix # aligne les versions des dépendances avec le SDK Expo
npx expo start
Scannez le QR code avec l'app Expo Go (iOS ou Android) : l'appli se lance instantanément sur votre téléphone, sans Xcode ni Android Studio.
Générer une appli installable (sans Expo Go), pour iOS et Android
Utilisez EAS Build (gratuit, nécessite un compte Expo) :
npm install -g eas-cli
eas login
eas build:configure
eas build --profile preview --platform all
Vous obtenez un lien de téléchargement direct (.apk pour Android à installer directement, .ipa pour iOS via TestFlight ou un profil ad-hoc).
Fonctionnalités
- Créer / modifier / supprimer des classes (nom, nombre d'élèves, pondération max)
- Tirer un élève au sort, pondéré par l'ancienneté du dernier tirage
- Bouton Re-tirer : annule le dernier tirage et en refait un immédiatement
- Historique complet des tirages par classe
- Aucune authentification, aucun réseau requis après installation
Structure
src/models.js— classesClasseetTirage(POO) : logique du tirage pondéré encapsulée en méthodes (classe.tirer(),classe.reTirer(),classe.calculerPoids()), sérialisation JSON (toJSON()/fromJSON()). Testable indépendamment de React Native.src/storage.js— persistance locale (AsyncStorage), manipule des instancesClassesrc/screens/— écrans (liste, formulaire, détail/tirage)App.js— navigation
Languages
JavaScript
100%