MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE REPUBLIQUE DU MALI UN PEUPLE-UN BUT-UNE FOI -------------------------------------- DIRECTION NATIONALE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE ENI ABT Ecole Nationale d’Ingénieurs – Abderhamane Baba Touré 410, Av. Van Vollenhoven BP 242 – Tél : (223) 20 22 27 36 – Fax : (223) 20 21 50 38 / Bamako – MALI. Département Informatique Rapport de Mini-projet de Fin d’étude Thème : Développement d’application mobile 3eme année Licence GIT –S6 Noms et Prénoms Date : 11/04/2022 Dépôt : 12/08/2022 Ousmane SANOGO Drissa Sidiki TRAORE Durée : 2 mois et Demi Prof. Responsable : Dr. SIDIBE Prof. Tuteur : Mr. KONATE NOTE APPRECIATION ………………… /20 1 Liste des abréviations : API : Application Programming Interface App. : Application Appli. : Application AVD : Android Virtual Device BaaS : Backend-as-a-Service Caté. : Catégorie ENI-ABT : Ecole National d’Ingénieurs – Abderhamane Baba Touré de Bamako ETC. : Etcétéra GPS : Global Position System Inf. : Informatique Info. : Information IOS : Iphone Operating Système (1) IU : Interface User MCD : Modèle Conceptuel de Donnée M-Marqueting : Mobile Marketing NoSQL : Not only Structured Query Language Pdf. : Portable Document Format Prof. : Professeur RAM : Random Access Memory SDK : Software Development Kit (Kit de Développement Logiciel) UML : Unified Modeling Language URL : Uniform Resource Locator UX : User eXperience 2 SOMAIRE : Table des matières 1 Introduction :........................................................................................................................................... 4 2 Pourquoi OpenClass ? ............................................................................................................................. 4 3 2.1 Objectif : ......................................................................................................................................... 5 2.2 Buts : ............................................................................................................................................... 5 Analyse des besoins :............................................................................................................................... 7 3.1 Description :.................................................................................................................................... 7 3.2 Les Exigences : ................................................................................................................................ 8 3.2.1 Exigences Fonctionnelles : .......................................................................................................... 8 3.2.2 Exigences non-fonctionnelles : ................................................................................................... 9 3.3 3.3.1 Modelio : .................................................................................................................................. 11 3.3.2 Android studio : ........................................................................................................................ 13 3.3.3 Firebase : .................................................................................................................................. 14 3.3.4 Le framework Flutter : .............................................................................................................. 15 3.3.5 Figma : ...................................................................................................................................... 16 3.3.6 Un Ordinateur portable : .......................................................................................................... 17 3.3.7 Un émulateur Android :............................................................................................................ 17 3.4 4 Etude de la faisabilité & risques : ................................................................................................. 18 Conception : .......................................................................................................................................... 19 4.1 5 Les technologies utilisées : ........................................................................................................... 11 Diagrammes : ................................................................................................................................ 20 4.1.1 Diagramme de Use-case ou cas d’utilisation : .......................................................................... 20 4.1.2 Diagramme d’activité global :................................................................................................... 21 4.1.3 Diagramme de classe : .............................................................................................................. 29 4.2 Les différentes interfaces utilisateurs : ........................................................................................ 30 4.3 Développement : .......................................................................................................................... 52 Intégration Firebase : ............................................................................................................................ 53 5.1 Le cloud FireStore : ....................................................................................................................... 53 5.2 Firebase Authentification : ........................................................................................................... 54 5.3 Le cloud Storage : ......................................................................................................................... 54 6 Conclusion : ........................................................................................................................................... 57 7 Références ............................................................................................................................................. 58 3 1 Introduction : De nos jours, l’informatique et toutes ses technologies telles que le réseau informatique, les systèmes de télécommunication, la micro-électronique révolutionnent et innovent avec un pas important le monde, surtout dans ces dernières décennies. Bien étant donné que ces derniers soient non-parfait, tout de même ils nous ont apporté de grands conforts dans notre quotidien et cela, en majeur partie, grâce à leur capacité à traiter l’information dans un délai raisonnable. D’où les profits de portabilité, de mobilité permettant non seulement l’accès en temps réel, l’accès à distance mais aussi avec un flux d’information ininterrompu. Les applications mobiles sont devenues les indispensables du smartphone. Qu’elles soient payantes ou gratuites, elles sont la plupart temps fournies par les plateformes Android et IOS. L’avenu des applications mobiles impactent beaucoup dans de nombreux domaines comme la data science, le m-marketing, le big data, de nouveaux business model comme la publicité sur appli mobile, et métiers comme développeurs mobiles furent leurs apparitions. D’où, ce projet de création d’une application mobile baptisée « OpenClass » afin de palier à un problème évident à savoir : le partage rapide et efficace de ressource, précisément dans le milieu scolaire ; 2 Pourquoi OpenClass ? Tout d’abord, il faut s’avoir qu’il y a plusieurs types d’application mobile en fonction de leurs modes de fonctionnement : Les applications natives : Il s’agit de la majorité des applications que nous téléchargeons chaque jour ; Elles sont développées spécifiquement pour un des systèmes d’exploitation utilisé par les Smartphones et tablettes et permet généralement d’utiliser toutes les fonctionnalités liées au système d’exploitation visé (GPS, appareil photo, etc.) ➢ L’avantage de ce type d’application peut être : son temps de réaction, sa stabilité (car installée directement sur dans la mémoire du mobile, Elle permet également de développer des fonctionnalités avancées adaptées aux besoins des utilisateurs. Elle convient donc parfaitement aux projets les plus complexes ; ➢ Son inconvénient pourrait être : son coût (chère car les développeurs d’applications mobiles sont rares) et demande à être développer sur chaque système. Les applications web : Ce sont des applications accessibles depuis un navigateur mobile et hébergées sur un serveur, donc n’implorant pas d’installation. ➢ Son avantage est que : Ne nécessite pas de téléchargement ni aucune mise à jour ne sont nécessaires ; mobilise peu de ressources financières ; son développement et son déploiement sont rapides et faciles ; ne présente aucun problème de compatibilité avec les systèmes d’exploitation du mobile ; 4 ➢ Son inconvénient pourrait être : sollicite cependant une connexion à internet ; pas de possibilités de notifications push, d’alertes… ; non optimisée pour tous les formats d’écran ; la rapidité d’exécution est faible car elle dépend du débit internet ; Les applications hybrides : C’est une application à la fois native et web et est accessible sur toutes les plateformes d’application. Elles sont réputées moins performantes et moins fluides. ➢ Avantages : le code est écrit une fois et déployé ensuite sur toutes les plateformes mobiles et peut être réutilisé pour d’autres nouvelles versions ; le temps et le coût de développement moindre ; ➢ Inconvénients : transitions entre les pages plus lentes, dépendance vis à vis de la vitesse du navigateur ; A la fin ce projet, nous devons avoir en main une application native due aux caractéristiques des technologies utilisées pour son élaboration. 2.1 Objectif : Malgré l’immersion évolutive de la notion d’application mobile dans le monde, on peut constater le maintien de l’ancien système de partage d’information dans le secteur éducative du Mali, qui propose des services lents et pénibles. Son développement et sa bonne maîtrise constituent aujourd’hui un sujet capital au sein d’un système de partage. C’est dans cette optique que nous est parvenue l’idée de la création de « OpenClass » afin de palier à ce fléau. En effet, cette application n’a pour objectif que de : • • • • • • Fournir un outil de communication plus facile d’utilisation et plus organiser pour les élèves et étudiants. Faciliter le regroupement des élèves et étudiants en vue de leur aider dans leurs études. Permettre la création de « classe », comme nos salles de classes traditionnelles Permettre d’avoir les informations à jours en temps réel par rapport à ses classes Garder une ressource (informations, documents, images, …) à long terme ; Et enfin développer nos compétences en création d’application mobile ; 2.2 Buts : Le cerveau humain préfère les images aux textes et par conséquent les gens ne retiennent jamais les URLs exactes. Tout le monde passe par Google un moteur de recherche pour accéder à un site. Avec une application, plus besoin de retenir d’URL et c’est accessible rapidement en cliquant sur une icône facile à retenir contrairement à un site web. Ceci est illustré par la figure suivante : 5 Figure : Site Mobile Vs App Mobile (2) OpenClass donnera lieu de : • • • • • • • • • • Augmenter la notoriété de l’école malienne ; Se mettre à jour avec l’évolution technologique ; Bénéficier des avantages de l’informatique et de ses différentes technologies citées un peu plus haut ; Avec cette application mobile, l’intégration des fonctionnalités d’un téléphone sera favorisée et l’expérience utilisateur deviendra ainsi plus développé ; Elle permettra une portabilité facile et à temps réel des informations ; Permettra de répondre aux besoins dus à la distance, nous citons rassemblement dans un salon virtuel (discussion publique) ; Une parfaite ergonomie est assurée pour les applications mobiles en comparaison aux sites mobiles cela encourage les utilisateurs à demeurer fidèles aux applis. En effet, le développement d’application mobile tient compte la taille du Smartphone, le temps de chargement et autres paramètres. Les applications mobiles favorisent l’intégration des options de téléphone et ainsi, l’expérience utilisateur devient plus développée. Pas besoin d’avoir accès à l’internet pour que l’application fonctionne. Facile à trouver sur les stores par rapport aux sites mobiles, les applications mobiles ont connu ainsi un usage plus répandu auprès des jeunes surtout qu’elles notifient sur les événements en cours. 6 3 Analyse des besoins : 3.1 Description : C’est une application basée sur le principe de « classe ». Une sorte de réseau social / Professionnel Une « classe » est équivalente à nos salles de classes traditionnelles dans laquelle il y’a plusieurs élèves, un responsable et éventuellement un professeur. Comme exemple de classe nous avons par exemple la classe GIT-L3-S6, la classe TSE (Terminal Science Exacte), etc. Une « classe » est divisé en des « salles ». Les « salles » sont des parties de la « classe » dans lesquels une action précise est effectué. Comme exemple d’action précise nous avons par exemple : • • • Le partage de document, on partage uniquement les documents Le partage d’information, on partage uniquement les nouvelles concernant la classe ou autre chose La discussion, on discute unique sur les choses qui nous intéresse, comme par exemple sur les cours. Dans la création d’une « classe », il y’a à la base 3 « salles » disponibles qui sont : la salle information, la salle bibliothèque et la salle discussion. Dans la salle ‘’information’’ on partage les nouvelles, les actualités. C’est seulement le responsable de la classe qui a le droit de partagé les informations, les autres peuvent uniquement voir l’information mais ne peuvent pas le modifier. Dans la salle ‘’bibliothèque’’ on partage des documents, des fichiers, etc. Elle est accessible et modifiable par tous. Dans la salle ‘’discussion’’, comme son nom l’indique, on discute des choses qui nous intéresses. Elle est accessible par tous. Les salles ‘’information’’, ‘’bibliothèque’’ et ‘’discussion’’ font partie chacune d’une « catégorie ». La « catégorie » défini le type de la « salle » et chaque salle doit appartenir à une catégorie. Dans notre projet, il y’a donc à la base 3 catégories qui sont : ‘’les informations’’, ‘’les documents’’ et ‘’discussion’’. La salle ‘’information’’ appartient donc à la catégorie ‘’les informations’’, la salle ‘’bibliothèque’’ appartient à la catégorie ‘’les documents’’ et la salle ‘’discussion’’ appartient à la catégorie ‘’discussion’’. Pour mieux comprendre, on peut prendre pour référence l’application mobile « Discord » 7 Porté de l’application : ➢ Portée Fonctionnelle Afin de délimiter la portée de cette application, nous allons lister ce que le système doit faire en deux phases : la petite et la grande portée. La petite portée est la restriction de la grande dans le seul d’être précis dans la définition du problème. • Grande portée : S’inscrire ; S’authentifier ; Créer classe ; Ajouter adjoint ; Partager ressource ; Se déconnecter ; • Petite portée : Se connecter ; Partager ressource ; Se déconnecter ; ➢ Portée dimensionnelle : Cette application est destinée à toute institution, organisation ou un groupe de personne se voyant dans la nécessité d’un travail collectif impliquant l’échange à distance. Et ceci en se basant sur le système éducatif malien en général, de l’ENI-ABT en particulier. 3.2 Les Exigences : 3.2.1 Exigences Fonctionnelles : La spécification des essais d'intégration de l’application doit indiquer les points suivants : Une « classe » est créé par une seule personne qu’on appellera « responsable » de la classe. C’est le « responsable » qui va ajouter ses camarades dans la classe. Dans la création d’une « classe », il y’a à la base 3 « salles » disponibles qui sont : la salle information, la salle bibliothèque et la salle discussion. 8 C’est seulement le responsable de la classe qui a le droit de partager les informations, les autres peuvent uniquement voir l’information mais ne peuvent pas le modifier. Accessibilité Salle Information Tous les utilisateurs Salle Bibliothèque Salle Discussion Tous les utilisateurs Tous les utilisateurs Modifiable Responsable & adjoint seulement Tous les utilisateurs Tous les utilisateurs Le responsable (User) peut créer autant de « salle » qu’il le souhaite et ainsi organiser sa classe selon ses besoins Les utilisateurs de l’application ne sont pas limités en nombre de classe, chaque utilisateur peut créer autant de classes avec autant de salles qu’il le souhaite. Chaque utilisateur doit au moins appartenir à une « classe ». Un utilisateur doit avoir la possibilité de discuter avec un autre utilisateur même si ce dernier appartient à une autre classe, mais à condition qu’il possède le contacte de la personne Quelles données d’entrée le système doit accepter ? Les données doivent être conforme au type de champs, donc du texte, des fichiers (documents, image) Quels traitements le système doit effectuer ? Il doit effectuer des traitements de matching (vérification), d’insertion, d’extraction Quels types de données le système doit produire ? Les mêmes qu’en entrée 3.2.2 Exigences non-fonctionnelles : Exigences du système : Dans cette section, on s’appuie surtout sur l’utilisabilité, efficacité, la fiabilité, la maintenabilité et la réutilisabilité. Pour cela il sollicite : • Un temps de réponse valable, une rapidité d’insertion ou d’extraction de ressource, ce qui définit la fiabilité ; Le temps de réponse d'une application classique ou d'une application web est la somme de plusieurs composantes : • Le temps de traitement interne de la transaction (temps de calcul, d'accès aux bases de données, ...) 9 • • • Le délai induit par le réseau de transmission Le délai induit par le dispositif d'affichage (écran, client lourd, navigateur web, smartphone, …) Un traitement sur la disponibilité des ressources et la reprise après échec afin d’éviter de planter l’application Exigences organisationnelles : Elles se réfèrent non seulement à la sureté de fonctionnement, à la sécurité, l’évolutivité, la précision… mais aussi à la méthodologie de développement utilisée Selon Leveson, la sûreté d'un logiciel implique d'assurer qu'il s'exécutera sans induire de risque non acceptable (3). Autrement dit, la confiance que l'on peut placer dans l'accomplissement des missions attribuées au logiciel. Figure : Sureté de fonctionnement (4) Dans le cadre de ce projet, la méthodologie utilisée fut le cycle de vie en spiral (Boehm 88). Dans cette dernière, les phases ne se déroulent pas de manière unique, étape par étape, mais en plusieurs fois, en suivant une spirale. À travers cette répétition cyclique, le projet avance relativement lentement vers les objectifs fixés, mais en contrepartie le risque que le processus de développement échoue est drastiquement réduit au moyen de contrôles réguliers. 10 C’est une méthodologie en 4 étapes fondamentales : (5) 1. 2. 3. 4. Détermination et limiter des objectifs, des alternatives et des contraintes ; Analyse des risques, évaluation des alternatives ; Développement et vérification de la solution retenue ; Revue des résultats et vérification du cycle suivant. Cet alinéa concerne aussi les technologies utilisées pour l’élaboration de l’application. 3.3 Les technologies utilisées : Dans l’ambition de réaliser cette application mobile, nous avons eu à utiliser un certain nombre de technologies parmi lesquelles des logiciels, des plateformes, environnement de développement intégré… 3.3.1 Modelio : Modelio est un logiciel de modélisation UML très complet, existant dans une version gratuite et une entreprise disposant de plus de fonctionnalités. Dès la version gratuite, cette application supporte de très nombreux diagrammes comme ceux de classe, de cas d'utilisation, d'états, de 11 séquence ou encore d'objets. Son interface s'avère être claire et personnalisable via des modules selon les besoins. On l’utilisa dans sa dernière version 4.1.0 gratuite. Cette application nous a permis donc de générer un grand nombre de schémas indispensable au développement d'applications. Il s’agit entre autres le diagramme de use-case ou cas d’utilisation, le diagramme de séquence et le diagramme de classe. Sur le bureau d’un ordinateur, il est reconnu par son icone : Figure : Icone modelio Le choix de ce logiciel fut soutenu par son caractère de richesse fonctionnelle et ergonomique. Admirons à quoi son interface ressemble : 12 1.UML explorer : permet la navigation simple et l’exploration des éléments su modèle 2. Diagrams explorer : permet la navigation entre les types de diagramme 3. Description view : donne une description du modèle et quelques caractéristiques de visibilité 4. Diagram view : est vraiment l’espace de travail pour l’élaboration du diagramme en question 5. Properties view : pour les quelques propriétés du diagramme 6. Symbol view : pour les propriétés de style des éléments du diagramme 3.3.2 Android studio : Android Studio est un environnement de développement pour développer des applications mobiles Android. Il est basé sur IntelliJ IDEA et utilise le moteur de production Gradle. Il permet de développer votre appli plus efficacement à grande échelle, fournit des outils de construction d'applications Android ultra rapides. Pourquoi nous avons choisi android studio ? Depuis la venue d’Android Studio, cet environnement de travail s’impose et séduit les développeurs Android par ses fonctionnalités, sa rapidité et son socle logiciel solide. Depuis sa version 1, sortie le 8 décembre 2014, Google le présente comme l’IDE (pour Integrated Development Environment) officiel dans le développement Android. Ni les débutants, ni les professionnels peuvent faire l’impasse sur son utilisation. Cependant, les meilleures applications Android sont développées en utilisant langages de programmation natifs, Java ou Kotlin et profitez de l’impressionnante suite d’outils de développement proposée aux développeurs dans Android Studio et Android SDK. Les explications données sont, au plus possible, accessibles à toute personne peu importe son niveau. Il dispose d'une interface intuitive et simple d'utilisation (meilleur ergonomie). Le fait de télécharger Android Studio évite aussi de télécharger un IDE puis de télécharger un SDK Android qu'on rajoute ensuite à notre IDE. Utile pour tester les interfaces graphiques à l’aide de l’intégration d’un émulateur. 13 Nous verrons dans la section intégration et développement un peu plus bas, ce à quoi, son interface se rapporte. 3.3.3 Firebase : C’est essentiellement une plateforme de développement d’applications soutenue par Google qui a été initialement développée par James Tamplin et Andrew Lee en 2011. Autrement dit, Firebase est une plateforme de développement logiciel qui aide à créer des applications web et mobiles grâce à ses 18 services. Les 18 services de cette solution BaaS comprennent également des API utiles et quatre produits bêta. De plus, il est compatible pour s’intégrer aux configurations Android, web, iOS et Unity. Pourquoi nous avons choisi firebase ? • • • • Un de ses service : Firestore : permet une base de données en temps réel. Ceci a permis à Openclass d’accéder aux données multiplateformes en temps réel après avoir rejoint le stockage en cloud NoSQL. Cette base de données en temps réel nous a permis également de travailler sans connexion Internet. Même les données sont toujours mises en cache dans la mémoire de votre appareil lorsque vous êtes hors ligne et que vous commencez la synchronisation après la connexion à Internet. Un autre avantage attrayant de Firebase est son service d’hébergement sécurisé et rapide. L’hébergement Firebase prend en charge tous les types de contenu, y compris les applications web, le contenu dynamique et statique. Elle héberge une grande variété de contenus. Authentification Firebase multiplateforme gratuite. Firebase SDK Authentication, qui comprend plusieurs types de vérifications d’identité, on peut citer : l’authentification par adresse électronique et mot de passe, vérification de l’identité du numéro de téléphone, vérifier les utilisateurs grâce à l’intégration du fournisseur d’identité fédéral, l’authentification temporaire d’un compte anonyme, l’authentification personnalisée. Services de test de Firebase pour améliorer la qualité des applications. Firebase ne se contente pas d’offrir à ses utilisateurs un seul service de test, mais propose une gamme de services de test. Voici ici quelques services de test de base de Firebase : -Que la cote de votre application chute à cause de problèmes de bogues liés à la version, au système d’exploitation ou à l’appareil, Crashlytics les résoudra rapidement. -Test lab permet de tester une application dans un environnement réel avec une connexion à un dispositif physique et virtuel. -etc. 14 3.3.4 Le framework Flutter : Flutter est un framework, un kit de développement logiciel (SDK) d'interface utilisateur open-source créé par Google. Un framework « cadre de travail » en français, est un ensemble d'outils et de composants logiciels organisés conformément à un plan d'architecture permettant de créer des applications web et mobiles tout en proposant une bibliothèque de fonctionnalités dans laquelle les développeurs vont pouvoir piocher en fonction de des besoins. Pourquoi flutter ? Flutter est principalement utilisé pour le développement d'applications Android et iOS, sans nécessiter la création d’une base de code propre à chacun de ces deux systèmes si différents l’un de l’autre. De cette manière, les applications de smartphone se comportent, sur les différents appareils, comme de réelles applications natives. Elles sont compilées pour chaque plateforme avant leur publication, de sorte qu’elles n’ont besoin ni d’un module runtime ni d’un navigateur. Sur cette base de code commune, il est également possible de créer des applications web pour navigateur, ainsi que des programmes natifs pour Windows, Linux et macOS. - Il permet de visualiser l'effet de vos modifications, économisant ainsi du temps et contribue également à un développement rapide. - Dart, un langage de programmation d’apprentissage facile pour les débutants. - Rechargement à chaud (« Hot Reload ») pour l’accélération des tests durant la phase de développement. - Accès à des bibliothèques complètes d’éléments d’IU préconçus - Flutter fonctionne comme un site Web qui permet au framework de reconstruire automatiquement l'arborescence des widgets. Son principe : « Avec flutter, tout est widget ». Contrairement à d’autres systèmes, Flutter offre une quantité incroyable de Widgets (plusieurs centaines). L’idée développée par ses concepteurs est qu’un Widget ne doit faire que sa propre tâche. 15 Sur quel langage de programmation se base Flutter ? Le Flutter SDK se base sur le langage de programmation Dart pour les applications rapides sur plusieurs plates-formes, développé par Google et utilisé pour créer des applications mobiles, de bureau, backend et Web. Il succéda JavaScript classique et, tout comme ce dernier, il s’exécute directement sur les navigateurs, sous forme d’application web. Malgré les efforts de Google, Dart n’a jamais percé et JavaScript reste bien sur établi sur son piédestal. Le langage est donc tombé petit à petit dans l’oubli jusqu’à l’arrivée de Flutter courant en 2018. Dart est un langage orienté objet à ramasse-miettes avec une syntaxe de type C++. Dart peut se compiler en code natif ou en JavaScript. Il offre une gamme étendue d’utilitaires de développement d’applications, tels qu’une collection de caractéristiques de conception, un typage dynamique, une interface, des classe abstraites et l'inférence de type (typage optionnel). Sa fonction de compilation native aux plates-formes de bureau Linux, macOS et Microsoft Windows fut étendu par l’introduction de sa nouvelle extension dart2native. Nous vîmes raisonnable ce choix de framework malgré que son langage, le dart présente des inconvénients comme le fait qu’il est peu populaire, donc il n’est pas toujours facile de trouver un programmeur Dart parfois mais présente aussi beaucoup d’avantages : - Performent et Facile à apprendre ; -Possède une bibliothèque étendue ; -Sa compilation est flexible ; -Sa fonctionnalité Hot Reload qui permet une rapidité du build des applications ; - Peut écrire un programme sans configuration ni installation ; 3.3.5 Figma : Figma est un éditeur de graphiques vectoriels et un outil de prototypage. C‘est un outil de design graphique collaboratif basé sur le Cloud. Il nous permettra de faire les maquettes de notre application pour des fins d’analyse et de conception (dans la section Conception un peu plus 16 bas). Il le permet également des maquettes pour des sites web, des applications mobiles, des publications sur les réseaux sociaux et beaucoup d’autres choses. En effet, Figma est une application web d’édition graphique qui permet le partage en temps réel sur le même fichier, ce qui signifie que toutes les parties prenantes du projet peuvent interagir ensemble et travailler en collaboration sur un projet qui prend en compte chaque mise à jour et les modifications. C’est évidemment un gain de temps et un facteur d’efficacité. L’outil dispose de différentes fonctionnalités avancées avec plusieurs avantages, nous vous en citons quelques-uns ci-dessous : • Un véritable outil d’équipe : Dans Figma, les équipes peuvent avoir une collaboration directe comme elles pourraient le faire sur Google Drive. Il vous donne également la possibilité de concevoir et modifier le fichier en même temps, vous pouvez ainsi travailler parallèlement et sur la même interface que vos coéquipiers ! • Un partage de fichiers facile et flexible : le partage de fichiers est basé sur les autorisations, lorsque vous créez votre lien de partage, la personne peut ouvrir une version de navigateur de Figma avec une vue agrandie. • Une gestion centralisée des fichiers • Une intégration des outils tiers avec un contrôle permanent grâce aux API Figma : Figma dispose d’un contrôle d’accès aux ressources API très puissant, il permet aux utilisateurs une intégration des fichiers de conception dans leurs applications. Grâce à cette fonctionnalité, les UX/UI designers ou encore les chefs de projet peuvent suivre l’évolution du design de nombreux projets en temps réel. • Un prototype simple et efficace : Figma a intégré la fonction de prototypage avec le style diaporama, cela permet une présentation simple. Pour conclure, Figma est un outil à tout faire, de la conception au prototype tout en rassemblant une large palette de fonctionnalités et en mettant l’accent sur la collaboration. Il fonctionne sur le Cloud avec une version gratuite. 3.3.6 Un Ordinateur portable : L’utilisation de tous les logiciels et plateformes cités s’est fait via un pc de marque LENOVO S430 ayant les caractéristiques suivantes : • • • Un système d’exploitation Windows ; RAM 6 ; Disque 118Go Core i7 ; 3.3.7 Un émulateur Android : AVD name : pixel 2 API 24 ; RAM : 1536 Mbit ; 17 3.4 Etude de la faisabilité & risques : Les risques font partie des informations essentielles qu'une équipe doit connaître sur son projet. Pour cela, nous avons lancé un brainstorming afin de répertorier tous les dangers possibles, les éléments générateurs de risque. Les éléments considérés furent les risques financiers, humains, temporels, techniques, environnementaux, organisationnels. Risques Financiers : La partie financière reposait principalement sur l’achat de connexion internet afin de télécharger les logiciels, utiliser les plateformes, les applications web, consulter les communautés de développeurs, faire des recherches afin de debugguer dès fois notre programme. Risques humains : Il était vraiment judicieux de départager les différentes tâches afin de savoir si une équipe à deux serait apte à la réalisation de ce projet, d’où le planning mentionné dans le cahier de charge livré au préalable au professeur tuteur de ce projet, M. Konaté. Après ce planning, on a vu que c’était réalisable sur 2 mois et demi par 2 personnes et validé par le prof. tuteur. Ce point repose sur l’entente dans l’équipe et notre compétence. Il s’avère qu’on se connait déjà il presque 4ans, on travaille ensemble jour et nuit, réalisons d’autres projet, et avons l’esprit d’équipe. Risques techniques : Sur ce point tout reposait sur l’aptitude, l’adaptabilité des logiciels et technologies utilisés. Ayant eu à travailler sur la majorité de ces logiciels, familiariser avec, on a vit minimiser ce risque. Risques environnementaux : C’est ce point qui nous intriguait beaucoup vu le type d’entourage, les fréquences de réunion car ce projet a un délai, donc on a tout de suite pensé à solutionner ce problème en organisant plus le travail. C’est pourquoi on utilisa beaucoup les technologies de distance comme Figma, github, google meet etc. Risques temporels : Effectivement, on était contraint par le temps, pour compenser ceci, on se voyait dans l’obligation d’être rigoureux, ponctuels tout en respectant le planning élaboré. Dans un tel projet, il est toujours préférable de considérer la marge d’erreur temporelle à cause des contretemps provoqués par les remaniements de concepts, par de nouveaux apprentissages, des révisions de notions, et des debbug de programme. Risques organisationnels : Ce point est directement axé sur le changement de planning, autrement dit, le changement de l’objectif du projet. En observant bien ce point, on a pris soin d’éviter un cahier de charge trop chargé, un projet trop ambitieux, l’absence de marge de manœuvre. 18 4 Conception : Le succès d’une application dépend de la réaction de l’audience cible. La conception est une étape clé du processus de développement d’une application, car elle ne définit pas seulement le design de votre application, mais aussi et surtout son fonctionnement pour les utilisateurs finaux. Une application qui offre une excellente expérience utilisateur à de meilleures chances de réussite. Afin de mesurer les impacts des exigences en cas de changements et de pouvoir prendre la décision si on fait évoluer ou pas et quels sont les modèles touchés, on fit recours à la modélisation des besoins. Le langage de modélisation unifié et normalisé, UML, fut notre atout de modélisation. UML est aujourd'hui un standard très largement utilisé dans l'analyse et la conception de systèmes informatiques (techniques ou systèmes d'information). La modélisation est incontournable pour permettre aux différents acteurs de coopérer et de dialoguer efficacement. Il est donc important de connaître le langage et les techniques de modélisation et de savoir quels modèles sont les plus appropriés dans chaque situation. Il est enfin important de replacer l'utilisation des modèles dans le processus de développement du projet. C’est un langage de modélisation graphique à base de pictogrammes conçu comme une méthode normalisée de visualisation dans les domaines du développement logiciel et en conception orientée objet. Il est destiné à faciliter la conception des documents nécessaires au développement d'un logiciel orienté objet. UML nous fournit donc des diagrammes pour représenter le logiciel à développer : son fonctionnement, sa mise en route, les actions susceptibles d’être effectuées par le logiciel, etc. Pourquoi UML ? • • • UML est un langage formel et normalisé : -gain de précision -gage de stabilité -encourage l’utilisation d’outils UML est un support de communication performant : -Il cadre l'analyse. -Il facilite la compréhension de représentations abstraites complexes. -Son caractère polyvalent et sa souplesse en font un langage universel. Présente plusieurs types de diagrammes : Diagrammes Statiques (Diagramme de classe, diagramme de composants, diagramme de déploiement, diagramme d'objets, diagramme de paquetages) Diagrammes Dynamiques (Diagramme de cas d’utilisation, diagramme d’état, diagramme d’activité, diagramme de séquence, diagramme de collaboration) 19 Pour la modélisation nous allons nous en tenir aux diagrammes de use-case, d’activité et de classe. 4.1 Diagrammes : 4.1.1 Diagramme de Use-case ou cas d’utilisation : Il permet une représentation du comportement fonctionnel d'un système logiciel, les actions que peut faire l’utilisateur de l’application. 20 4.1.2 Diagramme d’activité global : Ce diagramme permet de représenter le déclenchement d'événements en fonction des états du système et de modéliser des comportements simultanément. Sur le diagramme global ci-dessus, on peut lire que la première des choses à faire pour l’utilisateur est de se procurer un compte en faisant l’activité0 : Posséder un compte. Ce n’est qu’après ça, qu’il a le choix entre six (6) activités différentes : les activités 1 à 6. 21 Diagramme de l’activité0 : 22 Diagramme de l’activité1 : 23 Diagramme de l’activité2 : 24 Diagramme de l’activité3 : 25 Diagramme de l’activité4 : 26 Diagramme de l’activité5 : 27 Diagramme de l’activité6 : 28 4.1.3 Diagramme de classe : 29 4.2 Les différentes interfaces utilisateurs : Les interfaces Utilisateurs attendus sont designer dans Figma ensuite réaliser. Ci-dessous, nous ne présentons pas les maquettes, mais les UI directement réalisées. Au démarrage de l’application : 30 Interface inscription : 31 Interface authentification : Interface créer ou rejoindre classe : 32 Interface Créer classe : 33 Interface liste des classes : Interface liste des salles et catégories : 34 Interface options classe : Interface création catégorie : 35 Interface affichage new catégorie : Interface création salle : 36 Interface affichage new salle : Interface paramètre avancé classe : 37 Interface réglage catégorie et salle : Interface modifier nom catégorie TP : 38 Interface affichage modification : Interface modifier nom salle de caté. TP... 39 Interface affichage modification : Interface modifier catégorie de salle : 40 Interface affichage modification : Interface liste membre de la classe : 41 Interface discussion 1 ami : Interface information 42 Interface paramètre compte : Interface modifier paramètre compte : 43 Interface paramètre profil : Interface paramètre langue : 44 Interface pop-up déconnexion : Interface chat salle : 45 Interface chat 1 Amie : Interface partage info dans salle inf. : 46 Interface affichage info : Interface modifier prénom 47 Interface modifier nom : Interface modifier e-mail : 48 Interface affichage modification : Interface résultat dans profil : 49 Interface inviter amie : Interface partager image : 50 Interface ajouter amie : 51 4.3 Développement : 52 5 Intégration Firebase : Cette figure ci-dessus est l’accueil de Firebase après authentification. Elle illustre la liste des projets Firebase que nous avons eu à créer. Ce présent travail concerne le projet Openclass de la figure précedente. 5.1 Le cloud FireStore : Cloud Firestore est une base de données flexible et évolutive pour le développement mobile, Web et serveur de Firebase et de Google Cloud Platform. Comme Firebase Realtime database, il maintient les données synchronisées entre les applications clientes via des écouteurs en temps réel et offre une prise en charge hors ligne pour le mobile et le Web afin qu’on puisse créer des applications réactives qui fonctionnent indépendamment de la latence du réseau ou de la connectivité Internet. Cloud Firestore offre également une intégration transparente avec d'autres produits Firebase et Google Cloud Platform, y compris Cloud Functions. 53 5.2 Firebase Authentification : Avec toutes les avancées technologiques, de plus en plus de fonctionnalités, l’authentification joue un rôle essentiel dans le monde en ligne Cependant, la mise en œuvre de cette technologie n’est pas aussi facile qu’il y paraît, et les plateformes comme Firebase permettent aux développeurs de mettre en place l’authentification plus facilement. De plus, l’intégration de la fonction d’authentification Firebase répond également aux préoccupations des utilisateurs en matière de sécurité des données. Oui, lorsque vous utilisez une base de données en temps réel, vous pouvez définir les autorisations de données, ce qui est un autre grand avantage de l’utilisation de Firebase. 5.3 Le cloud Storage : Cloud Storage pour Firebase est un service de stockage d'objets puissant, simple et économique conçu pour l'échelle de Google. Les SDK Firebase pour Cloud Storage ajoutent la sécurité Google aux téléchargements et téléchargements de fichiers pour vos applications Firebase, quelle que soit la qualité du réseau. Il a été conçu pour les développeurs d'applications qui ont besoin de stocker et de diffuser du contenu généré par les utilisateurs, comme des photos ou des vidéos. On utilise les SDK Firebase pour Cloud Storage pour charger et télécharger des fichiers directement depuis les clients. 54 Base de données des classes : Base de données des images et documents : 55 Base de données des authentifications : 56 6 Conclusion : Les applications mobiles d’échange et de partage sont intéressantes pour toutes les structures appelées à travailler en collaboration. D'une part dans les moyens de communication doivent être améliorés, d'autre part les smartphones permettent partie intégrante de la vie quotidienne d'un grand nombre de personne au mode. Pour cela, L’objectif de notre projet de fin d’étude était la conception et la réalisation d’une application mobile pour le partage de ressource basé sur le Cloud (une sorte de clone de l’appli Discord), dans le but de faciliter le partage des informations, des données différentes entre professionnels d’une certaine structure en général, mais des structures éducatives en particulier et de manière sécurisée. Nous avons commencé par une étude du référence existant (c’est-à-dire Discord) en regroupant des informations sur sa politique de fonctionnement, ensuite nous avons étudié les problématiques d’échange et proposer des solutions pour optimiser sa gestion, qui sera une gestion évolutive. Dans un deuxième point, nous avons parlé de l’environnement de travail de notre système Android Studio et l’espace stockage de donnée Cloud Computing par son plateforme Google Firebase. Dans la dernière station, nous avons parlé des applications mobiles de manière générale et leurs types. Ensuite, nous avons fait une analyse des besoins puis une conception détails pour notre système par un diagramme de cas d’utilisation et des diagrammes d’activité où l’activité globale, générale représente l’arborescence de notre projet d’application pour toutes les fonctions et enfin une présentation du diagramme de classe UML, l’équivalent d’un Modèle Conceptuelle de donnée (MCD) de MERISE En fin, l’illustration de quelques interfaces hommes-machines et des interfaces de la plateforme Firebase. Notre future application, l’ambition est de fournir une gestion optimale du partage de ressource de manière ergonomique et sécurisée. Nous envisageons une amélioration de notre application Openclass tel que l’ajout des fonctionnalités de création d’adjoint au responsable, partager un document (exemple un pdf.), accéder aux contacts… Ce projet nous fit un réel défi qui nous a permis d’apprendre beaucoup de nouvelles choses (en connaissance, en technologie, même en relations humaines), d’acquérir des compétences, et surtout de porter confiance en nous même. 57 7 Références 1. Futura tech. Future Science. [En ligne] [Citation : 12 08 2022.] https://www.futurasciences.com/tech/definitions/multimedia-ios-15211/. 2. communication, Taktil. blog. Takil. [En ligne] 20 07 2016. https://www.taktilcommunication.com/blog/applications-mobile/site-mobile-vs-application-mobileavantages-et-inconvenients.html. 3. http://fr.wikipedia.org/w/index.php?title=S%C3%BBret%C3%A9_de_fonctionnement&action=history. Sureté de fonctionnement. Wikipédia, 2022, 194909303. 4. Goïta, Dr. Etude de la faisabilité d'un projet. Br2, Bamako : ENI-ABT, 2022. cours_GL1. 5. Wikipédia. Modèle en Spiral(Boehm, 2000). Wikipédia. [En ligne] 04 06 2019. [Citation : 05 08 2022.] https://fr.wikipedia.org/wiki/Mod%C3%A8le_en_spirale. 58