Développement mobile natif
Mohamed Aymen
CHARRADA
ISET de Mahdia
DSI 3
A.U. 2024/2025
Objectif du cours
Ce cours vise à faire acquérir à l’apprenant les
outils de développement des applications
mobiles sous « Android » et maitriser les
environnements mobiles modernes
2 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Présentation du cours
A l'issue de ce cours, les étudiants auront appris à:
▪ Comprendre les plateformes mobiles et leurs contraintes
▪ Comprendre l'architecture d’un système mobile
▪ Apprendre à développer une application sous Android
▪ Pouvoir utiliser les ressources des appareils mobiles et s’interfacer
avec des services distants
Niveaux cibles :
Étudiants DSI 3
Pré-requis :
Programmation objet, systèmes d’exploitation, XML, base de
données
3 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Accès
Ce cours est accessible via le lien suivant :
[Link]
G-FvHFQKExfjbhre1Qi5gQONp
4 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Plan du cours
Introduction
5 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Introduction
Applications mobiles
Considérées comme un logiciel applicatif développé pour
fonctionner sur des appareils mobiles (smartphone, tablette,
montre connectée...)
Dédiées à fonctionner sur un système d’exploitation mobile
(Android, IOS, HarmonyOS...)
Développées avec des langages de programmation
spécifiques (JAVA et kotlin pour Android, Swift pour Apple)
Distribuées depuis des plateformes de téléchargement
(google play, App Store, AppGallery…)
Existent sous trois formes possibles : natives, web et
hybrides
7 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Types d’applications mobiles
Applications natives (1/2)
Conçues spécifiquement pour le système d’exploitation via lequel
elles seront utilisées
Téléchargeables depuis une plateforme dédiée (Google play, Apple
store, AppGallery)
Installées localement et utilisent les capacités des appareils sur
lesquels elles sont installées et celles de leur système d’exploitation
Elles sont beaucoup plus stables et offrent une meilleure
expérience utilisateur
Elles s'adaptent parfaitement au système d’exploitation et
permettent d'interagir facilement avec les différentes fonctions de
l’appareil
Elles peuvent fonctionner en mode hors ligne dans la majorité des
cas
8 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Types d’applications mobiles
Applications natives (2/2)
Elles nécessitent toutefois un développement plus long et
complexe et une maintenance plus lente et couteuse
Elles peuvent être volumineuses, ce qui peut poser problème pour
les appareils avec une capacité de stockage limitée
Les applications natives correspondent généralement aux
programmes pratiques tels que l'appareil photo, l’horloge, le GPS,
le Bluetooth, le module d'appels ou de messages, le carnet
d’adresses ou encore l’authentification biométrique…
9 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Types d’applications mobiles
Applications web progressives (1/2)
Sont des sites web optimisés pour fonctionner sur les appareils
mobiles
Accessibles depuis un URL via un navigateur internet de l’appareil
mobile
Exploitent les technologies web (HTML, CSS, JS …) et peuvent
être développées pour être réactives et adaptatives à différents
types d'écrans
Elles sont génériques et fonctionnent sur tous les appareils dotés
d'un navigateur, quel que soit le système d'exploitation
Elles ne nécessitent pas d'être téléchargées depuis un store
Elles sont légères, admettent souvent un coût réduit et leur
maintenance est plus simple
10 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Types d’applications mobiles
Applications web progressives (2/2)
Elles manquent de performances (par rapport aux applications
natives), en particulier pour les fonctionnalités complexes
Elles admettent souvent moins de contrôle sur les fonctionnalités
matérielles
Elles nécessitent dans la plupart des cas une connexion Internet
11 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Types d’applications mobiles
Applications hybrides
Elles réunissent des éléments web et natives : Elles sont
développées avec des technologies web et encapsulées dans un
conteneur natif
Elles peuvent accéder souvent à toutes les fonctions natives
présentes sur l’appareil mobile
Elles sont compatibles avec toutes les plateformes mobiles et
peuvent être distribuées sur tous les stores
Elles combinent les avantages des deux approches, tout en tentant
de minimiser leurs inconvénients
12 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Pourquoi développer des applications mobiles
Nombres d’abonnements mobiles
En 2000 : < 1 milliard
En 2023 : presque 8.9 milliards
Environ 142 milliards téléchargements d'applications
mobiles ont été effectués uniquement en 2023
De 2011 à 2023, les revenus des applications mobiles ont
dépassé les 930 milliards de dollars. Ces revenus
comprennent les revenus des téléchargements
d'applications, des achats intégrés, de la publicité et des
modèles d'abonnement
13 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Pourquoi développer des applications mobiles
Nombre de smartphones vendus dans le monde entre 2007 et
2023 (en millions d’unités)
14 Mohamed Aymen CHARRADA - DSI3
Source 15/09/2024
Présentation d’Android
Naissance d’Android (1/4)
C’était à l’origine un OS mobile développé par une startup
américaine (« Android Incorporated »)
Cette startup a été créée en 2003 puis rachetée en 2005 par
Google avec un montant de ≈ 2 milliards $
Google avait l’intention de s'introduire sur le marché des
produits mobiles et de développer un OS mobile permettant
à l'utilisateur d'interagir avec son environnement
Les principaux concurrents « d’Android » à l'époque étaient
« Symbian » (Nokia) et « Windows Mobile » (Microsoft)
En janvier 2007, « Apple » dévoilait « l’iPhone », un téléphone
tout simplement révolutionnaire pour l'époque, capable
d'aller sur internet, de lire des vidéos,…
16 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Naissance d’Android (2/4)
« iPhone » était un téléphone équipé d’un super OS mobile
appelé « iOS » (iPhoneOS)
L'annonce, qui a bouleversé le monde du mobile, était un
désastre pour les autres constructeurs (y compris Google)
Pour ces concurrents, le problème étant que pour atteindre
le niveau d'iOS, il aurait fallu des années de recherche et
développement à chaque constructeur
Solution
Création d’une alliance, qui regroupe un nombre important des
intervenants, afin de s'aligner sur la nouvelle concurrence
« d’Apple » et développer un OS concurrent à « iOS » dans les
plus proches délais
17 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Naissance d’Android (3/4)
En novembre 2007, l’alliance OHA (Open Handset Alliance) a
été créée et comptait à sa création 35 entreprises évoluant
dans l'univers du mobile, y compris Google
Cette alliance avait le but de développer un OS mobile open
source et ainsi concurrencer les autres OSs notamment iOS
L'OHA compte à l'heure actuelle 80 membres
18 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Naissance d’Android (4/4)
Depuis sa création, la popularité d'Android a toujours été
croissante
C'est au quatrième trimestre de 2010 qu'Android devient le
système d'exploitation mobile le plus utilisé au monde
On le retrouve non seulement dans les tablettes et les
smartphones, mais aussi dans les téléviseurs, les consoles de
jeux, les appareils photos, l’électroménager…
19 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Présentation d’Android
Android est un environnement de développement open
source pour les terminaux mobiles, il est composé de :
Un système d’exploitation basé sur Linux
Des applications basiques (téléphonie, contacts, messagerie...)
Un ensemble d’API avancées (géolocalisation, graphique 2D et 3D,
connectivité…)
SDK (Standard Development Kit) basé sur JAVA
L’utilisation d’Android est avantageuse vu qu’il est :
Open source (gratuit) et personnalisable (modifiable au choix)
Stable et relativement simple à utiliser
Flexible et extrêmement portable, il s'adapte à différents types
d’appareils (tablette, TV, Smartphone …)
Riche en fonctionnalités
20 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Historique des versions Android
Android 13 Android 14
August
Mohamed Aymen CHARRADA - DSI3 2022 October 2023 15/09/2024
21
Android sur le marché
Part des ventes
mondiales de
smartphones par
système
d'exploitation (%)
Source
22 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Android sur le marché
Part du marché des principaux fournisseurs mondiaux de
smartphones (en %)
23 Mohamed Aymen CHARRADA - DSI3
Source 15/09/2024
Architecture d’Android
24 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Architecture d’Android
Un noyau linux qui assure :
✓ Gestion de le mémoire
✓ Gestion des processus
✓ Gestion du matériel (écran clavier …)
✓ Gestion des capteurs (appareil photo, GPS, accéléromètre
…)
✓ …
25 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Architecture d’Android
Des bibliothèques (C et C++)
✓ Graphisme
✓ Médias
✓ Web
✓ …
26 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Architecture d’Android
Une machine virtuelle java
(environnement d’exécution)
27 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Architecture d’Android
Des gestionnaires pour les applications + une API en java
✓ Gestion des fenêtres, des activités, des ressources …
✓ API pour développement des programmes
28 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Architecture d’Android
Les applications
29 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Installation et configuration d’Android
Exigences matérielles minimales
Pour installer l’environnement Android, il faut avoir :
2 Go de mémoire RAM, mais on ne va pas se cacher qu'en dessous
de 8 Go vous risquez d'être limité
Plus de 1,5 Go d'espace disque pour tout installer
Niveau processeur, c'est vraiment la puissance pure qui compte. Il
n'y a donc pas de minima mais le plus rapide sera le mieux
Si vous allez développer sous Windows, il faut avoir au moins la
version Windows 7
Pour Mac OS, Il vous faudra Mac OS 10.8.5 ou plus récent
Pour Linux, Google conseille d'utiliser une distribution Ubuntu
plus récente que la 14.04
30 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Installation et configuration d’Android
JDK (Java Development Kit)
Il est préférable que la dernière version du JDK soit installée sur
votre machine (JDK est un ensemble d'outils pour compiler et
déboguer votre code Java)
Pour télécharger la dernière version du JDK, rendez-vous ici
31 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Installation et configuration d’Android
Android studio
C’un environnement de développement spécialisé dans la création
des applications Android
Pour procurer la dernière version de cet outil, rendez-vous ici
32 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Structure de base d’une application
Android
Application Android
Une application Android est constituée de plusieurs composants
qui interagissent entre eux
Ces composants se divisent en deux catégories: composants
applicatifs et composants d’interaction
Les composants applicatifs définissent comment l’application se
comporte et interagit avec les utilisateurs et l’OS
Les principaux composants applicatifs :
Les activités
Les fragments
Les services
Les ressources
Le fichier de configuration
34 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Activité
Un composant qui représente une seule interface avec lequel
l'utilisateur peut interagir
Chaque activité est généralement associée à une interface
utilisateur et gère la logique de cette interface et son cycle
de vie, qui sont implémentés en Java dans une classe héritant
de la classe « Activity » ou d’une classe dérivée de «
Activity » (par exemple « MapActivity » pour utiliser
Google maps)
Pour chaque interface de votre application, vous devez donc
créer une activité
35 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Cycle de vie d’activité
Une activité peut avoir plusieurs états. Ces états constituent son
cycle de vie
Les principaux états d’une activité sont :
Créée (created) : activité créée en mémoire mais pas encore visible
Démarrée (started) : activité visible mais pas encore en premier plan
Active (active) : activité visible qui détient le focus de l’utilisateur (en
premier plan)
Suspendue (paused) : activité partiellement visible (par exemple,
lorsqu'un autre écran apparaît partiellement au-dessus), mais elle n'est
plus au premier plan
Arrêtée (stopped) : activité invisible (en arrière plan) et inactive mais
elle est toujours en mémoire
Détruite (Destroyed) : activité détruite définitivement et mémoire
libérée
36 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Cycle de vie d’activité
La classe « Activity », classe supérieure de toutes les
activités, définit un nombre de méthodes spécifiques qui
gèrent le passage entre les états du cycle de vie
Ces méthodes sont :
onCreate : invoquée pour la création de l’activité (c’est la seule
méthode qui doit être obligatoirement implémentée dans la
classe de chaque activité)
onStart : invoquée pour (re)démarrer l’activité
onResume : invoquée pour mettre l’activité en premier plan
onPause : invoquée pour mettre l’activité en pause
onStop : invoquée pour stopper l’activité
onRestart : invoquée pour redémarrer l’activité stoppée
onDestroy : invoquée pour terminer l’activité
37 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Cycle de vie d’activité
Active
(visible et en
premier plan)
onResume() onPause()
Démarrée onResume()
(visible mais Suspendue
pas en (partiellement
premier plan) visible)
onStop()
onStart()
onStart()
Créée
Arrêtée
(n’est pas onRestart()
(n’est plus
encore visible)
visible)
onCreate()
onDestroy()
Détruite
38 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Fragment
Une activité peut être composée d’un ensemble de portions
modulaires appelés fragments, qui peuvent être combinées
(pour former une activité plus complexe)
Les fragments permettent la réutilisation des interfaces
utilisateur et la gestion de plusieurs parties d'une interface au sein
d'une même activité
39 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Service
C’est est un composant qui permet d'exécuter des tâches en
arrière-plan sans avoir besoin d'une interface utilisateur
Les services peuvent continuer à fonctionner même si
l'utilisateur quitte l'application, ce qui est utile pour des
tâches telles que la lecture de musique ou le téléchargement
de données
40 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Ressources
Ce sont des fichiers extérieurs au code source qui
permettent de définir l'apparence, le contenu, et les
fonctionnalités de l'application
Ils incluent des éléments comme les chaînes, les images, le
son, les mises en page, les couleurs, les dimensions, les
animations, et bien plus encore
L'utilisation des ressources permet de séparer le code de la
présentation, ce qui rend l'application plus facile à
personnaliser, à gérer et à maintenir
41 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Fichier de configuration (Manifest file)
C’est un fichier essentiel et obligatoire pour chaque
application Android
Ce fichier, nommé « [Link] », décrit les
composantes de l’application (activités, services…)
Il déclare les permissions de l’application (telles que droit de
passer des appels, d’accès à internet, au caméra, au GPS …)
Il précise la version minimale d’Android nécessaire pour le
bon fonctionnement de l’application
Il définit aussi des informations concernant l’application
telles que le nom, l’icône, la version …
42 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Fichier de configuration (Manifest file)
43 Mohamed Aymen CHARRADA - DSI3 15/09/2024
Composants d’interaction
Les composants d’interaction gèrent la communication
entre les différentes parties de l'application et entre
l'application et l'utilisateur (ou le système Android)
Les principaux composants d’interaction :
Les intentions (intent)
Les récepteurs d’ intentions
Les filtres d’intentions
Les notifications
44 Mohamed Aymen CHARRADA - DSI3 15/09/2024
45 Mohamed Aymen CHARRADA - DSI3 15/09/2024