2026-09-04 14:37:40 +02:00
2026-09-04 14:37:40 +02:00
2026-09-04 14:37:29 +02:00
2026-09-04 14:37:40 +02:00
2026-09-04 14:37:40 +02:00
2026-09-04 14:37:40 +02:00
2026-09-04 10:59:47 +00:00
2026-09-04 14:37:40 +02:00
2026-09-04 14:37:40 +02:00
2026-09-04 14:37:40 +02:00

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 — classes Classe et Tirage (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 instances Classe
  • src/screens/ — écrans (liste, formulaire, détail/tirage)
  • App.js — navigation
S
Description
tirage aléatoire avec pondération par l'ancienneté du dernier tirage
Readme GPL-3.0
132 KiB
Languages
JavaScript 100%