0% ont trouvé ce document utile (0 vote)
30 vues20 pages

Rapport de Stage

Le rapport de stage de Bochra ARFAOUI présente la migration d'un module de gestion des rapports de Xamarin vers Flutter au sein de l'entreprise Expensya, spécialisée dans la gestion des dépenses. Le stage, effectué durant l'été 2022, a permis de découvrir des méthodes de développement Agile et d'acquérir des compétences en programmation mobile. Expensya, une startup franco-tunisienne, vise à automatiser la gestion des notes de frais pour améliorer l'efficacité des entreprises.

Transféré par

nouha.jridi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues20 pages

Rapport de Stage

Le rapport de stage de Bochra ARFAOUI présente la migration d'un module de gestion des rapports de Xamarin vers Flutter au sein de l'entreprise Expensya, spécialisée dans la gestion des dépenses. Le stage, effectué durant l'été 2022, a permis de découvrir des méthodes de développement Agile et d'acquérir des compétences en programmation mobile. Expensya, une startup franco-tunisienne, vise à automatiser la gestion des notes de frais pour améliorer l'efficacité des entreprises.

Transféré par

nouha.jridi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ministère de l’Enseignement Supérieur

et de la Recherche Scientifique
  
Université de Carthage
  
Institut National des Sciences
Appliquées et de Technologie

Rapport de Stage Obligatoire d'Été

Filière : Réseaux Informatiques et Télécommunications


Niveau : 3ème Année

Sujet :

Migration du module gestion des rapports de Xamarin


à Flutter

Réalisé par : Bochra ARFAOUI

Entreprise d’accueil :

Année Universitaire : 2021/2022


Ministère de l’Enseignement Supérieur
et de la Recherche Scientifique
  
Université de Carthage
  
Institut National des Sciences
Appliquées et de Technologie

Rapport de Stage Obligatoire d'Été

Filière : Réseaux Informatiques et Télécommunications


Niveau : 3ème Année

Sujet :

Migration du module gestion des rapports de


Xamarin à Flutter
Réalisé par : Bochra ARFAOUI

Entreprise d’accueil : Expensya

Responsable à l’entreprise: Avis de la commission des stages


M. Mahdi BEN AMOR

Année Universitaire : 2021/2022


Glossaire

Progiciel : application complète qui permet d’effectuer plusieurs tâches bien spécifiques à un
domaine d’activité.
ERP : Entreprise resource planning, progiciel de gestion intégré
Framework : ensemble cohérent de composants logiciels structurels qui sert à créer les
fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel, c'est-à-dire une
architecture.
Développement natif : développement pour un système d’exploitation précis, en utilisant des
technologies spécifiques à ce système.
cross-platform : est un logiciel conçu pour fonctionner sur plusieurs plateformes informatiques.
SDK : Software development kit, kit de développement logiciel.
UI : User Interface, interface d’utilisateur
UX : User Experience, expérience d’utilisateur
Méthode agile : des pratiques s'appuyant sur l’utilisation d’un cadre méthodologique léger mais
suffisant centré sur l’humain et la communication, préconisant une planification adaptative, un
développement évolutif, une livraison précoce et une amélioration continue et flexible.
1. Introduction

Naturellement attirée par le monde du développement mobile, j’ai très rapidement décidé
d’orienter mes recherches de stage en ce sens, ayant pour projet de mêler passion et vie
professionnelle. C’est ainsi que, du 1er juillet au 31 août 2022, j’ai eu la chance de rejoindre
l’équipe mobile, sous-équipe de l’équipe R&D, de l’entreprise Expensya en tant que stagiaire
ingénieure logiciel, sous la tutelle de mon parrain Mahdi Ben Amor.

Spécialisée dans la gestion des dépenses au sein des entreprises depuis 2014, Expensya
fait partie des entreprises incontournables du domaine de la Fintech (Technologie Financière).
S’avérant être un travail très coûteux si elle n’est pas automatisée, la firme s’est notamment donné
pour but d’automatiser le processus de gestion des dépenses.
Pour rester en avance par rapport aux concurrents, Expensya s'efforce constamment d'améliorer
et de rendre sa solution plus pratique, en veillant à ce qu'elle soit fonctionnelle et qu'elle ne
contienne pas de bugs, mais surtout qu'elle soit adaptée et rentable. C'est pourquoi Expensya
cherche toujours à utiliser les dernières technologies performantes, en veillant à ce que ses
applications web et mobiles soient à jour et maintenues, tout en laissant une marge
d’amélioration.

