Codolingo est une application permettant d'apprendre les bases de la programmation de manière simple et ludique. Vous trouverez dans ce dépôt le code source front-end du projet.
flutter run -t ./lib/main_dummy.dart --flavor dummy
flutter run -t ./lib/main_dev.dart --flavor dev
flutter run -t ./lib/main_staging.dart --flavor staging
flutter run -t ./lib/main_prod.dart --flavor prod
Lorsqu'un asset est ajouté, il est nécessaire de lancer une commande pour pouvoir y accéder à partir de l'objet Asset :
dart run build_runner build
- Lancement des tests :
flutter test
- Génération des mocks en utilisant mockito :
dart run build_runner build
Il existe deux types de providers dans le projet :
- Live : Se connecte à une api pour recevoir les données du Backend
- Dummy : Récupère les données en local comme réponse du Backend
Les repositories utilisés ne sont pas les mêmes en fonction du provider utilisé.
L'application utilise GetIt pour pouvoir injecter des dépendances dans l'application. L'injection de dépendance est utile car elle permet de tester beaucoup plus facilement des parties de l'application.
Il est possible d'injecter une dépendance en utilisant GetIt comme ceci :
final getIt = GetIt.instance;
ApiRepository repository = getIt.get<ApiRepository>();
Une dépendance peut être ajoutée dans le système d'injection de dépendance en l'ajoutant dans les providers :
- Dummy : ./lib/providers/dummy_provider.dart
- Live : ./lib/providers/live_provider.dart
- Les deux : ./lib/providers/provider.dart
Attention, ce n'est pas parce qu'on peut injecter des repositories partout qu'il faut le faire :
- Un ViewModel ne peut que utiliser des Repositories
- Un Repository ne peut que utiliser des Repositories, des Services et des Transformers
- Un Service ne peut que utiliser des Services
- Un Transformer ne peut que utiliser des Transformers
Impossible de lancer l'application : (Missing MainActivity)
adb uninstall <PACKAGE>