Developpement D'Une Application Mobile de Gestion de Voyage: Web: E-Mail
Developpement D'Une Application Mobile de Gestion de Voyage: Web: E-Mail
Developpement D'Une Application Mobile de Gestion de Voyage: Web: E-Mail
org
E-mail : [email protected]
MA Ferdinand NIRAGIRA
Membres du jury :
Président :
Directeur :
Secrétaire :
A Mes parents
A ma famille élargie
NIYERA Asaph
i
REMERCIEMENTS
Nous remercions Dieu le Tout Puisant et le Tout-Miséricordieux de nous avoir
donné la force nécessaire et le courage d’accomplir ce travail ainsi que tout au
long de notre étude.
Nous tenons à remercier les personnes qui, de près ou de loin ont participé à
l’élaboration de ce mémoire, à commencer par notre Encadreur Mr NIRAGIRA
Ferdinand pour sa disponibilité, son aide, ses conseils et ses encouragements.
Nous remercions très vivement tous nos professeurs, nos promotionnaires,
ami(e)s et tous nos proches qui ont contribués à la réalisation de ce projet.
ii
LISTE DES SIGLES ET ABREVIATIONS
GPS : Global Positioning System
TV : Télévision
2D : Deux dimensions
3D : Trois dimensions
SVN : Subversion
UX : Expérience utilisateur
UI : Interface utilisateur
iii
LISTE DES FIGURES
Figure 1:Statistique illustrant l'utilisation selon les principaux Os pour les mobiles
dans le monde ........................................................................................................ 9
Figure 2: Statistique illustrant l'utilisation selon les principaux Os pour les
mobiles au Burundi ............................................................................................. 10
Figure 3: Logo de l'OHA ..................................................................................... 12
Figure 4: Logo Android ....................................................................................... 12
Figure 5: Version Android .................................................................................. 13
Figure 6:logo Figma ............................................................................................ 16
Figure 7:Apercu de Figma ................................................................................... 16
Figure 8:Logo Android Studio ............................................................................ 17
Figure 9:Android Studio...................................................................................... 17
Figure 10:Firebase Logo ..................................................................................... 18
Figure 11:Aperçu de Firebase ............................................................................. 19
Figure 12:Logo Google Map ............................................................................... 19
Figure 13: Google Map aperçu............................................................................ 20
Figure 14:Logo GitHub ....................................................................................... 21
Figure 15:Navigation simple ............................................................................... 22
Figure 16:Navigation par Ongle .......................................................................... 23
Figure 17:Navigation via Menu .......................................................................... 24
Figure 18:Navigation via barre du bas ................................................................ 24
Figure 19: Le back stack [10] .............................................................................. 25
Figure 20: Exemple back stack ........................................................................... 25
Figure 21. Diagramme de cas d'utilisation .......................................................... 26
Figure 22. Diagramme d'activité ......................................................................... 27
Figure 23. Diagramme de classe ......................................................................... 28
Figure 24:Firebase services [11] ......................................................................... 30
Figure 25: NoSql database [11] ........................................................................... 32
Figure 26:structure de firestore [8]...................................................................... 33
iv
Figure 27:base de données conception ................................................................ 34
Figure 28:Chargement ......................................................................................... 35
Figure 29:Connexion ........................................................................................... 36
Figure 30:Créer un Compte ................................................................................. 37
Figure 31:Acceuil utilisateur passager ................................................................ 38
Figure 32:Lister les réservations ......................................................................... 38
Figure 33:Historique............................................................................................ 39
Figure 34:paramètre ............................................................................................ 39
Figure 35:Explorer voyages disponibles ............................................................. 40
Figure 36:Détail réservation ................................................................................ 40
Figure 37:Acceuil utilisateur conducteur ............................................................ 41
Figure 38:Lister voyages planifier ...................................................................... 42
Figure 39:Activiter de planification voyage ....................................................... 42
Figure 40:Détailler voyage planifier ................................................................... 43
Figure 41: Sauvegarder une location................................................................... 44
Figure 42: Création d'un compte conducteur ...................................................... 45
v
TABLE DES MATIERES
DEDICACES .............................................................................................................................. i
REMERCIEMENTS .................................................................................................................. ii
vi
Chapitre 3 : PRESANTATION DES OUTILS CONCEPTION ET BASE DE DONNEES ... 16
Suggestions ........................................................................................................................... 46
Bibliographie ............................................................................................................................ 48
vii
Chapitre 1 : INTRODUCTION GÉNÉRALE
L ‘augmentation des utilisateurs des smartphones lié au développement du
réseau internet dans notre pays a apporté des solutions alternatives aux problèmes
qu’on rencontre régulièrement (dans le secteur de la communication, le secteur
des transports, le secteur de commerce…), mais aussi a permis d’ouvrir les portes
aux développeurs voulant apporter des solutions technologiques aux problèmes
du quotidien.
Actuellement selon un rapport fait par AppAnnie (David, 2019)(qui est une
plateforme d’étude de tendance du marché mobile ) dans son dernier rapport
estimait qu’en 2019 il y a eu plus de 204 milliards de téléchargements
d’applications mobiles ce qui explique notre dépendance au applications mobiles
dans le quotidien que ce soit pour communiquer avec nos proches, partager des
photos, des vidéos et de la musique, regarder les dernières informations, faire du
business en ligne et ainsi de suite .Les applications mobiles sont tellement
indispensables qu’ on pourrait même dire qu’un smartphone sans application ne
serait plus smart.
Le choix d’une application mobile au lieu d’une application web est justifié
par le fait que la plupart des utilisateurs d’internet au Burundi n’ont accès qu’à
une connexion internet bas débit. Nous avons préféré une application mobile par
le fait que les applications mobiles sont beaucoup plus rapides et intuitives car on
n’a pas besoin d‘ un navigateur pour les accéder.
1
1.2. Intérêt personnel
Ce projet va nous permettre d’acquérir des compétences en
développement d’applications en construisant de zéro une application complète,
de maîtriser les étapes de développement, des compétences dans la manipulation
de API proposées par Google tel que (Firebase,GoogleMap,..), des compétences
en design des applications en utilisant les service Cloud en l’instar de Figma, de
nous familiariser avec les outils de développement. Le projet va être une valeur a
ajoutée sur nos CV et nos portfolio respectifs ce qui nous donnera plus de
crédibilité en tant que développeurs d’applications mobiles mais aussi essayer de
rendre la vie plus facile avec notre solution puisque l’objet de la technologie c’est
de rendre la vie facile.
Gagner du temps
Économiser de l’argent
2
viennent les charger à la maison ce n’est pas toujours évident et quand les
conducteurs acceptent de le faire ils facturent énormément ce déplacement. Côté
conducteur, les problèmes sont liés à la recherche des passagers. Aujourd’hui, le
conducteur doit payer une somme allant jusqu’à 1000 ou plus pour le remplissage
de la voiture et c’est une somme élevée.
Dans l ‘espace, le sujet ne se limitant pas seulement dans notre pays c’est
un sujet global qui pourrait être appliqué dans d’autre pays.
3
et du Cloud Storage.
1.9. Cadre conceptuel et théorique
Durant le parcours de ce document le terme application mobile a été écrit à
maintes reprises. C’est quoi une application mobile ?
les WebApps,
Applications natives
4
Une application native est une application développée spécifiquement pour une
seule plateforme, grâce aux outils conçus pour celle-ci. Elle est développée avec
un langage spécifique à son système d’exploitation et est distribuée uniquement
par l’intermédiaire de son store (AppStore pour iOS, Play Store pour Android …).
[3]
WebApps
5
Leur manque d’ergonomie peut également être relevé, car elles ne suivent
pas les différentes “guidelines” graphiques d’une application Android, iOS ou
Windows Phone qui sont chacune très différentes. Dans le cas d'une application
multiplateformes, on a souvent tendance à créer un design standard pour toutes
les plateformes qui rivalisent très rarement avec l'intégration graphique d'une
application native.
Applications hybrides
Les applications hybrides sont des applications qui combinent les éléments d’une
WebApps et les éléments d’une application native. [3] Elles reposent
essentiellement sur la solution Cordova/PhoneGap, cette solution sert de
passerelle entre le langage web et le natif. Cette solution nous permet d’utiliser un
seul et même outil pour le développement et les langages issus du développement
Web pour tous les mobiles (iOS, Android et Windows Phone). Le développement
est ainsi mutualisé.
6
Les avantages qu’apporte cette solution sont deux : le budget et le gagne
temps, mais les pro-natifs se plaindront tout de même de la perte de performance
et d’ergonomie. C’était vrai il y a quelques années, avec certains mobiles, peu
performants, bon marché, principalement sous Android, possédant d’anciennes
versions de WebKit (moteur de rendu de pages web). Les bibliothèques Javascript
actuelles permettent de proposer des applications très ergonomiques et très
proches des possibilités des solutions natives.
1.10. Conclusion
Ce chapitre d’introduction a abordé l’objet et le pourquoi du sujet qu’est la
conception et la réalisation d’une application mobile Android de réservation des
tickets en mettant d’abord en lumière la problématique de la recherche. La
pertinence personnelle, scientifique et sociale du sujet, ainsi que ses contours
théoriques ont également été présentés.
7
Chapitre 2 : GENERALITES SUR LES APPLICATIONS MOBILES ET
ANDROID
2.1. Définition
Une application mobile est un logiciel applicatif développé pour un appareil
électronique mobile, tel qu'un assistant personnel, un téléphone portable, un
Smartphone, un baladeur numérique, une tablette tactile ,etc. [1]
2. 2. Introduction sur les applications Android
2.2.1 Introduction
Les applications mobile sont pour la plupart distribuées depuis des
plateformes de téléchargement (parfois elles-mêmes contrôlées par les fabricants
de smartphones) telles que l'App Store (plateforme d'Apple), le Google Play
(plateforme de Google / Android), ou encore le Microsoft Store (plateforme de
Microsoft pour Windows 10 Mobile). Mais des applications peuvent aussi être
installées sur un ordinateur, grâce par exemple au logiciel iTunes distribué par
Apple pour ses appareils. Les applications distribuées à partir des magasins
d'applications sont soit payantes, soit gratuites, mais généralement avec des
publicités.
Sur certaines plateformes, les applications peuvent aussi être installées à
partir de sources tierces, via un site non affilié au distributeur d'origine. Sur
Android, cela est possible en activant le mode développeur. Sur iOS, cette
manipulation est possible soit en étant développeur Apple, soit en possédant un
appareil jailbreaké.
Le “jailbreaking” fait référence au processus de retrait de toutes les
restrictions imposées sur un dispositif iOS. Les dispositifs d’Apple qui peuvent
être “jailbreakés” sont: iPad, iPod Touch, Apple TV et tous les Smartphones
iPhone [4]. Le “jailbreaking” permet un accès à la racine de tous les fichiers du
système qui peuvent être manipulés pour activer l’installation d’Applications, de
thèmes et d’extensions qui ne sont pas compatibles avec Apple ou non-disponibles
au téléchargement sur Apple App Store.
Voici le graphique d’utilisation des smartphones selon les principaux système
d’exploitations mobile dans le monde:
8
Figure 1:Statistique illustrant l'utilisation selon les principaux Os pour les
mobiles dans le monde
9
Figure 2: Statistique illustrant l'utilisation selon les principaux Os pour les
mobiles au Burundi
10
2.2.3. A propos d’Android
Quand on pense à Android, on pense immédiatement à Google, et pourtant
il faut savoir que cette multinationale n’est pas à l’initiative du projet. D’ailleurs,
elle n’est même pas la seule à contribuer à plein temps à son évolution. À
l’origine, « Android » était le nom d’une PME américaine, créée en 2003 puis
rachetée par Google en 2005, qui avait la ferme intention de s’introduire sur le
marché des produits mobiles.
C’est en 2007 que la situation prit une autre tournure. À cette époque,
chaque constructeur équipait son téléphone d’un système d’exploitation
propriétaire. Chaque téléphone avait ainsi un système plus ou moins différent. Ce
système entravait la possibilité de développer facilement des Applications qui
s’adapteraient à tous les téléphones, puisque la base était complètement différente.
Un développeur était plutôt spécialisé dans un système particulier et il devait se
contenter de langages de bas niveaux comme le C ou le C++. De plus, les
constructeurs faisaient en sorte de livrer des bibliothèques de développement très
réduites de manière à dissimuler leurs secrets de fabrication.
11
systèmes propriétaires, par exemple Windows Mobile et iOS. Cette alliance a pour
logiciel vedette Android, mais il ne s’agit pas de sa seule activité. [7]
12
Figure 5: Version Android
Android est gratuit, autant pour les utilisateurs que pour les constructeurs.
S’il vous prenait l’envie de produire votre propre téléphone sous Android, alors
vous n’auriez même pas à ouvrir votre porte-monnaie (mais bon courage pour tout
le travail à fournir !). En revanche, pour poster vos applications sur le Play Store,
il vous en coûtera la modique somme de 25$. Ces 25$ permettent de publier autant
d’applications que vous le souhaitez, à vie !
Open source
13
Android utilise des bibliothèques open source puissantes, comme par Exemple
SQLite pour les bases de données et OpenGL pour la gestion d’images 2D et 3D.
Facilité à développer
Facilité à vendre
Flexibilité
Ingénieux
14
essentiellement sur internet et on peut combiner plusieurs composants totalement
différents pour obtenir un résultat surpuissant. Par exemple, si on combine
l’appareil photo avec le GPS, on peut poster les coordonnées GPS des photos
prises.
2.2.5. Inconvénients du système Android
Chaque médaille a deux faces, c’est très facile de vérifier, ouverture de la
pochette. Exactement la même situation et avec les systèmes d’exploitation. Tout
à l’envers peut résulter en négatif, Il suffit d’examiner à un angle différent. Les
inconvénients pour Android OS peuvent se diviser en trois lignes à savoir :
la sécurité : une plateforme de téléchargement (Google Play) moins
contrôlée (procédures de vérifications des applications à publier),
ce qui peut exposer à des virus ou à des applications malveillantes.
Android étant le système d’exploitation le plus utilisé dans le
monde, il intéresse d’autant plus les développeurs de logiciels
malveillants.
La facilité d’utilisation : Android a tendance à être légèrement trop
flexible, les constructeurs peuvent réellement personnaliser le
système d’exploitation. Il en résulte parfois d’avoir l’impression de
passer à des systèmes totalement différents selon le constructeur du
téléphone.
La performance : un émulateur moins rapide pour les tests des
développeurs.
2.3. Conclusion
Ce chapitre était en générale centré sur les applications mobiles, leurs
différents systèmes d’exploitation dont les plus importants sont Android OS de
Google et iOS d’Apple. Partant des statistiques d’utilisation des différents
systèmes dans le monde et au Burundi, une présentation détaillée a été faite pour
sur Android OS qui est notre OS de choix dans ce travail.
15
Chapitre 3 : PRESANTATION DES OUTILS CONCEPTION ET BASE DE
DONNEES
3.1. Présentation d’outils
3.1.1. Figma
Figma est un éditeur de graphiques vectoriels et un outil de prototypage. Il
est principalement basé sur le Web, avec des fonctionnalités supplémentaires hors
ligne activées par des applications de bureau pour macOS et Windows.
Aperçu de Figma
16
3.1.2. Android studio IDE
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 peut être téléchargé sous les systèmes d'exploitation
Windows, MacOs, Chrome OS et Linux.
17
3.1.3. Firebase
Firebase est un ensemble de services d'hébergement pour n'importe quel
type d'application. Il propose d'héberger en NoSQL et en temps réel des bases de
données, du contenu, de l'authentification sociale, et des notifications, ou encore
des services, tel que par exemple un serveur de communication temps réel.
[8]
Figure 10:Firebase Logo
18
Aperçu de FireBase
19
Aperçu de Google Map
3.1.5.1 Git
20
Par sa structure décentralisée, Git illustre parfaitement ce qu'est un système de
contrôle de version décentralisé (DVCS). Plutôt que de consacrer un seul
emplacement pour l'historique complet des versions du logiciel comme c'était
souvent le cas dans les systèmes de contrôle de version ayant fait leur temps,
comme CVS et Subversion (également connu sous le nom de SVN), dans Git,
chaque copie de travail du code est également un dépôt qui contient l'historique
complet de tous les changements.
En plus d'être décentralisé, Git a été conçu pour répondre à trois objectifs :
performances, sécurité et flexibilité.
3.1.5.2 GitHub
GitHub est un outil gratuit pour héberger du code open source, et propose
également des plans payants pour les projets de code privés. C'est le numéro 1
mondial et il héberge plus d'une dizaine de millions de repositories.
21
3.2.2. Définitions
L'UX(user expérience) est un mix de parties visibles plus parties invisibles
qui, ensemble, contribuent à l'expérience globale de l'utilisateur sur l'application
mobile. [9]
L'UI(user interface) est la partie "visible", "perceptible" d'un produit : c'est
ce que l'on voit, entend, touche lorsque l'on utilise une application mobile par
exemple. [9]
3.2.3. La navigation
Une fois que l’utilisateur commence à utiliser l’application, il doit savoir
où aller et comment s’y rendre à tout moment. Une bonne navigation est un
véhicule qui emmène l’utilisateur là où il veut aller. Mais établir une bonne
navigation est un défi sur mobile en raison des limites du petit écran et la nécessite
de prioriser le contenu. Différent modèles de navigation ont été conçus pour
résoudre ce problème de différent manière, mais ils souffrent tous d’une variété
de problème d’utilisation.
Navigation simple
Cette navigation, appelée également Embedded Navigation, est très basique
puisqu'elle se limite généralement à un seul et même écran.
22
Navigation par onglet
La navigation par onglets, appelée aussi Tabs Navigation, est
assez pratique puisqu'elle permet de gérer un ensemble de pages (Onglets ou
Tabs) sur un seul et même écran sans trop de clics de la part de l'utilisateur !
23
Figure 17:Navigation via Menu
24
La back Stack
Android va tout simplement dresser une liste pour votre application de toutes les
activités et/ou fragments qu'un utilisateur a lancé les uns à la suite des autres, de
manière chronologique et ordonnée.
Exemple :
[10]
Figure 20: Exemple back stack
25
3.3. Langage de programmation et Diagramme
3.3.1. Langage de programmation
Les langages de programmation utilisée dans le développement des
applications Android sont Java et Kotline. C’est le 8-mai-2019 que Kotline
deviens le langage recommande par Google pour le développement des
applications Android mais dans le travail de ce rapport on a utilisé le langage Java.
3.3.2. Diagramme de cas d’utilisation d’activité et diagramme de classe
Diagramme de cas d’utilisation
26
Diagramme d’activité
27
Figure 23. Diagramme de classe
28
3.4. Base de données
3.4.1. Définition
Une base de données est une collection d’informations organisées afin d’être
facilement consultables, gérables et mises à jour. Au sein d’une base de données,
les données sont organisées en lignes, colonnes et tableaux. Elles sont indexées
afin de pouvoir facilement trouver les informations recherchées à l’aide d’un
logiciel informatique. Chaque fois que de nouvelles informations sont ajoutées,
les données sont mises à jour, et éventuellement supprimées. Il existe différents
types de base de données à savoir :
Base de données hiérarchique
Base de données réseau
Base de données orientée texte
Base de données SQL(relationnelle)
Base de données distribuée
Base de données orientée objets
Base de données orientée graphe
Dans ce travail on a utilisé une base de données NoSQL, on s’intéressera sur les
bases de données NoSQL par la suite.
3.4.2. Firebase
3.4.2.1. Introduction
Firebase est une plateforme mobile créée en 2011 par James Tamplin et
Andrew Lee, puis rachetée par Google en 2014 pour être intégrée à leur offre
de services Cloud (Google Cloud Platform). L'objectif premier de Firebase est de
vous libérer de la complexité de création et de la maintenance d'une architecture
serveur, tout en vous garantissant une scalabilité à toute épreuve (plusieurs
milliards d'utilisateurs) et une simplicité dans l'utilisation.
Pour cela, Firebase a été décomposée en plusieurs produits extrêmement
riches et adaptés au monde du mobile.
29
Figure 24:Firebase services [11]
30
3.4.2.2. Base de données NoSQL et Cloud Firestore
31
Figure 25: NoSql database [11]
32
Figure 26:structure de firestore [8]
33
Commented [G1]: Il faut expliquer cette figure
34
Chapitre 4 : REALISATION DE L’APPLICATION
4.1. Introduction
Dans ce chapitra on présentera par des images le résultat de notre travail, une
application mobile basée sur Android que nous avons appelée SafariNjema .
Chaque page d’une application mobile est appelée une activité.
Figure 28:Chargement
Authentification
35
Figure 29:Connexion
36
Figure 30:Créer un Compte
37
Figure 31:Acceuil utilisateur passager
38
Activité de l’historique
Figure 33:Historique
Figure 34:paramètre
39
Activité de faire explorer les voyages disponibles
40
Partie utilisateur conducteur
41
Figure 38:Lister voyages planifier
42
Figure 40:Détailler voyage planifier
Lors des tests pour la géolocalisation du client (future passager) quand il souhaite
faire une réservation et qu’il veut indiquer où le conducteur le trouvera
(localisation du téléphone), on a constaté que le temps d’attente était plus élevé,
en moyenne 3min á 4min environs pour que Google Map API trouve la
localisation du téléphone du client ce qui n’est pas optimale. Pour remédier a ce
problème on a du développer une autre application pour sauvegarder dans la base
de données le coordonnées des point d’arrêt et ainsi proposer au client une liste
des point d’arrêt suivant la commune et la province .
Mais aussi on a ajouté dans cet application la partie de création d’un compte
conducteur on a enlevé ce processus dans l’App SafariNjema parce que on a
constaté que si tout le monde pouvait s’auto proclamer conducteur sans donner
les documents nécessaires tel que le permis de conduire, l’assurance,…Cela
poserait des problèmes de sécurité mais aussi des problèmes juridiques .
43
Activités d’ajout d’une location
44
Figure 42: Création d'un compte conducteur
45
CONCLUSION GENERALE ET SUGGESTIONS
Conclusion générale.
La réalisation de ce travail constitue une expérience qui a permis de mettre
en pratique les connaissances en programmation qu’on a apprises durant les trois
dernières années à l’UPG. La réalisation de ce projet nous a permis de découvrir
des technologies qu’on ne connaissait pas, des techniques de programmation mais
aussi de se familiariser avec les outils de programmation surtout en
programmation mobile.
Le logiciel est présenté aujourd'hui est en version beta (version des tests) et
nous espérons après les critiques et les propositions l ‘améliorer et ainsi pouvoir
le déployer en ligne (sur Google Play).
Les difficultés rencontrées lors de la réalisation de ce projet sont nombreux
mais on a pu les surmontés par exemple les difficultés d’accès à l’internet,
l’anglais puisque toute la documentation sur le développement des applications
Android est en anglais,…
Suggestions
Les propositions vont à l’encontre de l’UPG :
L’augmentation des heures d ‘apprentissage de la programmation mobile
Android
Des projets à réaliser lors de session puisque un examen écrit se limitera
surtout sur les points vus en classe alors qu’en classe on ne couvre qu’une
infinie partie du sujet
L’augmentation du débit de l’internet car dans les heures de cours la
connexion est tellement lente qu’on ne peut même pas faire une simple
recherche sur Google mais aussi étendre la connexion internet sur tout
l’université.
46
47
Bibliographie
48
[12] Basil1402, Olyte et P. e. Uknow, «L'électrinique de zéro,» OPENCLASSROOMS, 2012.
[17] NIREMA Edmond, Introduction aux systèmes embarqués, Gitega: UPG RT3, 2019.
[25] Brigitte Lebioda, «Canaux & Territoire,» 24 Décembre 2009. [En ligne]. Available:
http://www.canaux-et-territoire.info.
49
[26] Blaine R. Hanson, «Cracks affect infiltration of furrow crop irrigation,» California
Agriculture, 01 Mars 1998. [En ligne]. Available:
http://calag.ucanr.edu/Archive/?article=ca.v052n02p38.
[32] BENDJAFER HICHAM et MIDOUN ANESSE , «Système de contrôle par GSM,» 2016-
2017.
[33] Raouf BRAHIM, Dispositif d'alerte aux temps d'arrêts machines, 2016.
50