This repository was archived by the owner on Mar 21, 2025. It is now read-only.
Test technique Guillaume EBERT #3
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bonjour,
A travers cette PR je vous présente ma réalisation de votre sujet de test technique. Au fils de ce code, vous trouverez l'implémentation de mon savoir-faire sur une architecture multi-module avec des plugins Gradle.
Pourquoi du multi-module ?
Le multi-module est une des meilleures approches pour bien compartimenter les responsabilités de chacun et verrouiller l'accès aux classes à d'autre couche. (C'est ici qu'on regrette que le par défaut de Kotlin est public et non internal).
Les deux écrans sont représentés par deux features exposant publiquement uniquement deux méthodes d'extensions permettant de configurer le Navgraph implémenté dans l'application.
Dans le core on retrouve les couches classique d'une clean archicheture ainsi que des modules d'aides :
design-systemettests. Ces modules me permettent d'uniformiser le code commun pour le design des composants/Theme et des classes nécessaires pour mes tests unitaires.Chaque module est construit à l'aide de plugin Gradle disponible dans le sous-projet build-logic. On réduit énormément le boildercode.
Design
Le design est plus qu'élémentaire en respectant à minima les guidelines de material3. Le premier écran affiche une liste de 90 éléments avec des header sticky. Chaque section de la liste partage la même image qui est obtenu via un appel https à ma base. Mettre un appel Http en 2024 n'est pas possible pour moi !
Le second écran affiche des détails supplémentaires sur la carte. J'ai fait le choix de me focaliser sur le peaufinage de l'architecture.
Axe d'amélioration
Les clefs d'api sont en clair dans l'app ce qui est un risque sécuritaire majeur. Pour rester pragmatique, j'ai fait l'entorse sur la récupération de ses informations depuis un appel API. Il en va que dans un vrai environnement ceci est obligatoire.
En vous souhaitant une bonne lecture.