Intégrée dans l’équipe Mobile, j’ai ainsi eu l’opportunité de participer à la migration de


l’application mobile d’une ancienne technologie qui ne sera plus prise en charge d'ici novembre
2022 (Xamarin) vers une nouvelle technologie qui ouvre les portes à plus de créativité en matière
d'UI/UX et plus de rentabilité pour l'équipe (Flutter).

Afin de refléter au mieux les deux mois que j’ai passé au sein de mon entreprise d’accueil, il me
semble approprié de se pencher, en premier lieu, sur la place qu’occupe Expensya dans le secteur
de la Fintech en Tunisie et en France, mais également sur ses aspirations à l’international. Par la
suite, je m'intéresserai aux problématiques et objectifs de mon stage. Suite à ceci, je présenterai
mon journal de stage sous la forme d’un diagramme de Gantt. Enfin, je retracerai les tâches que
j’ai accomplies et les différents savoirs que j’ai acquis durant mon stage.
2. Présentation de l’entreprise d’accueil

Expensya est une startup multinationale franco


franco-tunisienne
tunisienne fondée en 2014. Elle
développe des solutions web et mobiles pour automatiser la gestion des notes de frais
professionnelles. L'idée d'Expensya est née d'un problème : les professionnels et les comptables
passent beaucoup de temps à gérer les notes de frais, ce qui entraîne une perte de temp
temps
considérable pour les parties impliquées. La solution consiste à scanner automatiquement les
factures et à détecter les différents champs (valeur, TVA, pays, catégorie, etc.), à gérer les
hiérarchies de validation, les règles de remboursement et plus enc
encore
ore en fournissant un module
de numérisation intelligent.

Figure 1 : Logo d’Expensya

La solution Expensya comporte plusieurs modules, la rendant complète vis


vis--à-vis des besoins de
ses clients et des offres des concurrents :
● Reconnaissance intelligente : ceci permet au client d’éviter la saisie manuelle de ses
frais, en extrayant automatiquement les données avec les algorithmes OCR, en
fournissant des scans multi
multi-formats
formats pour traiter les différents formats de reçues, et en
traitant les factures reçues p
par mail.
● Gestion des notes de frais : le client peut gérer ses dépenses d’une manière simple et
rapide.
● Exportation de données : le client peut facilement exporter toutes ses notes de frais, ou
les envoyer à son manager ou à son comptable.
● Intégration des comptables : le comptable de l’entreprise peut facilement superviser et
contrôler les dépenses de ses employés et valider leurs rapports de dépenses.
● Intégrations des ERPs : Expensya peut communiquer avec des logiciels de comptabilité
tels que QUICKBOOKS eett propose l’exportation dans des formats personnalisés
d’autres ERP ou logiciels de comptabilité tels que SAGE.
● Statistiques : Le client peut contrôler les dépenses de son entreprise grâce au module de
statistiques d’Expensya, basé sur la technologie Power BI de Microsoft.

Grâce à son aspect intuitif, simple et adaptatif, la solution Expensya s’aligne avec les besoins des
entreprises de toutes tailles, allant des TPE jusqu’aux GE, ce qui fait que l’entreprise compte
aujourd’hui plus de 5 000 entreprises cclientes
lientes en France. Expensya vise également d’autres
marchés, en utilisant plus de 12 langues et couvrant plus de 30 pays.

Afin d’organiser le travail au sein de l’entreprise, le personnel d’Expensya est divisé en


plusieurs équipes, chacune d’entre elles éétant
tant responsable d’un ensemble de tâches spécifiques.

Figure 2 : Organigramme globale de l’entreprise


Figure 3 : Organigramme de l’équipe R&D

Mon stage s’est déroulé dans l’équipe Mobile, au sein de l’équipe mère : Dev. J’ai eu l’opportunité
d’échanger avec d’autres équipes à maintes occasions. L’objectif principal de notre équipe est de
développer et de maintenir l’interface, les services et les fonctionnalités mobile d’Expensya.
3. Objectifs visés

3. 1 Définition d’un rapport de dépenses

Dans le monde de la gestion des dépenses, le rapport est l’une des entités les plus
importantes. Un rapport ou une note de frais permet à un employé de se faire rembourser des
frais professionnels qu’il a payés pour le compte de son employeur. Il prend le plus souvent la
forme d’un formulaire rempli par le salarié et remis à son entreprise.

