This repository was archived by the owner on Mar 21, 2025. It is now read-only.
Test technique Guillaume EBERT#3
Open
GuillaumeEbert wants to merge 11 commits intoChargeMap:masterfrom
Open
Conversation
Architectural backbones remove .idea Inital commit Build Logic System Manifest for designsystem as its an android library Move Theme, Color and Type classes from app module to designsystem module AcafsxbApplication to enable Hilt functionalities Remove redundant label in app manifest AcafsxbApp and structural navigation system Create NavHost and set it in AcafsxbApp composable Replace default composable in MainActivity by AcafscbApp composable Remove composable from project creation Add planes feature screen Add Network module to core module Acafsxb source Planes screen with network connection and top/bottom bars Add Weather feature Toolbar title change WeatherDataSouce Add Simple Screen loading Rework lib and add compose 1.4.0-alpha Make test available on type lib module Add EmbeddedTabLayout component Add WeatherMap to DI Module weatherMenu as Menu and not as a bench screen Add Cache logic with WeatherMapCache Rename plane feature entry function Provide WeatherRepository Add log to flow catch for more situation awareness MenuEntry title as string resources Empty MetarTafScreen Weather internal navgraph Generic map call from repository WeatherMapScreen Repo and data source Truncate if there is too much map Uodate to compose 1.4.0 Add weather Exit from hibernation after 4 months Balance Screen Base from my application Rebase upsie
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.