26/09/2023
Institut Supérieur des Etudes Technologiques de Béja
DÉVELOPPEMENT MOBILE
Enseignante: Mme Haïfa Chorfi
Département : Technologies de l’informatique
Niveau : DSI3
Volume Horaire : 22.5h
Coefficient :2
Année Universitaire : 2023 / 2024
Version :4
1 Mme. HAIFA CHORFI
Plan du cours
CHAPITRE 1 : Initiation à la programmation mobile-Android
CHAPITRE 2 : Concepts de base
CHAPITRE 3 : Interfaces graphiques
CHAPITRE 4 : Interfaces graphiques avancées
CHAPITRE 5 : Communication entre applications : Intent
CHAPITRE 6 : Persistance des données
2 Mme. HAIFA CHORFI
Mme Haifa Chorfi 1
26/09/2023
Institut Supérieur des Etudes Technologiques de Béja
DÉVELOPPEMENT MOBILE
Enseignante: Mme. Haïfa Chorfi
CHAPITRE 1 : INITIATION À LA PROGRAMMATION MOBILE
Niveau : DSI3
3 Mme. HAIFA CHORFI
Introduction
4 Mme. HAIFA CHORFI
Mme Haifa Chorfi 2
26/09/2023
Système d’exploitation mobile
Un Système d’exploitation mobile ou OS mobile (Operating
System) peut être défini comme un ensemble de
programmes permettant à un terminal mobile (smartphone,
Notebook, tablette, Smart Watch,…) de fonctionner.
Il permet aux utilisateurs de gérer la connectivité sans fil
(Réseau téléphonique mobile, Wifi, Bluetooth, GPS,…),
passer un appel téléphonique, télécharger des applications ou
encore paramétrer et personnaliser leurs terminaux.
5 Mme. HAIFA CHORFI
Système d’exploitation mobile
2 principaux systèmes, représentant la quasi-totalité des parts de marché
Android (Google)
iOS (Apple)
Autres
Windows phone (Microsoft)
Blackberry OS (RIM)
Bada de Samsung
Firefox OS
MeeGo
Tizen
Palm WebOS
Symbian OS de Nokia
Ubuntu touch
6 Mme. HAIFA CHORFI
Mme Haifa Chorfi 3
26/09/2023
Système d’exploitation mobile
OS Société Langage de Environnement de
développement développement intégré
IDE
Android Google Java et Android SDK Android Studio
Kotlin
C++ et Android NDK
IOS Apple Swift(remplace Xcode
Objective-C)
iPhoneSDK
7 Mme. HAIFA CHORFI
Système d’exploitation mobile
8 Mme. HAIFA CHORFI
Mme Haifa Chorfi 4
26/09/2023
Pourquoi l’OS de Google?
Au niveau des ventes de Smartphones, Android est l’écosystème n°1 sur le segment des
smartphones depuis la fin de l’année 2010 mais aussi depuis début 2012 sur le segment
des tablettes.
Pourquoi Android ?
Android est moins cher: iPhone et iPad seront généralement plus chers que leur
équivalent dans d’autres marques
Android laisse le choix de la marque : Lorsque l’on souhaite utiliser iOS, on est
obligé de faire l’acquisition d’un iPhone contrairement à Android qui permet de choisir le
smartphone parmi des dizaines disponibles sur le marché.
Android est open source: Basé sur une plateforme Linux, le système de Google est
ouvert et libre.
Services intégrés : Les services Google sont parfaitement intégrés à les terminaux
équipés de son OS mobile.
9 Mme. HAIFA CHORFI
Pourquoi l’OS de Google?
Android est personnalisable : Les mobiles sous iOS peuvent difficilement être
personnalisés car Apple souhaite gérer lui-même l’expérience utilisateur. Le
système Android quant à lui propose plusieurs solutions pour personnaliser le
téléphone à souhait(modifier le fond d’écran du téléphone…)
Une mémoire extensible : Lors de l’achat d’un appareil sous iOS, il faut
choisir sa capacité de mémoire définitive. De 128 Go à 1 To, elle est inextensible.
Android fait face de ce blocage matériel en proposant un port microSDHC sur les
appareils qu’il anime
Le Google Play, riche en applications gratuites : Si l’App Store d’Apple et
le Google Play ont maintenant un nombre similaire d’applications, les versions
gratuites sont plus nombreuses sur le système mobile de Google.
10 Mme. HAIFA CHORFI
10
Mme Haifa Chorfi 5
26/09/2023
Types d’application mobile
Webapp
Application native
Application hybride
Cross-platform
11 Mme. HAIFA CHORFI
11
WebApp
Application mobile exécutable via le navigateur internet via tous les
appareils mobiles quelque soit leur marque et leur système
d'exploitation.
Cette application est développée avec les technologies web
classique, comme HTML5, CSS3 ou javascript.
[Link] [Link]
12 Mme. HAIFA CHORFI
12
Mme Haifa Chorfi 6
26/09/2023
WebApp
Avantages :
Un seul et unique code pour les différentes plateformes
Coût de développement moins important
Compatible avec tous les navigateurs
Inconvénients :
Non accessible en mode hors connexion (sauf s’il y a une mise
en cache du site)
Ne peut pas accéder aux applications natives du mobile (GPS,
appareil photo…)
Pas adapté aux traitements lourds (réalité augmentée, 3D, etc.)
Difficulté d'intégrer un module de payement pour les services
offerts
13 Mme. HAIFA CHORFI
13
Application native
Les applications natives sont développées spécifiquement pour un
système d’exploitation (iOS ou Android), dans le langage de
programmation dédié à cet environnement.
Application que l'on télécharge et que l'on installe sur son
Smartphone ou sur sa tablette via des magasins d'applications.
Elle est développée avec un langage spécifique aux différents
systèmes d'exploitation : Java ou Kotlin, pour android, Objective-
C ou Swift pour ios.
14 Mme. HAIFA CHORFI
14
Mme Haifa Chorfi 7
26/09/2023
Application hybride
Mélange d’application native et de Web App, vous bénéficiez des
avantages des applications natives sans développer l’intégralité du
produit dans le langage de chaque plateforme.
Elle combine des éléments HTML5 sous forme de webApp et des
éléments de l'application native.
Le développement d'application hybride repose des plugins comme
Apache Cordova ou Ionic's Capacitor. Le système de plugin permet
aux développeurs d'accéder aux fonctionnalités natives des
plateformes.
15 Mme. HAIFA CHORFI
15
Application Cross-Platform
Des frameworks multiplateformes fonctionnent pour développer
un code partageable et réutilisable pour différents systèmes
d'exploitation
Beaucoup de gens confondent hybride et multiplateforme: la
seule similitude entre les deux types d'applications est la
« partage du code »
Écrire le code une seule fois et le réutiliser sur plusieurs plates-
formes aide à minimiser les coûts et les efforts de
développement.
16 Mme. HAIFA CHORFI
16
Mme Haifa Chorfi 8
26/09/2023
Comparaison
Type d’application Native Hybride Cross-platform
Code codes distincts code unique avec des code unique avec des
capacités potentielles capacités potentielles
spécifiques à la plate- spécifiques à la plate-
forme forme
Débogage Outils de débogage Outils de débogage Dépend du
natifs de développement framework
Web et natifs
Outils XCode Ionic Flutter (Google)
Android Studio Apache Cordova React Native
Visual Studio (Facebook)
Xamarin (développé
par Microsoft)
17 Mme. HAIFA CHORFI
17
Comparaison
Type Native Hybride Cross-platform
d’application
– Accès complet aux
– Coûts de
fonctionnalités de - Prise en charge de
développement
l'appareil/du système différents systèmes
réduit
d'exploitation d'exploitation
– Prise en charge de
– Performances - L'interface
différents systèmes
puissantes utilisateur est
d'exploitation
Avantages – Excellente Interface presque aussi rapide
– Réutilisation du
utilisateur native (mise que native.
code
à jour avec le système – Réutilisation du
– Développement
d'exploitation) code
rentable
– Fonctionnalité hors – Développement à
– Grandes capacités
ligne faible coût
de personnalisation
–Les plus rapides
18 Mme. HAIFA CHORFI
18
Mme Haifa Chorfi 9
26/09/2023
Comparaison
Type d’application Native Hybride Cross-platform
– Performances plus
– Pas de prise en
– Performances plus lentes
charge
lentes car les app – Accès limité à la
multiplateforme
hybrides se chargent fonctionnalité du
– Coûts de
dans une Webview. système
développement élevé
– Les d'exploitation
– Pas de réutilisation
fonctionnalités du – L’expérience
Inconvénients de code
système utilisateur est
– Problème de
d'exploitation sont souvent moins
compatibilité après
restreintes optimale
les mises à jour.
– Aucune interaction – Mauvaise
– coûts de
avec d'autres interaction avec
maintenance élevée
applications natives d'autres applications
natives
19 Mme. HAIFA CHORFI
19
Native vs hybride vs cross-platform : lequel choisir ?
Performances : Développement d'applications natives
Délai de commercialisation : Développement hybride et cross-
platform
Coûts de développement: Développement d'applications cross-
platform
Sécurité des applications : Développement d'applications natives
Personnalisation & UX: Développement d'applications natives
20 Mme. HAIFA CHORFI
20
Mme Haifa Chorfi 10
26/09/2023
Qu’est-ce qu’Android ?
Android est un système d’exploitation mobile:
orienté dispositif mobiles : il s’agit donc d’un
ensemble de logiciels qui sert d’interface entre le
matériel (Tablette, smartphone, netbook,
télévision, embarqué) et les logiciels applicatifs.
open source : disponibilité du code, importante
communauté d’utilisateurs.
basé sur le noyau Linux
21 Mme. HAIFA CHORFI
21
Versions d’Android
Les versions se succèdent rapidement et les changements qui les
accompagnent sont souvent conséquents en termes de nouvelles
fonctionnalités et d’améliorations
Dernière version stable 13.0 (publiée le 15 Aout 2022)
22 Mme. HAIFA CHORFI
22
Mme Haifa Chorfi 11
26/09/2023
Fragmentation Android – Aout 2022
Les dernières données partagées par Google datent du 30 mai
2023. Android 11 occupe la première place avec 23,1 %.
23 Mme. HAIFA CHORFI
23
Contraintes
Pour vos développements, on doit garder à l'esprit que les
appareils mobiles ont :
Une puissance processeur plus faible
Une RAM limitée
Des capacités de stockage permanent limitées
De petits écrans avec de faibles résolutions
Des coûts élevés de transfert de données
Des taux de transfert plus lents avec une latence élevée
Des connexions réseau moins fiables
Des batteries à autonomie limitée
24 Mme. HAIFA CHORFI
24
Mme Haifa Chorfi 12
26/09/2023
Première application
1. Installer IDE.
2. Créer le projet et prenez en main l'environnement.
3. Concevoir l'interface utilisateur de votre première activité
4. Référencer les éléments graphiques dans votre activité
5. Gérer les actions de l'utilisateur.
6. Lancer l'application sur l'émulateur ou sur un équipement réel.
25 Mme. HAIFA CHORFI
25
Environnement de développement
L'IDE officiel supporté par Google pour développer sous Android est
Android Studio : [Link]
26 Mme. HAIFA CHORFI
26
Mme Haifa Chorfi 13
26/09/2023
Environnement de développement
Android Studio est l’IDE officiel pour le développement d'applications
Android, basé sur IntelliJ IDEA.
Un éditeur de code puissant et des outils de développement d'IntelliJ
Un système de construction flexible basé sur Gradle
Un émulateur rapide et riche en fonctionnalités
Un environnement unifié où vous pouvez développer pour tous les
appareils Android
Modèles de code et intégration GitHub pour vous aider à créer des
fonctionnalités d'application courantes et à importer un exemple de code
………
27 Mme. HAIFA CHORFI
27
Configuration
Installer le JDK (kit de développement Java)
28 Mme. HAIFA CHORFI
28
Mme Haifa Chorfi 14
26/09/2023
Configuration
Installer le SDK Android (kit de développement logiciel android)
29 Mme. HAIFA CHORFI
29
Configuration
Installer le SDK Android (kit de développement logiciel android)
30 Mme. HAIFA CHORFI
30
Mme Haifa Chorfi 15
26/09/2023
Développement de l’application
31 Mme. HAIFA CHORFI
31
Mme Haifa Chorfi 16