Dans la solution Expensya, la note de frais est composée de plusieurs dépenses et


possède un état. Chaque état représente une action de l’un des acteurs du workflow :
● Actif : état préliminaire de chaque rapport qui n’a pas reçu de décision finale.
● Brouillon : état signifiant que le rapport est en cours de rédaction, et n’a pas encore été
envoyé au responsable.
● Pré-soumis : le rapport a été envoyé à un examinateur pour une première vérification
(avant celle du manager).
● Soumis : le rapport est entièrement vérifié par l’employé et envoyé au manager. Il ne peut
plus être modifié.
● En validation : lorsque le rapport passe par plusieurs validateurs, il n’est pas encore validé
par tous les validateurs.
● Validé : Le rapport est accepté.
● Validé et exporté : Le rapport a été validé par le manager (accepté) et a été envoyé au
comptable pour une validation finale. Dans cet état, ni l'employé ni le manager ne
peuvent plus modifier le contenu du rapport.
● Clôturé : Etat final du rapport. Si un rapport est clôturé, cela signifie qu'il est accepté par
le comptable et le salarié sera remboursé.
● Remboursé : état indiquant que l'employé a été remboursé.

3. 2 Problématique
Dans le monde de la programmation, de nouveaux frameworks améliorés et offrant de
nouvelles fonctionnalités apparaissent de temps à autre pour répondre aux nouveaux besoins des
développeurs. D'un autre côté, les frameworks les plus anciens deviennent pour la plupart
obsolètes et ne sont plus pris en charge, ce qui rend les applications écrites dans ces langages
difficiles à maintenir, criblées de bugs et sans marge d'amélioration. Ce qui est le cas pour
l'application mobile Expensya écrite avec Xamarin.

Xamarin est un Frame


Framework
work dédié au développement d’applications mobiles cross-
cross
platform. Il est basé sur le Framework .NET et utilise le langage C#. Il offre la possibilité de
créer un seul code source logique codé en C# et transférable sur plusieurs OS cibles. Pour la
partie visuelle
isuelle de l’application, il existe deux options :
● Xamarin.Android et Xamarin.IOS permettant de créer une interface native pour chaque
OS cible.
● Xamarin.Forms permettant de créer un seul design cross
cross-platform
platform pour Android, IOS et
Windows Phone.

Bien que l’utilisation du langage C# – fortement typé – y ajoute une couche de protection contre
les éventuels bugs générés par un code approximatif, l’utilisation de Xamarin présente des
faiblesses.

Xamarin ne permet pas la création d’interfaces utilisat


utilisateurs
eurs complexes ou contenant des
graphismes lourds. De plus, la taille de l’application est aussi un inconvénient de Xamarin par
rapport à ses concurrents. Comme elle n’est pas comprise par le système d’exploitation du
téléphone mobile, elle emporte avec el
elle
le d’autres outils pour la faire fonctionner (runtime,
assemblage de libraires de classes de base,...) qui l’alourdissent grandement.

Figure 4 : Taille d'une application "Hello World" avec Xamarin [1]

En outre, la communauté utilisant Xamarin est de plus en plus petite; il sera donc plus difficile de
trouver des réponses aux questions lorsqu’il y aura un problème.
C’est pour toutes ces raisons que l’équipe mobile a décidé de migrer vers Flutter.
Flutter est un SDK d’interface open-source développé par Google, qui se base sur le
langage Dart. Il permet de créer des applications compilées en mode natif à partir d’un seul
morceau de code. Les applications créées en utilisant Flutter sont multiplateformes. Il n’est plus
nécessaire de créer une base de code propre à chaque système. Le concept principal de Flutter est
« Tout est un widget ». Ceci intègre systématiquement la programmation orientée objet jusque
dans l’interface utilisateur ; l’interface d’un programme est composée de différents widgets
imbriqués les uns dans les autres, ce qui permet un debugage plus facile et de l’indépendance de
chaque widget. Flutter offre une large librairie et plusieurs paquets de widgets qui ne cessent de
s’élargir grâce à la communauté Flutter.

3. 3 Objectif de stage
Ce stage vise à migrer le module de gestion des rapports de Xamarin vers Flutter.
4. Journal de stage

Figure 5 : Diagramme de Gantt des différentes phases du stage


(Vert : phase d’initiation. Jaune: les deux sprints. Rouge: finalisation du projet)
5. Travail réalisé
1. Se familiariser avec les méthodes et les outils de travail :

