AmaraGhiles PDF
AmaraGhiles PDF
AmaraGhiles PDF
Présenté par
Ghiles AMARA
Marzouk OUANES
Thème
Président : Mr M. DAOUI
Encadreur : Mme R. HADAOUI
Examinateur : Mme R. AOUDJIT
Examinateur : Mme M. BELKADI
Remerciements
A mes parents, ce travail vous doit beaucoup, qu’il soit pour vous le
témoignage de ma reconnaissance infinie pour ces années de compréhension
et d’efforts communs.
Merzouk
Dédicaces
Je dédie ce travail à ma mère celle a qui tous les compliments du
monde ne représentent rien à côté d'elle, qui m'a soutenu durant les
meilleurs moments et les plus dures aussi Toute la gratitude du monde ne
saurait exprimé ce que je ressens envers elle.
Ghiles
Sommaire
Chapitre I
Le développement des applications mobiles
Introduction ........................................................................................................................... 2
I. Définition d’application mobile ........................................................................................ 2
II. Les Types d’application mobile ...................................................................................... 2
II.1. Application native ......................................................................................................... 2
II.2. Application Web Mobile .............................................................................................. 3
II.3. Comparatif entre une application mobile et une application native ............................. 3
II.4. Solution intermédiaire : application hybride ................................................................. 5
II.5. Synthèse des possibilités fonctionnelles et techniques des trois approches .................. 6
III. Cycle de vie application mobile ..................................................................................... 7
3.1. Mobile Application LifeCycle Management « MALM » ............................................. 7
III.2. Mobile-D ..................................................................................................................... 8
III.2.1. Définition ................................................................................................................. 8
III.2.2. Pourquoi Mobile-D est adapté à mobile application ................................................. 9
III.2.3. Les Etapes de Mobile-D ............................................................................................ 9
III.2.4. Evaluation de la méthode Mobile-D ........................................................................ 10
III.3. MASAM : Mobile Application Software Agile Methodology ................................... 11
III.4 Rapid7 .......................................................................................................................... 12
IV. Les systèmes d exploitation mobile ............................................................................... 14
IV.1 . Android ....................................................................................................................... 15
IV.1.1. Définition ................................................................................................................. 15
IV.1.2. Historique ................................................................................................................. 15
IV.1.3. Versions .................................................................................................................... 15
IV.2.ios (Apple) .................................................................................................................... 17
IV.2.1. Définition ................................................................................................................. 17
IV.2.2. Versions ................................................................................................................... 17
IV.3. Windows Phone .......................................................................................................... 18
IV.3.1. Définition .................................................................................................................. 18
IV.3.2. Historique ................................................................................................................. 18
IV.3.3. Versions .................................................................................................................... 19
IV.4. Synthèse ...................................................................................................................... 20
IV.5. Le marché des systèmes d’exploitation mobile .......................................................... .21
V. Le cross-platform ............................................................................................................ 22
Conclusion ............................................................................................................................. 23
Chapitre II
Android
Introduction ........................................................................................................................... 24
I. Définition d’Android ........................................................................................................ 24
II. Caractéristiques ................................................................................................................ 24
III. Architecture d’Android .................................................................................................. 24
III.1. Linux Kernel (niveau 1) ............................................................................................... 25
III.2. Libraries et Android Runtime (niveau2) ...................................................................... 25
III.3. Application Framework (niveau 3) .............................................................................. 27
III.4 application(niveau4)…………………………………………………………………28
IV. SDK Android .................................................................................................................. 29
VI.1. Développement ........................................................................................................... 29
IV.2. Quelques outils fournit par le SDK .............................................................................. 29
V. Concepts ........................................................................................................................... 30
V.1. Le bureau virtuel .......................................................................................................... 30
V.2. widgets……………………………………………………………………………….31
V.3. Android market ............................................................................................................. 32
VI. Composant d’android ..................................................................................................... 32
VI.1. L’activité (Activity) ..................................................................................................... 33
VI.2. Service ......................................................................................................................... 33
VI.3. Fournisseurs de contenu (Content providers) ............................................................. 33
VI.4. Receveurs de diffusion (Broadcast receivers) .............................................................. 33
VII. Les services offerts par Android ................................................................................... 34
Conclusion ............................................................................................................................. 34
Chapitre III
Analyse et Conception
Introduction ..............................................................................................................................35
I. Le langage de modélisation UML ........................................................................................35
I.1. Analyse .............................................................................................................................35
I.1.1 Identification des besoins ................................................................................................36
Webographie
Bibliographie
Liste des figures
Figure 1.1 Cycle de vie d’une application mobile par : Aberdeen Group ...............................8
Figure 1.2 Les étapes itératives de La méthodologie Mobile-D .......................................................... 9
Figure 1.3 Représentation des sept étapes de Rapid7 .............................................................13
Figure 1.4 Un seul projet pour plusieurs plateformes ......................................................................... 22
Figure 2.1. Architecture d'Android....................................................................................................... 25
Figure 2.2 : Le noyau Linux ................................................................................................................. 25
Figure 2.3 : Librairies ........................................................................................................................... 26
Figure 2.4 : Android Runtime .............................................................................................................. 27
Figure 2.5 : Application Framework .................................................................................................... 27
Figure 2.6 : Applications ...................................................................................................................... 28
Figure 2.7 : Emulateur .......................................................................................................................... 29
Figure 2.8 : Widget............................................................................................................................... 31
Figure 2.9 : Widget............................................................................................................................... 32
Figure 3.1 : La démarche de modélisation de l’application .....................................................36
Figure 3.2 : Diagramme de contexte de l’application ..............................................................37
Figure 3.3 : Diagramme de cas d’utilisation de l’administrateur……………………………. 38
Figure 3.4 : Diagramme de cas d’utilisation de clients ...........................................................39
Figure 3.4 : Diagramme de cas d’utilisation de cuisinier ........................................................39
Figure 3.5 : Diagramme de séquence de cas utilisation : « Authentification utilisateur »……42
Figure 3.6: Diagramme de séquence du cas d’utilisation « Ajouter un plat »………………. 43
Figure 3.7 : Diagramme de séquence du cas d’utilisation « passer une commande »………. 44
Figure 3.8 : Diagramme de classe du cas d’utilisation «Préparer la commande» ....................45
Figure 3.9 : Diagramme de classe du cas d’utilisation «Ajouter une boisson ».......................46
Figure 3.10 : Diagramme de classe du cas d’utilisation «Régler l’addition» ..........................46
Figure 3.11 : Diagramme de classe générale ...........................................................................48
Figure 4.1:Architecture matériel du système ...........................................................................51
Figure 4.2 : Les différentes technologies utilisées dans l’application......................................52
Figure 4.3 :Architecture3-tiers du point de vue technologique ................................................52
Figure 4.4 : exemple d un fichier xml ......................................................................................54
Figure 4.4:Interface de l’environnement Android Studio 1.1.0 ...............................................54
Liste des tableaux
Tableau 1.1 Comparatif entre une application native et une application Web mobile ........................ 4
Tableau 1.2 Les possibilités fonctionnelles et techniques des trois approches ................................... 6
Tableau 1.3 Les taches des différentes phases de MASAM ...................................................11
Tableau 1.4 : Description des différentes couches de structure de la méthode Rapid7 ..........12
Tableau 1.5 : Description des dernières versions d’Android ..................................................16
Tableau 1.6 Description des dernières versions d’iOS ...........................................................18
Tableau 1.7 : Description des dernières versions de Windows Phone ....................................19
Tableau 1.8 Comparatif entre les systèmes d’exploitation mobiles Android, iOS, Windows
phone .......................................................................................................................................20
Tableau 1.9 Top 4 des systèmes d’exploitation selon la part du marché .................................21
Introduction générale
Introduction générale
1
Le développement des
applications mobiles
Chapitre I Le développement des applications mobiles
Introduction
Les enjeux du mobile ont considérablement augmenté et font maintenant partie
intégrante des stratégies des entreprises. Néanmoins, si l’importance du mobile est un fait
globalement partagé, le sujet reste complexe à aborder pour la plupart des entreprises car il
demeure nouveau.
Une application mobile se distingue d’une application desktop, ce qui fait la différence
de son processus de développement par rapport aux logiciels de PC. Avec les nouveaux
facteurs à considérer dans le cycle de vie d’une application mobile les acteurs du domaine ont
proposé des méthodes de gestion de projet spécifiques pour le développement mobile.
Nous allons aborder dans ce chapitre les différents concepts et facteurs à prendre en
considération lors de développement des applications mobiles.
I. Définition d’application mobile
Les applications mobiles sont des logiciels développés pour les petits appareils
portables, comme les téléphones mobiles, Smartphones, PDA et ainsi de suite. Les
applications mobiles peuvent être chargées par l’utilisateur sur l'appareil mobile et
téléchargées sur les plateformes de téléchargement d'applications (Apps Stores) ou sur
Internet.
Ils existent plusieurs systèmes d’exploitation mobiles les plus populaires sont :
Windows Mobile, Android, iOS, Symbian, Java ME et Palm [1].
II. Les Types d’application mobile
II.1. Application native
Une application native est une application dédiée à un périphérique mobile
(Smartphone, Tablette,… etc). Elle est installée directement sur l’appareil et accessible à
travers une icône. Les utilisateurs acquièrent généralement ces applications à travers une
boutique en ligne ou sur un store en ligne comme l’App Store ou Android Apps sur Google
Play. Une application native est développée pour qu’elle fonctionne sur une plateforme
précise, elle peut profiter de toutes les fonctionnalités qui existent dans l’appareil : GPS,
Accéléromètre, Appareil photo, la liste des Contacts… Les applications mobiles peuvent aussi
interpréter les gestes tactiles sur l‘écran de l’appareil, peuvent utiliser le système de
notification de l’appareil et peuvent même fonctionner hors ligne.
2
Chapitre I Le développement des applications mobiles
3
Chapitre I Le développement des applications mobiles
Mise à jour La mise à jour s’effectue sur le serveur web : tous La mise à jour peut être ignorée par
les utilisateurs sont mis à jour les utilisateurs
Point fort Possèdent une base de code commune sur toutes les S’exécute généralement plus
plateformes. rapidement qu’une application web
Les utilisateurs n’ont pas à aller sur un store, ils mobile.
utilisent l’application depuis le navigateur web. Les App Stores et marketplaces
Peut être lancée sous n’importe quelle forme et à aident les utilisateurs à trouver des
n’importe quel moment, aucun tiers (App Store) applications natives.
devant au préalable approuver l’application. Le processus d’approbation des
Si une application Web existe déjà, elle peut être applications mis en place par l’App
rendu accessible aux appareils mobiles via une Store peut contribuer à rassurer les
adaptation en Responsive Design utilisateurs sur la qualité et la
sécurité de l’application.
Les outils, le soutien et la mise à
disposition de bonnes pratiques
fournies par les fabricants de
périphériques peuvent aider à
accélérer le développement
Faiblesse Les applications web mobiles ne peuvent pas Plus coûteuses à développer, surtout
accéder à toutes les fonctionnalités de l’appareil. si le développement porte sur de
Supporter plusieurs navigateurs Web mobiles peut multiples appareils mobiles.
se traduire par des coûts plus élevés en matière de Prendre en charge plusieurs plates-
développement et de maintenance. formes nécessite la gestion de
Les utilisateurs peuvent posséder des navigateurs plusieurs bases de code et peut
mobiles différents, ce qui peut rendre la entraîner des coûts plus élevés en
maintenance difficile et ne facilite pas le support matière de développement, de
utilisateurs. maintenance, de mise à disposition
Il peut être difficile de trouver une application web des mises à jour.
mobile en raison de l’absence d’un store centralisé Les versions présentes chez les
utilisateurs peuvent être différentes,
ce qui peut rendre la maintenance
difficile et ne facilite pas le support
utilisateurs.
Le processus d’approbation App
Store peut retarder le lancement de
l’application ou d’empêcher la mise
à disposition de l’application pour
les utilisateurs.
Tableau 1.1 Comparatif entre une application native et une application Web mobile
4
Chapitre I Le développement des applications mobiles
5
Chapitre I Le développement des applications mobiles
6
Chapitre I Le développement des applications mobiles
7
Chapitre I Le développement des applications mobiles
5) Déployer
• Sélectionner les canaux de distribution, et suivre le produit
6) Gérer
• Gérer les versions des applications ;
• Etablir des politiques pour l’application ;
• Surveiller, analyser et rapporter l'utilisation de l'application.
7) Fin du cycle
• Identifier les applications adaptées à la mise hors service ;
• Suivre et rapporter les applications qui doivent être enlevée ;
• Archiver les applications qui ne sont plus en cours de fonction.
Figure 1.1 Cycle de vie d’une application mobile par : Aberdeen Group,
Lorsque cette approche est combinée avec les principes du développement agile de
logiciels elle devient un processus itératif persistant. En conséquence, il n'y a pas une seule et
unique approche de développement d'applications mobiles, et nous pouvons toujours
apprendre des meilleures pratiques des organisations les plus performantes.
III.2. Mobile-D
III.2.1. Définition
Mobile-D est une approche agile pour l’équipement mobile qui est basée sur XP
Extreme Programming (pratique), méthodologie Crystal (scalability) et Rational Unified
Process (assurance de cycle de vie). Elle est conçue pour rencontrer les caractéristiques
spécifiques de développement de l’application mobile et le standard de qualité de l’industrie.
Le cas idéal est d’avoir moins de dix développeurs travaillant dans un espace de bureau.
8
Chapitre I Le développement des applications mobiles
L'approche mobile-D est divisée en cinq itérations. Ces phases sont set-up, core,
core2, stabilize and wrap-up. Chacune de ces phases est constituée de trois types de jours de
développement: Planning Day (Jour de planification), Working Day (Jour de travail) and
Release Day (jour de délivrance). Le mobile-D est organisée dans un cadre qui relie le
principal processus (Planifier, concevoir, mettre en oeuvre, tester, Livrer) avec le processus de
support (Gestion de projet, Gestion de configuration de logiciel, amélioration processus
logiciel)
9
Chapitre I Le développement des applications mobiles
1) Explore
Etablissement des groupes de Stakeholders (intervenants) nécessaires dans la planification et
la surveillance du projet.
• Définition du porté du projet.
• Planification du projet en considérant des problèmes concernant l’environnement, le
personnel, et le processus.
2) Initialize
• Description de L'architecture logicielle
• Préparation des ressources physiques, techniques, humaines et la communication avec
client ;
• Préparation du plan de projet et des solutions pour tous les problèmes critiques du
développement.
3) Productionize
• Implémentation en commençant par les fonctionnalités prioritaires par le client.
• Se Concentrer sur la fonctionnalité cruciale du produit.
4) Stabilize
• Finissage de l’implémentation du produit
• Amélioration et assurance de la qualité du produit
• Finissage de la documentation du produit
5) System test & fix
• Tester de système en se basant sur la documentation produite dans le projet ;
• Fournir les informations des défauts trouvés ;
• Permettre à l'équipe de projet de planifier et corriger les défauts trouvés ;
• Corriger les défauts.
III.2.4. Evaluation de la méthode Mobile-D
Avantages
• Mobile-D est bien adapté au développement de logiciel mobile réalisé par une petite
équipe ;
• Capable de réagir rapidement au changement des besoins des utilisateurs grâce aux
courtes itérations (les phases initialize, productionize, stabilize).
• Programmation en binôme dans chaque itération est très efficace.
10
Chapitre I Le développement des applications mobiles
Inconvénients
• Mobile-D est conçue pour adapter au petit système développé par de petite équipe
• Il faut mentionner que cette approche n’est pas complètement définie pour être
littéralement utilisée dans la pratique [3].
III.3. MASAM : Mobile Application Software Agile Methodology
Jeong et al. ont proposé Mobile Application Software Agile Methodology (Masam)
qui fournit un processus de développement des applications mobiles rapidement en utilisant
une approche agile. Il est basé sur l'extrême Programmation (XP), Unified Process Agile,
RUP et Software and Systems Process Engineering Metamodel (SPEM [1]).Masam et la
méthodologie Mobile-D ont une relation étroite, Masam introduit de légères variations par
rapport au Mobile-D.
Phase Activité Tache
Description du produit
Saisir le produit
Phase de Pré-planification
préparation Définition de l’utilisateur
Partage des
concepts de produits L’analyse initiale du produit
La coordination du processus de
La mise en place du développement
projet Coordination des ressources de développement
pré-étude
Phase de Etude des points de vue des membres de
concrétisation La vue utilisateur l’équipe
Conception de l’interface utilisateur
Analyse des besoins fonctionnels
Architecture Définition de l’architecture
Gestion du patron d’architecture
Phase de Mise en œuvre & Configuration de l’environnement
développement Préparation Planification du développement
Planning de mise à jour
Cycle de mise à jour Itération du cycle de mise à jour
Mise à jour
Phase de Test d’acceptante
Test du système
commercialisation Test des utilisateurs
Lancement des tests
Vente du produit
Lancement de produit
11
Chapitre I Le développement des applications mobiles
La Phase de préparation :
Définit un résumé et une première notion du produit, et attribue les rôles et les
responsabilités.
La phase de concrétisation :
Se concentre sur la compréhension des besoins des utilisateurs et définition de
l'architecture du produit logiciel.
Phase de développement :
L’implémentation du produit est menée par « le développement piloté par les tests [2]
» « la Programmation par pair [3] », « le Refactoring[4] », avec une relation étroite avec les
activités de tests itératifs.
Phase commercialisation :
Se concentre sur les produits activités de lancement et la vente de produits.
III.4. Rapid7
Dooms et al. ont proposé une méthode appelée « Rapid7 ' (Rapid Production of
Documentation, 7 étapes) qui améliore le travail de la documentation. Rapid7 décrit comment
l'interaction humaine est prévue dans les projets logiciels et comment les documents doivent
être créés en menant des séances d’atelier animées.
Rapid7 fournit une structure à trois couches : Projet, Cas et des couches d'atelier.
Couches Description
Décrit comment s’effectue l'interaction
Couche projet humaine et la prise de décision
conjointement pour les projets de logiciels.
Décrit comment les cas sélectionnés, tels que
Couche des cas les documents doivent être créés dans des
ateliers consécutifs.
Décrit comment le travail proprement dit est
Couche atelier réalisé sous la forme d'atelier, en utilisant
sept étapes du procédé.
Tableau 1.4 : Description des différentes couches de structure de la méthode Rapid7 [4]
12
Chapitre I Le développement des applications mobiles
Les ateliers :
Ateliers Rapid7 comprennent sept étapes. Les étapes visent à fournir des informations
sur la façon d'organiser des ateliers efficaces dans les projets logiciels. Les étapes de Rapid7
sont présentées dans la Figure 1.3.
13
Chapitre I Le développement des applications mobiles
Avantages
• Plus d’interaction entre les parties prenantes du projet.
• Mettre l'accent sur la rédaction que sur la documentation essentielle.
• Créer une compréhension commune; un partage plus efficace de l’information.
• Mettre davantage les points, qui devraient aboutir à des résultats plus rapides
• Mieux répondre aux changements.
Mais engendre de fortes pressions en particulier pour :
• Raccourcir la durée d’arriver au marché
• Réagir rapidement à l'évolution de la spécification du produit au cours du
développement
• Dépenser moins d'argent.
IV. Les Systèmes d’exploitation mobiles
Un système d'exploitation mobile est un système d'exploitation conçu pour fonctionner
sur un appareil mobile. Il existe plusieurs systèmes d’exploitation mobiles (OS) dont les plus
répandus sont les suivants :
• iOS (Apple) utilisé sur iPhone et iPad,
• Android (Google) qui anime un grand nombre de smartphones tels que Samsung,
HTC, LG, Motorola…
• Blackberry OS,
• Windows Phone (Microsoft),
• Symbian (Nokia),
• Bada (Samsung).
A chaque OS mobile correspond une technologie et un « store » où les applications
peuvent être téléchargées, de manière gratuite ou payante :
AppStore pour les app/lications iPhone et iPad,
• Android Market,
• Blackberry App World,
• Marketplace de Windows,
• Samsung Apps Store,
• Ovi de Nokia.
Parmi tous ces systèmes d’exploitation nous allons présenter les plus dominants du
marché des applications mobiles (Android, iOS et Windows Phone).
14
Chapitre I Le développement des applications mobiles
IV.1 . Android
IV.1.1. Définition
Android est un système d’exploitation Open Source pour smartphones, PDA et
terminaux mobiles conçu par Android, une startup rachetée par Google, et annoncé
officiellement le 15 novembre 2007. Afin de promouvoir ce système d’exploitation ouvert,
Google a su fédérer autour de lui une trentaine de partenaires réunis au sein de l’Open
Handset Alliance. Ils ont comme principaux concurrents Apple avec iPhone OS qui équipe
l’iPhone, Research In Motion avec BlackBerry OS, Palm avec Nova ou webOS, Microsoft et
son Windows Mobile, Nokia avec Symbian OS, libéré en 2008, et bien sûr OpenMoko, le
projet dont les spécifications logicielles et matérielles sont ouvertes [6].
IV.1.2. Historique
Android doit son nom à la startup éponyme spécialisée dans le développement
d'applications mobiles rachetée par Google en août 2005, nom venant lui-même d'« androïde»
qui désigne un robot construit à l'image d'un être humain. Le logiciel, qui avait été surnommé
gPhone par les rumeurs de marchés et qui selon un de ses concepteurs Andy Rubin était
initialement prévu pour être un système d'exploitation pour appareil photo, est proposé de
façon gratuite et librement modifiable aux fabricants de téléphones mobiles, ce qui facilite son
adoption. Le gPhone a été lancé en octobre 2008 aux États-Unis dans un partenariat de
distribution exclusif entre Google et T-Mobile. Anticipant les annonces officielles, les
marchés financiers se ruent massivement sur les actions Google les faisant monter jusqu'au
plus haut historique de 724 dollars le 5 novembre 2007 (Le vendredi 18 octobre 2013 les
actions Google franchissent les 1000 dollars). En 2004, le prix du cours d'introduction du
moteur de recherche était de 85 dollars l'action.
IV.1.3. Versions
Depuis le rachat de la startup Android, Google a lancé plus de 18 versions d’Android
jusqu’à maintenant et toutes ces version ont des noms de desserts (en anglais) depuis la sortie
de la version 1.5 et le comparatif suivant liste les principales différences entre chaque version
du système Android.
15
Chapitre I Le développement des applications mobiles
IV.2.ios (Apple)
IV.2.1. Définition
iOS, anciennement iPhone OS, est le système d'exploitation mobile développé par
Apple pour l'iPhone, l'iPod touch et l'iPad. Il est dérivé de OS X dont il partage les fondations
(le kernel hybride XNU basé sur le micro-noyau Mach, les services Unix et Cocoa, etc.). iOS
comporte quatre couches d'abstraction, similaires à celles de Mac OS X : une couche « Core
OS », une couche « Core Services », une couche « Media » et une couche « Cocoa ».
IV.2.2. Versions
Le tableau suivant présente les différentes versions d'IOS, Il débute avec la sortie de
l'iPhone aux États-Unis, le 29 juin 2007.
Nom de
Version Date de sortie Caractéristique Appareil
version
5.x iOS 5 12 octobre 2011 Siri iPhone 4
Notification Center iPhone 4S
PC-free iPhone 3GS
iTunes Wi-Fi Sync iPad
iMessage iPad2
iCloud iPod Touch 4G
iPod Touch 3G
6.x iOS 6 11 juin 2012 Intégration de Facebook, iPhone 5
Passbook. iPhone 4S
Amélioration majeure de Siri. iPhone 4
Nouvelle icône pour les iPhone 3GS
services Twitter. iPad mini
Amélioration du Centre de iPad 4G
notifications : possibilité d'y iPad 3G
poster instantanément ses iPad 2
messages Twitter ou Facebook. iPod Touch 4G
Amélioration de l'application iPod Touch 5G
des Photos : flux de photos
partagés.
Musique sur iPod et iPhone :
un changement radical
d'interface.
De nouveaux réglages ont vu
le jour, ajout d'une fonctionnalité
"Ne pas déranger".
Amélioration de l'application
téléphonique : interface pour
passer des appels modifiée et
nouvelles options.
Service de cartographie signé
Apple.
Bouton "Un problème ?" plus
en évidence dans Plans
17
Chapitre I Le développement des applications mobiles
18
Chapitre I Le développement des applications mobiles
IV.3.3. Versions
Microsoft a l'intention de diffuser des mises à jour mineures qui proposent de
nouvelles fonctionnalités plusieurs fois par an avec une mise à jour plus importante chaque
année49. Malheureusement, cet effet d'annonce a été classé sans suite puisque dès le départ en
2010, le développeur savait qu'il ne pourrait pas faire tourner Windows Phone 8 sur les
mobiles disposant de Windows Phone.
Le tableau suivant présente les différentes versions et mises à jour de Windows Phone :
19
Chapitre I Le développement des applications mobiles
IV.4. Synthèse
Malgré l’évolution et la ressemblance des systèmes d’exploitation qui sont cités
précédemment, il y a beaucoup de distinctions vue de côté développeur et dans le tableau
suivant nous allons montrer les différences entre les trois premiers systèmes d’exploitation
mobiles :
Informations générale
Propriétaire Google Inc Apple Inc Microsoft
Version courante 4.4 (KitKat) 7.0.4 8
14 Novembre
Date de sortie 31 Octobre 2013 14 Octobre 2013
2013
Part de marché 81% 12.9% 3.7%
Licence Open Source Source fermé Source fermé
Détails technique
Windows CE 7 /
OS Famille Linux Darwin
Windows NT
Architecture CPU ARM, MIPS, x86,
ARM ARM
supportée i.MX
Langage de
Java Objective C C# .Net, VB .Net
programmation
des packages APK iTunes Zune Software
Tableau 1.8 Comparatif entre les systèmes d’exploitation mobiles Android, iOS, Windows
phone
20
Chapitre I Le développement des applications mobiles
Tableau 1.9 Top 4 des systèmes d’exploitation selon la part du marché [7].
Le système d’exploitation mobile de Google serait ainsi présent sur 81,3% des
Smartphones de la planète. Android règne donc sans surprise, bien loin devant les quelques
13,4% d’iOS. Windows Phone, lui, s’adjuge 4,1%, et BlackBerry 1%.
Autres chiffres intéressants, la progression par rapport à l’année précédente. Android
gagne plus de 6 points là où Apple en perd plus de 2. Microsoft double ses parts de marché
(seulement 2,1% en 2012) et BlackBerry dévisse encore un peu plus.
21
Chapitre I Le développement des applications mobiles
V. Le cross-platform
Une application mobile doit être compatible avec les différents OS disponibles sur le
marché. Sur terminaux mobiles, à chaque OS correspond un langage, des règles de
compatibilité, un SDK (kit de développeur) et un processus de distribution spécifique… Les
solutions cross-platform open source (aussi appelées multi-plateformes) telles que Titanium
ou PhoneGap, visent à répondre à la problématique de l’absence de standards de
développement dans le monde du mobile [2].
Solution cross-plateforme
• Un seul code
• « n » plateformes cibles
• Simple à maintenir et faire évoluer
En pratique :
• Des technos web : faciles à prendre en main
• Un tronc commun (80% du code)
• Des adaptations à faire pour chaque plateforme cible : gestion du bouton retour pour
Android et Windows Phone, Push de notifications…
Estimation de charge de développement:
• Si le développement d’une appli native nécessite « Y », le développement de la même
appli en natif pour « n » OS coutera approximativement « n x Y ».
• Le même développement en cross-platform coutera entre « (n x Y) / n » et « (n x Y) /
(n / 2) » selon les spécificités des fonctionnalités utilisées.
22
Chapitre I Le développement des applications mobiles
Conclusion
Pour développer une application mobile de nombreux facteurs sont à considérer.
Il y a d’abord le choix de type d’application : Web mobile ou application native ou bien une
solution intermédiaire entre les deux.
Puis, il faut considérer la plateforme (le système d’exploitation mobile) dont
l’application mobile va fonctionner, et songer au cross-platform : une solution qui permet de
réaliser des applications sous plusieurs OS (système d’exploitation) avec un unique code.
Il faut aussi tenir compte des différents appareils mobiles (Smartphones, Tablettes..)
dans lesquels l’application va être installée.
Et cela sans oublier les facteurs principaux pour n’importe quelle gestion de projet :
Objectifs de l’application, le public ciblé, le modèle de cycle de vie, les exigences techniques,
le cout de l’application.
23
Android
Chapitre II Android
Introduction
Android est une plate-forme ouverte, un ensemble de librairies de composants
logiciels pour les systèmes embarqués et mobiles.
C’est la plate-forme mobile la plus utilisée au monde, plus d’un milliard de téléphones
et de tablettes à travers le monde sont équipés d’Android, une plateforme à la fois
personnalisable et simple d’utilisation conçue par Google, elle fonctionne parfaitement avec
toutes les applications
Google.
Dans ce chapitre nous allons revenir sur l’architecture d’Android, ses caractéristiques
dans le but de mieux comprendre ce qui fait aujourd’hui de ce système d’exploitation un
système performant et très utilisé dans le monde.
I. Définition d’Android [10] [11]
Android est un système d'exploitation mobile pour Smartphones, tablettes tactiles,
PDA (Personal Digital Assistant), Smartwatches et terminaux mobiles. C'est un système Open
Source utilisant le noyau Linux. Il est basé essentiellement sur la simplicité d'utilisation et
surtout sur une capacité de customisation importante présentant un argument commercial de
poids.
II. Caractéristiques
Android est une pile applicative pour les appareils mobiles qui comprend un système
d'exploitation, middleware et des applications clés.
Le SDK Android fournit les outils et les API nécessaires pour commencer à développer des
applications sur la plate-forme Android en utilisant le langage de programmation Java.
III. Architecture d’Android [12]
Le schéma suivant illustre les principaux composants du système d'exploitation
Android.
Chaque section est décrite plus en détail ci-dessous.
24
Chapitre II Android
25
Chapitre II Android
b. Android Runtime
Android inclut un ensemble de bibliothèques qui fournit la plupart des fonctionnalités
disponibles dans les bibliothèques de base du langage de programmation Java.
Chaque application Android s'exécute dans son propre processus, avec sa propre
instance de machine virtuelle Dalvik. Dalvik VM est une implémentation de machine
virtuelle ayant été conçue pour optimiser l'exécution multiple de machines virtuelles. Elle
exécute du bytecode qui lui est dédié : le bytecode .dex (format qui est optimisé pour une
empreinte mémoire minimale).
Cette particularité d'Android en fait un système unique, loin des systèmes Linux
traditionnels que beaucoup avaient pu rencontrer auparavant.
26
Chapitre II Android
27
Chapitre II Android
Content Provider : gère le partage de données entre applications, comme par exemple la
base de données de contact, qui peut être consultée par d'autres applications que l'application
Contact. Les Données peuvent partager à travers une base de données
(SQLite), des fichiers, le réseau, etc.
View System : fournit tous les composants graphiques : listes, grille, text box, buttons et
même un navigateur web embarqué.
Hardware Services
Les services matériels (Hardware Services) fournissent un accès vers les API matérielles de
bas niveau :
Telephony Service : permet d'accéder aux interfaces "téléphoniques" (gsm, 3G, etc.)
Location Service : permet d'accéder au GPS.
Bluetooth Service : permet d'accéder à l'interface bluetooth.
WiFi Service : permet d'accéder à l'interface Wifi.
USB Service : permet d'accéder aux interfaces USB.
Sensor Service : permet d'accéder aux détecteurs (détecteurs de luminosité, etc.)
III.4. Applications (niveau4)
Android est fourni avec un ensemble de programmes de base (également nommés
applications natives) permettant d'accéder à des fonctionnalités comme les courriels, les SMS,
le téléphone, le calendrier, les photos, les cartes géographiques, le Web, pour ne citer que
quelques exemples.
Ces applications sont développées à l'aide du langage de programmation Java. Pour
l'utilisateur final, c'est la seule couche accessible et visible.
.
28
Chapitre II Android
29
Chapitre II Android
30
Chapitre II Android
31
Chapitre II Android
32
Chapitre II Android
33
Chapitre II Android
…etc
Les applications peuvent émettre leurs propres intents qui seront captés par les Boradcast
receivers d’autre applications
VII. Les services offerts par Android [11]
Les services offerts par Android grâce à une quinzaine d'applications incorporées
facilitent notamment l'exploitation des réseaux de télécommunications GSM, Bluetooth, Wi-
Fi et UMTS la manipulation de médias, notamment de la vidéo H.264, de l'audio 123MP3 et
des images JPEG ainsi que d'autres formats, l'exploitation des senseurs tels que les capteurs
de mouvements, la caméra, la boussole et le récepteur GPS, l'utilisation de l'écran tactile, le
stockage en 39 bases de données, le rendu d'images en 2D ou 3D en utilisant le processeur
graphique, l'affichage de page web, l'exécution 32 multitâches des applications.
Conclusion
Dans ce chapitre nous avons vu l’architecture d’Android, les différents niveaux de la
plate-forme Android, quelques outils fournis par le SDK et les composants d’Android.
Nous allons par la suite présenter le chapitre concernant l’analyse et la conception de
notre application.
34
Analyse et Conception
Chapitre III Analyse et Conception
Introduction :
La conception de toute solution informatique doit être traitée avec rigueur et précision,
car elle constitue la base du système à développer. Avant de s’engager dans la conception, il
est impératif de passer par la phase d’analyse qui permet d’identifier les différents acteurs qui
interagissent avec le système ainsi que leurs besoins. Puis on passera à la conception qui
utilisera les résultats de la phase d’analyse, on donnera aussi la description détaillée du
système cible et les objectifs à atteindre. Pour ce faire, notre démarche va s’appuyer sur le
langage UML, qui offre une bonne représentation des aspects statique et dynamique d’une
application.
I. Le langage de modélisation UML :[18]
UML est un langage de modélisation fondé sur les concepts objet standard conçu pour
l’écriture de plans d’élaboration de logiciels. L’objectif d’UML est de fournir une notation
standard utilisable dans le développement de systèmes informatiques basés sur l’objet.
UML est adapté à la modélisation de systèmes, depuis les systèmes informatiques
d’entreprise jusqu’aux applications distribuées basées sur le Web, c’est un langage très
expressif qui couvre toutes les perspectives nécessaires au développement et au déploiement
de tels systèmes. Pour apprendre à s’en servir efficacement, il faut d’abord s’appuyer sur une
représentation conceptuelle de ce langage, ce qui nécessite l’assimilation de trois éléments
fondamentaux qui sont :
Les briques de base d’UML, (Des éléments. Des relations. Des diagrammes) et les
règles qui déterminent la manière de les assembler et quelques mécanismes généraux qui
s’appliquent à ce langage.
UML s’articule autour de neuf diagrammes différents, chacun d’eux étant dédié à la
représentation des concepts particuliers d’un système logiciel. Par ailleurs, UML modélise le
système suivant deux modes de représentation : l’un concerne la structure du système pris "au
repos" modèle statiques (diagramme de cas d’utilisation, de classe…etc.) l’autre concerne sa
dynamique de fonctionnement (diagramme de séquence, d’états transitions, d’activités…etc.).
Les deux représentations sont nécessaires et complémentaires pour schématiser la façon dont
est composé le système et comment ses composantes fonctionnent entre elles.
I.1. Analyse :
Cette partie a pour objectif la spécification d’une manière claire de notre application.
Pour ce faire, il est nécessaire de déterminer globalement ce que ce trouve dans le champ de
35
Chapitre III Analyse et Conception
l’application en s’intéressant à la définition des besoins ainsi que les interactions entre les
différents acteurs impliqués.
I.1.1 Identification des besoins :
Notre projet consiste à mettre en œuvre une application, qui a pour objectif d’assurer
le service d un restaurant via un Smartphone. Dans le but d’une meilleure organisation et une
bonne maîtrise du travail, tout processus de développement d’applications ou systèmes
informatiques doit suivre une méthode ou une démarche bien définie. La figure ci-dessous
montre la représentation graphique de la démarche de modélisation choisie pour concevoir
notre application :
Identification
des acteurs
Diagramme des
cas d’utilisation
Identification
des besoins
Diagramme des
séquence
Diagramme de
classe de cas
d’utilisation
Diagramme de
classe général
37
Chapitre III Analyse et Conception
38
Chapitre III Analyse et Conception
Plats
Include
Boissons
Include
Include
Choix de la Dessert
commande
Extend
Faire la commande
Include
Client
Valider la
commande
include
Préparer la commande
40
Chapitre III Analyse et Conception
41
Chapitre III Analyse et Conception
I.2. Conception :
Le processus de conception de notre application repose sur l’organisation
conceptuelle, logique et physique des données collectées durant la phase analyse. En effet,
elle s’appuie essentiellement sur quelques diagrammes du langage de modélisation UML.
I.2.1.Les diagrammes de séquence :
Le diagramme de séquence représente la succession chronologique des opérations
réalisées par un acteur : saisir une donnée, consulter une donnée, …, il met en évidence les
objets manipulés ainsi que les opérations qui font passer d’un objet à l’autre. Dans notre cas
on s’intéresse seulement à effectuer la représentation des diagrammes de séquence pour les
cas d’utilisation déjà présentés auparavant.
42
Chapitre III Analyse et Conception
Atteint
Afficher
Sélectionner
Atteint
Afficher
Saisir
Ajouter
Valider
Plat ajouté
43
Chapitre III Analyse et Conception
Atteint
Afficher
Sélectionner
Atteint
Afficher
Sélectionner
Passer la
commande
Valider
Confirmer
44
Chapitre III Analyse et Conception
45
Chapitre III Analyse et Conception
46
Chapitre III Analyse et Conception
• Table cmd
• Table login
• Table plat
47
Chapitre III Analyse et Conception
Login Plat
Id Ajouter
0.* 1.1 Id
Pseudo
Passe Nom
Description
Prix
Type
image
0.*
Appartenir
1.1
Cmd 1.*
Contenir 1.1 itemcmd
Id id
Date id_cmd
Table id_plat
Etat qnt
48
Chapitre III Analyse et Conception
Table login
Id : identifiant de la table
Pseudo : le pseudo de l’administrateur
Passe : mot de passe de l’administrateur
Table plat
Id : identifiant de la table
Nom : nom du plat
Description : description du plat
Prix : prix du plat
Type : type du plat (boisson, plat, dessert)
Image : l’image du plat
49
Chapitre III Analyse et Conception
Conclusion :
Dans ce chapitre nous avons mené une conception détaillée, selon une approche objet afin
de garantir la fiabilité et l’efficacité de la phase de réalisation de l’application. Nous avons
défini les acteurs constituant le système en exprimant leur besoins avec le diagramme de cas
d’utilisation, puis nous l’avons détaillé en précisant comment les objets et les acteurs doivent
collaborer ensemble selon une dimension temporelle par l’utilisation des diagrammes de
séquence. Finalement nous avons décrit l’aspect statique avec les diagrammes de classes. Le
chapitre suivant sera consacré à la réalisation de notre application.
50
Réalisation
Chapitre IV Réalisation
Introduction :
Pour pouvoir mener à bien un projet informatique, il est nécessaire de choisir des
technologies permettant de simplifier sa réalisation. Pour cela, après avoir compléter l'étude
conceptuelle dans le chapitre précédent, nous allons aborder la partie implémentation dans ce
qui suit. Nous commençons par présenter l'environnement matériel et logiciel, ensuite nous
présenterons les différentes interfaces de l'application.
51
Chapitre IV Réalisation
Technologie
Ci-dessous un tableau représentant les différentes technologies utilisées dans notre
application :
52
Chapitre IV Réalisation
53
Chapitre IV Réalisation
54
Chapitre IV Réalisation
55
Chapitre IV Réalisation
56
Chapitre IV Réalisation
57
Chapitre IV Réalisation
58
Chapitre IV Réalisation
59
Chapitre IV Réalisation
60
Chapitre IV Réalisation
Conclusion
Dans ce chapitre de réalisation, nous avons présentée les plates-formes matérielles et
logicielles sur lesquelles nous avons développé notre projet, ainsi que les technologies
employées. Nous avons, par la suite, présenté les interfaces les plus significatives de notre
application.
61
Conclusion générale
Conclusion générale
Ce projet nous a permis d’avoir une idée plus claire et plus précise sur le
développement sous Android ; ce système d’exploitation qui a envahit le marché des
terminaux mobiles.
Durant notre étude nous avons vu de façon détaillée le système, son architecture, ses
dernières versions ainsi que les outils utilisés afin de réaliser ce projet, d’ailleurs nous avons
opté pour l’utilisation des dernières technologies d’où notre travail s’est reposé sur une
implémentation sous Android Studio avec le langage JAVA, le SDK Android et une base de
données SQL.
62
Webographie
Références webographiques
[11] http://fr.wikipedia.org/wiki/Android
[12] http://blog.erlem.fr/android/31-architecture-generale-d-android
[13] http://fr.wikipedia.org/wiki/Android_SDK.
[16] http://fr.wikipedia.org/wiki/Widget.
[17] http://www.definitions-webmarketing.com/Definition-Android-Market.
[20] http://fr.wikipedia.org/wiki/Java_(langage)
Bibliographie
Références Bibliographiques
[2] Michael brard, Le guide du chef de projet mobile, Smile – Open Source Solutions. 2012.
[3] NGUYEN Van Tien. « Outils et méthodes pour le développement des applications
embarquées ». Juillet 2007.
[4] Ko Dooms, Roope Kylmäkoski, “Comprehensive documentation made agile –
experiments with RaPiD7 in Philips”. 2005.
[5] Harleen K. Flora, Dr. Swati V. “Chande «a review and anaysis on mobile application
development processes using agile methodlogies”. 2013.
[10]Nouha KHYARI, « Rapport de stage sur le projet ‘’Locate my car’’- google map android
», Ecole nationale des sciences de l’informatique Tunisie, 2010.
[14]Reto Meier , « Android 4: développement d'applications avancées» , Pearson Education
France, 4 sept. 2012 - 836 pages.
[15]Béatrice Bertrand, «ANDROID», CDDP de l’Eure , Académie de Rouen.
[18] Chantal Morly, Jean Hugues, Berland le blanc , «UML2 pour l’analyse d’un système
d’information» , 2002- 2006
[21] Ludovic Roland , «Structurez vos données avec XML» , Mis à jour en 2015
[22] AndroWiiid et Frédéric Espiau , «Créez des applications pour Android»