Introduction
Bienvenue sur la documentation du projet Brusketa ! Vous trouverez sur ce site toutes les informations concernant la façon dont est organisée notre façon de coder. L'objectif est d'homogénéiser nos pratiques de code pour fournir une application robuste. Nous essayons d'adopter les nouvelles fonctionnalités React afin de nous tenir à la page. Si vous avez des questions sur les outils React que nous utilisons, n'hésitez pas à consulter la documentation React (en français), qui est super claire : https://fr.reactjs.org/docs/.
Organisation des fichiers
Notre arborescence est découpée en plusieurs fichiers :
/screens: contient toutes les pages de l'application, composées de plusieurs composants ;/components: contient tous les composents granulaires de l'application. Certains de ces composants sont réutilisés les uns dans les autres. Ces composants peuvent accéder au contexte de l'application. La documentation des composants est disponible dans le menu "Components" (cf. barre latérale gauche) ;/assets: contient les ressources d'interface : icônes, fichier de traduction, etc. Toutes les ressources doivent y être placées ;/config: contient les fichiers de configuration ; par exemple les fichiers de connexion à Firebase ;/contexts: contient tous les contextes de l'application (plus d'informations).
Le fichier racine de l'application est App.js. Tous les contextes y sont fournis.
Contextes
Nous utilisons donc les contextes pour gérer les données de l'application. À chaque objet métier de la base de données correspond un contexte (Box pour boîte à idées, Category pour les catégories de boîtes à idées, etc.).
L'objectif est de conserver les contextes tout au long de la session d'utilisation de l'application. Par exemple, le contexte utilisateur UserContext permet de partager les données des utilisateurs entre tous les composants de l'application, sans avoir à les recharger depuis Firebase à chaque chargement d'un nouveau composant ou d'un nouvel écran. Ceci permet d'optimiser le nombre d'appels à Firebase
Tous les contextes sont fournis à la racine de l'application (dans le fichier App.js).
Hooks & composants fonctions
Tous nos composants sont des arrow-functions.
Async vs. sync
Les appels à la base de données Firebase sont quasiment tous asynchrones (pas de temps réel). Nous