Durant ces deux derniers mois, et comme ce stage est ma première fenêtre sur le monde
professionnel, j'ai eu l'occasion de découvrir diverses méthodes et outils utilisés dans le monde
professionnel. Je vais en présenter une partie dans la suite de mon rapport..

a. Sprint

Dans le développement de produits Agile, un sprint est une période de temps définie
pendant laquelle un travail spécifique doit être terminé et préparé pour être potentiellement
délivré. La durée d’un sprint est une période d’un mois maximum et une fois choisie, elle reste,
la plupart du temps, constante pendant toute la période de développement. Chaque sprint a un
objectif et il est associé à une liste d’éléments du produit livrable (fonctionnalités).[2]
Dans mon équipe, le sprint dure deux semaines, et les objectifs sont fixés toutes les deux
semaines le lundi. Lors d'une réunion d'une heure, les objectifs du sprint sont passés en revue
pour déterminer ceux qui sont atteints (marqués de couleur verte), ceux qui sont en cours
(marqués de couleur jaune) et ceux qui ne sont pas encore commencés (marqués de couleur
rouge). Les objectifs non commencés et en cours sont reportés au nouveau sprint. Un sprint
réussi est un sprint majoritairement vert. Lors de cette même réunion, chaque membre de
l'équipe présente une démonstration du travail qu'il a réalisé ou sur lequel il travaille.

Mon projet de stage était divisé en deux sprints, à l'issue desquels j'ai pu livrer mon travail
dans les délais.

Afin de ne pas perdre de vue les objectifs de sprint, ces derniers de sprint sont passés en
revue lors de notre réunion quotidienne également appelée Team Sync.

b. Team Sync

Chaque jour, l’équipe se réunit pour un point de synchronisation rapide. Chaque membre de
l’équipe répond généralement à ces trois questions[3] :

● Qu’ai-je accompli hier qui a contribué à ce que l’équipe atteigne l’objectif du sprint?
● Qu’est-ce que je prévois faire aujourd'hui pour contribuer à ce que l’équipe atteigne
l’objectif du sprint?
● Est-ce que je vois un obstacle qui pourrait m’empêcher ou empêcher l’équipe d’atteindre
l’objectif du sprint?
c. Code review (Examen du code)

Un examen de code consiste à vérifier continuellement et systématiquement le code des pairs


pour les erreurs et d’avoir votre code vérifié par les pairs. Cet examen est conçu pour identifier
les bugs, améliorer la qualité du code et aider les développe urs à apprendre le code source.[4]
développeurs

Les revues de code garantissent que les développeurs livrent le code de la plus haute qualité
grâce à des évaluations systématiques conçues pour identifier les bugs. Elles agissent comme
une assurance qualité du code.

Un développeur est encouragé, avant de délivrer son code, de faire une auto
auto-révision, puis
l’examen
n de code sert à obtenir un deuxième avis pour identifier les erreurs qui lui ont échappé.

Figure 6 : Processus de révision du code[5]

d. Différentes plateformes

Durant mon stage, j'ai eu la chance de me familiariser avec quelques plateformes.

● Microsoft Windows Azure : aussi connu comme Azure. C’est une plate-
plate
forme de cloud computing, offrant des solutions telles que l’infrastructure en tant que
service (IaaS), la plate-forme
forme en tant que service (PaaS) et le logiciel en tant que service
(SaaS) qui peuvent être utilisées pour des services tels que l'analyse, la virtualisation
informatique, stockage, mise en réseau et bien plus encore. Il peut être utilisé pour
remplacer ou compléter les serveurs sur site. Azure est une plateforme rapide, flexible
et abordable : elle simplifie la maintenance et l’exploitation des applications, adapte le
runtime et le stockage à la demande, et gère les services Web ainsi que les applications
connectées.[6]
● Sentry : C’est une plate
plate-forme de rapport de plantage qui fournit un aperçu en temps réel
des déploiements de production avec des informations pour reproduire et corriger les plantages.

Elle vous informe des exceptions ou des erreurs rencontrées par vos utilisateurs lors de
l'utilisation de votre application et lles
es organise pour vous sur un tableau de bord Web. Les
exceptions signalées incluent automatiquement les traces de pile, les informations sur l'appareil,
la version et tout autre contexte pertinent ; vous pouvez également fournir un contexte
supplémentaire spécifique à votre application, comme l'itinéraire actuel et l'ID utilisateur. [7]

Figure 7 : Dashboard de Sentry

