Telechargé par fatogomasanogo2

MINI-Projet de fin d'étude Informatique

publicité
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
Téléchargement