Anthony Quéré (Anthony-Jhoiro)
- Authentification effectuée avec Firebase avec une authentification par téléphone (pour voir à quoi ça ressemblait)
- Certains tests unitaires ont été réalisés (on m'avait venté de leur simplicité, effectivement c'est très simple)
- Upload de photo de profil avec FirebaseStorage (je pensais que c'était obligatoire) - (*peu stable en mode développement, due à flutter/flutter#103892)
- Utilisation des streams pour mettre à jour l'utilisateur sur la page de profil quand il répond correctement à une question (L'approche des streams en dart est très intéressante et bien plus simple que ce que j'ai pu voir ailleurs)
# Install dependencies
flutter pub get
# Run tests
flutter test
# Format code
flutter format --fix .
# Analyze code with dart analyzer
flutter analyze .
lib/
├── assets
├── common
│ ├── datasources
│ │ └── remote # Classes to access remote APIs for firebase and the trivia API
│ ├── models # domains and dtos used in the Applications
│ │ └── dto # All Dto code with the json API generated by Mason
│ └── repository # Classes to interface the datasources
├── core
│ └── tools # Utilities
├── main.dart
├── main_router.dart
└── ui
├── common # Generic components
├── pages
│ ├── home
│ │ ├── game
│ │ │ ├── bloc # Cubit for the game page
│ │ │ ├── game_page.dart # Main widget for the game page
│ │ │ └── widgets # Widgets for the main page
│ │ ├── home_page.dart
│ │ ├── profile
│ │ │ ├── bloc
│ │ │ ├── profile_page.dart
│ │ │ └── widgets
│ │ └── ranking
│ │ ├── bloc
│ │ ├── ranking_page.dart
│ │ └── widgets
│ └── signup
│ ├── bloc
│ ├── signup_page.dart
│ └── widgets
└── theme.dart # Generated material theme
mason make model --model_name MODEL_NAME --additionals "[copyWith, json, equatable]" --style freezed
Générer les fichiers de base :
mason make freezed_cubit
Ensuite dans le _state.dart
ajouter les lignes pour les autres états (ça compile pas c'est normal 😱). Ensuite lancer
flutter pub run build_runner build
Et avec un peu de bol ça marche