Sentry m'a aidé à résoudre le premier bug qui m'a été assigné. J'ai pu avoir des captures
d'écran pour savoir quelle vue est affectée, et cconnaître
onnaître la méthode exacte qui déclenche
l'exception et ainsi connaître les étapes de reproduction de l'exception.

● App Center : C’est un service cloud qui regroupe plusieurs services couramment utilisés
par les développeurs mobiles. App Center peut être utilisé pour plusieurs services afin de créer,
tester et déployer des applications, mais aussi l'analyse des données d'utilisation et de plantage,
les notifications push, l'authentification des utilisateurs et la synchronisation des données. Visual
Studio App Center peut être utilisé avec de nombreuses technologies de développement
d'applications mobiles.

Grâce à l’App Center, le développeur est informé en temps réel des problèmes et peut surveiller
la santé de l'application. App Center permet également de développer votre audience en vous
concentrant sur ce qui est important, avec des rapports détaillés sur les sessions des utilisateurs,
les principaux appareils, les versions de système d’exploitation, les analyses comportementales et
ts pour iOS et Android. [8]
le suivi des évènements
J'ai personnellement utilisé App Center lors de la préparation de ma présentation de fin
de stage pour avoir un aperçu du nombre de transactions effectuées et des rapports créés au
cours du dernier mois.

Figure 8 : Dashboard du Microsoft App Center

2. Participer au bug
bug-bash de l’équipe Service

Définition : Dans le développement logiciel, un bug


bug-bash
bash est une procédure où tous les
développeurs, testeurs, responsables de programmes, chercheurs en utilisabilité, concepteurs,
responsables de la documentation et même parfois des responsables marketing, mettent de côté
leurs tâches quotidiennes habituelles pour se concentrer exclusivement sur le produit. C'est
C'est-à-dire
que tout le monde part à la chasse au bugs, en essayant de nombreux scénarios. Étant donné que
chaque personne utilisera le produit de manière légèrem
légèrement
ent différente (ou très différente) et que
le produit est largement utilisé en peu de temps, cette approche peut révéler des bugs assez
rapidement.

Durant mon premier mois de stage, j'ai participé au bug


bug-bash
bash de la migration du service. On m'a
donné un ensemble
emble de 12 scénarios de test à exécuter avec un délai prédéfini. Chaque scénario de
test se compose de plusieurs étapes (le nombre d'étapes variant entre 12 et 60). Je devais effectuer
chaque étape puis vérifier que le résultat obtenu était le même que le résultat attendu. Sinon, j'ai
dû ajouter un bug issue. Dans mon cas, 10 scénarios de test sur 12 ont bien fonctionné. Pour les
deux autres où le résultat attendu n’a pas été obtenu, j'ai signalé des bugs en précisant le compte
de test et les étapes de reproduction, et j'ai affecté les bugs aux équipes concernées par les
fonctionnalités défaillantes. J'ai ensuite été contactée par des membres de ces équipes pour
fournir des détails supplémentaires.

Participer à ce bug-bash m'a permis de mieux connaître la solution Expensya. En essayant


plusieurs cas d'utilisation, j'ai pu découvrir les différentes fonctionnalités que propose Expensya,
et j'ai aussi appris à paramétrer un compte utilisateur depuis le backend .

3. Développer une interface utilisateur du module de gestion


des rapports:
Concernant l'objectif principal de mon stage, j'ai développé l'interface utilisateur du module de
gestion des rapports. En plus de consolider ce que je savais déjà sur la création d'interfaces
utilisateur d'applications mobiles avec Flutter, j'ai eu l'occasion d'utiliser des widgets que je ne
connaissais que théoriquement et de découvrir de nouveaux paquets utiles.

Mais d'abord, qu'est-ce qu'un widget ?

Un widget est une description immuable d'une partie d'une interface utilisateur, compte tenu de
sa configuration et de son état actuel.[9] Lorsque l'état d'un widget change, le widget reconstruit sa
description, que le framework compare à la description précédente afin de déterminer les
changements minimaux nécessaires dans l'arborescence de rendu sous-jacente pour passer d'un
état à l'autre. Les widgets constituent la hiérarchie centrale des classes dans le framework
Flutter.[10] Et comme on dit : dans Flutter, tout est un widget à l'intérieur d'un widget.

Construire uniquement l'interface utilisateur ne suffit pas. Il faut aussi s'assurer que l'interface est
toujours fonctionnelle dans les différents scénarios. C'est pourquoi il est crucial de tester
l'application avant de la publier. Mais plus une application a de fonctionnalités, plus il est difficile
de la tester manuellement. Pour cette raison, nous écrivons des tests automatisés qui aident à
garantir que l'application fonctionne correctement dans tous les cas d'utilisation.

Pour les tests automatisés, il existe 3 catégories [11] :

● Les Unit Tests : pour tester une seule fonction, méthode ou classe.
● Les Widget Tests : pour tester les widgets (principalement des tests de UI).
● Les Integration Tests : pour tester une application complète ou une grande partie d'une
application.

Dans le cadre de mon projet, j'ai travaillé sur les deux premiers types. J'ai écrit des widget tests
liés au module de gestion des rapports, en tenant compte de différents scénarios (lorsque la liste
des rapports est vide, lorsqu'elle ne l'est pas, lorsqu'
lorsqu'un
un rapport n'a pas de factures jointes,
lorsqu'un rapport est en mode lecture seule, etc.). J'ai également écrit des unit tests pour garantir
l'exactitude des modèles de données utilisés par notre application (principalement en testant que
les énumérations attribuées sont correctes).

Figure 9 : Interface du module de gestion des rapports


6. Conclusion
Ce stage a été très enrichissant pour moi car c'était avant tout une opportunité de découvrir le
monde professionnel. En rejoignant les rangs d'Expensya, je me suis d'abord familiarisée avec le
fonctionnement interne d'une entreprise. Rapidement mise à l'aise par les membres de mon
équipe, j'ai pu m'intégrer à l'équipe Mobile et participer concrètement à ses objectifs à travers mes
différentes tâches.

Concernant mon projet de stage, jusqu'à présent j'ai pu réaliser l'interface utilisateur du module de
gestion des rapports avec succès, et ma prochaine étape sera de travailler sur la logique métier du
module.

Maintenant, je me sens plus à l'aise avec le Flutter Framework, j'ai une vision un peu plus claire
de mon avenir professionnel qu'auparavant et je me suis habituée à travailler dans un cadre
professionnel. J'estime avoir beaucoup appris durant ces deux mois et suis maintenant certaine
d'avoir fait le bon choix d'entreprise d'accueil.
Références
[1] ALTEXSOFT, 2018b. Pros and Cons of Xamarin vs Native Mobile Development :
[https://www.altexsoft.com/blog/mobile/pros-and-cons-of-xamarin-vs-native/]. 8 mai 2018.
Consulté le 21 août 2022.
[2] Vicki-Lynn Brunskill, What is a Sprint (Agile Software Development) :
[https://www.techtarget.com/searchsoftwarequality/definition/Scrum-sprint] 21 août 2019.
Consulté le 22 août 2022.
[3] GROWS Method, Team Sync : [https://growsmethod.com/practices/TeamSync.html ] 16
novembre 2015. Consulté le 22 août 2022.
[4] GITLAB, What is code review? : [https://about.gitlab.com/topics/version-control/what-
is-code-review/] 28 février 2021. Consulté le 24 août 2022.
[5] MathWorks, Best Practices for Code Reviews :
[https://www.mathworks.com/discovery/code-review.html ] 7 mai 2020. Consulté le 24 août
2022.
[6] CCB Technology, Microsoft Azure Explained [https://ccbtechnology.com/what-
microsoft-azure-is-and-why-it-matters/ ] 21 septembre 2015. Consulté le 27 août 2022.
[7] Expo documentation , Using Sentry : [https://docs.expo.dev/guides/using-sentry/ ] 25
août 2021. Consulté le 27 août 2022.
[8] Sreeraj P R, Why Visual Studio App Center is Good for Implementing CI and CD in
Mobile App Development [https://blog.vsoftconsulting.com/blog/why-visual-studio-app-
center-is-good-for-implementing-ci-and-cd-in-mobile-app-development ] 18 octobre 2020.
Consulté le 27 août 2022.
[9] Flutter Documentation, Widget Class [https://api.flutter.dev/flutter/widgets/Widget-
class.html ] 19 mai 2019. Consulté le 31 août 2022.
[10] Flutter Documentation, Introduction to Widget
[https://docs.flutter.dev/development/ui/widgets-intro ] 22 novembre 2021. Consulté le 31
août 2022.
[11] Flutter Documentation, Testing Flutter apps [https://docs.flutter.dev/testing ] 11
décembre 2021. Consulté le 31 août 2022.

Vous aimerez peut-être aussi