Introduction au développement mobile
Introduction au développement mobile
2023/2024
Plan
Chapitre 1. Introduction au développement mobile
2
Plan
Chapitre 1. Introduction au développement mobile
❑ Introduction
3
Introduction
➢ Développement mobile ?
• Une application mobile est un programme informatique conçue pour s'exécuter sur un
appareil mobile tel qu'un téléphone, une tablette, une montre, etc.
4
Processus de développement mobile
Idée et
Objectifs Analyse Conception
5
Processus de développement mobile
Idée et
Objectifs
6
Processus de développement mobile
Analyse
7
Processus de développement mobile
Conception
8
Processus de développement mobile
Réalisation
9
Processus de développement mobile
Test
10
Processus de développement mobile
Déploiement
11
Les plateformes mobiles
• La plate-forme iOS d'Apple : C’est le système d'exploitation qui alimente la gamme populaire
de smartphones iPhone d'Apple.
12
Les plateformes mobiles
➢ Android vs iOS :
• Code source :
13
Les plateformes mobiles
➢ Android vs iOS :
o Android est utilisé par une gamme de différents types d’appareils avec différents besoins
de construction et de développement.
o Le développement d'applications iOS est moins complexe que celui des applications
Android.
14
Les plateformes mobiles
➢ Android vs iOS :
o Les applications Android prennent plus de temps de développement mais peuvent être
créées à l'aide de l'application Android Studio qui peut être facilement installée sur
n'importe quel PC Windows standard.
o Les applications iOS peuvent être conçues en un temps plus court; cependant, les
développeurs doivent utiliser XCode, qui ne fonctionne que sur Mac, ce qui augmente le
coût de développement.
15
Les plateformes mobiles
➢ Android vs iOS :
• Publication d'applications :
o Les applications Android peuvent être publiées plus rapidement et plus facilement sur
Play Store en payant juste des frais d'inscription uniques de 25 $.
o Les applications iOS nécessitent un long processus d'approbation pour être publiées sur
App Store. Les frais sont plus élevés, un abonnement annuel de 99 $ / an.
16
Méthodes de développement Mobile
➢ Les 04 alternatives :
17
Méthodes de développement Mobile
➢ Application Native :
• Cela permet de bénéficier de toutes les fonctionnalités liées au système d’exploitation visé, telles
que : GPS, microphone, appareil photo, etc.
• Utilisent les outils de développement de leur système d’exploitation (Android Studio ou XCode).
• Si vous faites le choix du natif et que vous souhaitez que votre application soit disponible sur
Android et sur iOS, il sera donc nécessaire de développer l’application deux fois.
18
Méthodes de développement Mobile
➢ Application Hybride :
• Le code source permet de générer deux applications : pour Android et pour iOS.
• Elle s’appuie pour cela sur des technologies Web telles que le Javascript, HTML et CSS.
• Son contenu s’exécute dans un Conteneur natif, une WebView, pour pouvoir être utilisée
comme une app native.
19
Méthodes de développement Mobile
➢ Application Cross-Platform :
• Cependant, contrairement aux applications hybrides dont le code s’exécute dans une
WebView native, les applications cross-platform produisent un même code source qui produit
deux applications natives.
• Cela induit une meilleure performance et une expérience utilisateur plus proche du natif.
20
Méthodes de développement Mobile
• Elle Il ne s’agit pas d’une technologie mobile mais d’une version mobile d’un site web.
• L’AWP n’est pas disponible sur les stores (App Store ou Play Store) et elle n’a pas besoin d’être
installée.
• Elle ne peut pas non plus utiliser toutes les fonctionnalités de bas niveau de l’appareil mobile.
21
Méthodes de développement Mobile
Coûts plus élevés lors de la Dépend des bibliothèques pour Performances inférieures par Prise en charge limitée des
Inconvénients
création et de la maintenance de les fonctionnalités natives de rapport aux applications fonctionnalités natives de
l’application l'appareil natives et Cross-Platform l'appareil
22
Outils de développement Mobile
➢ Android studio :
• Android Studio est un environnement de développement des applications mobiles pour Android.
• Il peut être installé sous les systèmes d'exploitation Windows, MacOS, ChromeOS, et Linux.
23
Outils de développement Mobile
➢ XCode :
• XCode est un environnement de développement pour Mac OS, ainsi que pour iOS, et watchOS.
• Il permet de programmer des applications avec les langages suivants : Objective C ou Swift.
24
Outils de développement Mobile
➢ Flutter :
• Flutter est un Framework conçu par Google dont la première version date de 2015. Cette
solution s’appuie sur le Langage Dart.
• Permet de créer une application Cross-platform (pour iOS ou Android) à partir d’un même code.
• À l’inverse de ses concurrents tel que React native, Flutter va donc générer un code natif pour
chaque plateforme, ce qui permet d’optimiser son fonctionnement selon chaque OS.
• Flutter permet de développer rapidement grâce à une forte gamme de widgets personnalisables.
25
Outils de développement Mobile
➢ React Native :
• React Native, développé par Facebook, est un framework open-source basé sur le JavaScript.
• C’est un framework de développement hybride avec un code unique qui permet aussi bien un
développement sur iOS que sur Android.
26
Outils de développement Mobile
➢ Ionic :
• Développé en 2013, Ionic est un framework open-source qui utilise des technos web comme
HTML, CSS et Javascript pour développer des applications mobiles hybrides.
• La caractéristique principale de Ionic réside dans ses composants par défaut de l’interface
utilisateur comme les formulaires, les filtres, ou le menu de navigation.
27
Outils de développement Mobile
➢ Xamarin :
• Créé en 2011, Xamarin est une technologie permettant aux développeurs d’applications
mobiles, d’avoir une approche native et multiplateforme.
• Xamarin offre un contexte de développement unique pour partager les composants entre les
différentes plateforme mobile : IOS ([Link]) et Android ([Link]).
28
Outils de développement Mobile
➢ App Inventor :
• C’est un outil de développement en ligne gratuit pour les téléphones et les tablettes sous Android.
• La plateforme de développement est offerte à tous les utilisateurs possédant un compte Gmail.
• Elle simplifie le développement des applications mobiles et le rend accessible même pour les
novices et ceux qui ne sont pas familiers avec les langages de programmation.
29
Plan
Chapitre 2. Développement mobile Natif sous Android
❑ La plateforme Android
31
La plateforme Android
➢ Android :
• Conçu à la base par une startup (Android) rachetée par Google en 2005.
32
La plateforme Android
➢ OHA :
33
La plateforme Android
➢ T-Mobile G1 :
34
La plateforme Android
• Smartphone
• Tablette
• Netbook
• Télévision et Frigo
• Google Glass
• Smartwatch
• Etc.
35
La plateforme Android
36
La plateforme Android
U t ilisate u r U se r
➢ Architecture d’Android :
M até rie l H a rd wa re
37
La plateforme Android
➢ Architecture d’Android :
38
La plateforme Android
➢ Architecture d’Android :
▪ Des bibliothèques (Libraries) : nécessaires pour utiliser les formats multimédia (images, audio
et vidéo), les dessins 2D/3D, les base de données (SQLite), les services Web (Webkit), etc.
39
La plateforme Android
➢ Architecture d’Android :
• La 3ème couche fournit des API permettant aux développeurs de créer des applications riches
sans avoir besoin de tout programmer à zéro. Elle comporte des composants pour gérer :
▪ Les notifications.
▪ Etc.
40
La plateforme Android
➢ Architecture d’Android :
• Dans la 4èmre couche, on trouve l’ensemble des applications installées dans le dispositif.
▪ Des applications native installées par défaut avec le système Android (Play Store,
calculatrice, etc).
41
Développement Natif avec App Inventor
42
Développement Natif avec App Inventor
➢ App Inventor :
• L’outil offre des composants graphique pour créer l’interface de l’application dans la page
« Designer ».
• Pour la programmation, App Inventor est basé sur un langage de programmation visuelle appelé
« Blockly » disponible dans la page « Blocks ».
43
Développement Natif avec App Inventor
• Conçu à des fins pédagogiques, donc facile à utiliser (Prise en main rapide).
• Permet de tester rapidement (en temps réel) l’application sur les appareils Android.
44
Développement Natif avec App Inventor
• Limites concernant l’interface utilisateur (police du texte, positionnement des objets, etc.).
45
Développement Natif avec App Inventor
Boutons, champs de texte, Accéléromètre, SMS, Evénements préprogrammés Des opérations associées à
images, … géolocalisation, … auxquels on peut associer un événement ( changer un
des actions (quand on clique texte, envoyer un SMS, jouer
Chaque composant possède des propriétés qu’on peut sur un bouton, SMS reçu, …) un son, …)
manipuler en mode Designer / Blocks
46
Développement Natif avec App Inventor
47
Développement Natif avec App Inventor
• Dans votre smartphone, Installer l’application : MIT AI2 Companion (Disponible en Play Store)
• Dans votre smartphone, lancer l’application « MIT AI2 Companion » et scanner le code QR.
48
Développement Natif avec App Inventor
• Tâche N°1: Créer une application qui affiche le texte « Hello World! » au centre de la page.
49
Développement Natif avec App Inventor
50
Développement Natif avec App Inventor
51
Développement Natif avec App Inventor
52
Développement Natif avec App Inventor
53
Développement Natif avec App Inventor
54
Développement Natif avec App Inventor
55
Développement Natif avec App Inventor
56
Développement Natif avec App Inventor
1 2 3 4
5
57
Développement Natif avec App Inventor
1. Palette : une liste (par catégories) des composants qu’on peut ajouter à l’application.
2. Viewer : un aperçu de l’interface de l’application.
3. Components : la liste des composants qu’on a ajouté à l’application.
4. Properties : la liste des propriétés du composant sélectionné.
5. Media : la liste des fichiers (image, audio, vidéo, etc.) ajoutés à l’application.
58
Développement Natif avec App Inventor
1 2
3
59
Développement Natif avec App Inventor
1. Blocks : une liste (par catégories) des blocks de code qu’on peut utiliser pour la programmation.
2. Viewer : un espace de construction des blocks de code.
3. Media : la liste des fichiers (image, audio, vidéo, etc.) ajoutés à l’application.
60
Développement Natif avec App Inventor
61
Développement Natif avec App Inventor
62
Développement Natif avec App Inventor
63
Développement Natif avec App Inventor
• Composants Media :
▪ Camcorder/Camera : utiliser la caméra de l’appareil.
▪ ImagePicker : pour sélectionner une image de la galerie du téléphone.
▪ Player/Sound : permet de jouer un fichier audio.
▪ SoundRecorder : permet d’enregistrer le son via le microphone.
▪ SpeechRecognizer : permet de convertir la voix de l’utilisateur en texte.
▪ TextToSpeech : permet de transformer un texte en voix.
▪ Translator : traduire des mots et des phrases entre différentes langues.
▪ VideoPlayer : pour l’affichage et la lécture des vidéos.
64
Développement Natif avec App Inventor
▪ Canvas : défini une zone pour placer des balles et des images déplaçables.
65
Développement Natif avec App Inventor
• Composants Maps :
66
Développement Natif avec App Inventor
• Composants Charts :
▪ Chart : composant graphique pour tracer les données provenant de ses composants attachés.
67
Développement Natif avec App Inventor
68
Développement Natif avec App Inventor
69
Développement Natif avec App Inventor
• Composants Social :
▪ ContactPicker/PhoneNumberPicker : choisir un contact dans la liste.
▪ EmailPicker : champ texte avec ‘autocomplete’ pour sélectionner un email.
▪ PhoneCall : passer un appel téléphonique au numéro spécifié.
▪ Sharing : partager des fichiers avec les autres applications installées.
▪ Texting : envoyer/recevoir des messages.
▪ Twitter : se connecter à un compte twitter.
70
Développement Natif avec App Inventor
71
Développement Natif avec App Inventor
• Composants Connectivity :
▪ ActivityStarter : lancer une page d’une autre application Android.
▪ BluetoothClient/Server : connexion bluetooth avec un autre appareil.
▪ Serial : pour se connecter à des appareils comme Arduino.
▪ Web : fournir des fonctions pour les requêtes HTTP GET, POST, PUT et DELETE.
72
Développement Natif avec App Inventor
73
Développement Natif avec App Inventor
• Autres composants :
▪ Dans la catégorie « Extension », on peut ajouter des extensions pour plus de fonctionnalités :
o Chiffrement des données,
o Publicité (Admob),
o Intelligence artificielle,
o Etc.
74
Développement Natif avec App Inventor
76
Développement Natif avec App Inventor
• Contrôle :
77
Développement Natif avec App Inventor
78
Développement Natif avec App Inventor
79
Développement Natif avec App Inventor
80
Développement Natif avec App Inventor
81
Développement Natif avec App Inventor
82
Développement Natif avec App Inventor
• Math :
83
Développement Natif avec App Inventor
84
Développement Natif avec App Inventor
85
Développement Natif avec App Inventor
86
Développement Natif avec App Inventor
87
Développement Natif avec App Inventor
• Text :
88
Développement Natif avec App Inventor
89
Développement Natif avec App Inventor
90
Développement Natif avec App Inventor
91
Développement Natif avec App Inventor
• Lists :
92
Développement Natif avec App Inventor
93
Développement Natif avec App Inventor
94
Développement Natif avec App Inventor
• Lists : pour ajouter, modifier, ou supprimer des éléments dans une liste.
95
Développement Natif avec App Inventor
96
Développement Natif avec App Inventor
• Dictionaries :
97
Développement Natif avec App Inventor
• Dictionaries : les dictionnaires sont des structures de données comportant une liste de clé-valeur.
• Exemple :
{
"id": 123,
"name": “Mohamed Ali",
"school": "EST Nador",
“subscribed": true,
"skills": ["Web Dev", "Mobile Dev"]
}
98
Développement Natif avec App Inventor
99
Développement Natif avec App Inventor
100
Développement Natif avec App Inventor
101
Développement Natif avec App Inventor
102
Développement Natif avec App Inventor
• Colors :
103
Développement Natif avec App Inventor
• Variables :
104
Développement Natif avec App Inventor
• Procedures :
105
Développement Natif avec App Inventor
• Screen blocks :
106
Développement Natif avec App Inventor
107
Développement Natif avec App Inventor
• Screen blocks : pour modifier (setters) ou lire (getters) la valeur d’une propriété de l’écran.
108
Développement Natif avec App Inventor
109
Développement Natif avec App Inventor
• Component blocks : pour gérer les événements, les appels, et les propriétés du composant.
110
Développement Natif avec App Inventor
111
Développement Natif avec App Inventor
• Tâche N°1: Créer une app permettant de calculer la somme de 2 nombres entrés par l’utilisateur.
113
Développement Natif avec App Inventor
• Tâche N°1: Créer une application permettant connecter l’utilisateur. Il doit entrer le login et le
mot de passe. Si le login et le mdp sont correctes, l’application affichera « Connexion réussie » en
vert. Sinon, on affiche le message « Login ou mot de passe erroné! » en rouge. Exemple : Login
(root) et Mot de passe (toor).
• Tâche N°2: Ajouter un deuxième écran (page) qui affiche le message « Bienvenu Login! » si la
connexion est réussie. Et améliorer le design de l’application.
114
Développement Natif avec App Inventor
• Tâche N°1: Créer une application permettant de mélanger des valeurs des couleurs principales
(RGB) pour obtenir des nouvelles couleurs.
▪ Utiliser 3 composants « Slider » pour spécifier les valeurs RGB et un composant « Label » pour
afficher le code de la couleur.
115
Développement Natif avec App Inventor
• Modifier l’application de l’exercice N°5 en ajoutant une 3ème page « Signup ». Dans cette page
l’utilisateur peut entrer le nom, la date de naissance, l’email et le mot de passe (2 fois).
• Pour la connexion, on remplace les valeurs de Login (root) et Mot de passe (toor) par l’email et le
mot de passe de l’utilisateur.
116
Développement Natif avec App Inventor
• Tâche N°1: Créer une application permettant de simuler le comportement de base d’un navigateur
▪ Utiliser 3 composants :
• Tâche N°2: Le contenu du Textbox doit changer en fonction de l’adresse (URL) de la page affichée.
• Tâche N°3: Modifier l’application pour afficher des pages html locales.
117
Développement Natif avec App Inventor
• Composants :
118
Développement Natif avec App Inventor
119
Développement Natif avec App Inventor
• Tâche N°1: Créer une application permettant de convertir un nombre décimal en un nombre
binaire ou hexadécimal.
120
Développement Natif avec App Inventor
• Tache N°1 : Créer une app de dessin en utilisant les composants suivants.
121
Développement Natif avec App Inventor
• Tache N°1 : Créer une app de détection des objets utilisant les composants.
▪ LookExtension : [Link]
▪ Bouton : Classify.
122
Développement Natif avec Android Studio
➢ Android Studio :
• Android Studio est l’environnement de développement intégré (IDE) officiel pour développer
des applications Android.
• Décembre 2014, Google lance la 1ère version stable d’Android Studio (Avant : Eclipse + ADT).
• Il est basé sur l’IDE de Java IntelliJ IDEA, qui est développé par JetBrains.
• Il intègre le moteur Gradle, qui automatise les tâches et permet un développement simplifié.
• Android studio nécessite aussi d’autres outils : JDK, Android SDK, Emulateurs, etc.
124
Développement Natif avec Android Studio
➢ Outils nécessaires :
• Android SDK (Software Development Kit) : inclus dans Android Studio (SDK Manager).
• Emulateurs (pour tester l’application) : inclus dans Android Studio (AVD, ADB)
125
Développement Natif avec Android Studio
➢ SDK Manager :
• Les applications Android seront développées en Java, mais un appareil sous Android ne
comprend pas Java tel qu’il est, il comprend une variante de Java adaptée pour Android.
• Un kit de développement appelé Android SDK, est un SDK spécifique incluant les outils
nécessaires permettant de développer des applications sous android.
SDK Manager
126
Développement Natif avec Android Studio
➢ SDK Manager :
127
Développement Natif avec Android Studio
• La version d’Android (…, 12, 13) est le numéro pour le grand public, et les versions d’API (…, 32,
33, 34, …) sont pour les développeurs.
• On souhaite programmer avec la dernière API (fonctions plus complètes et modernes), mais
les utilisateurs ont souvent des smartphones plus anciens, qui n’ont pas cette API.
• On doit donc choisir une API qui correspond à la majorité des smartphones.
128
Développement Natif avec Android Studio
Device Manager
➢ Device Manager :
• C’est le composant qui gère les émulateurs utilisés pour tester les applications.
• Il utilise deux composants : AVD (Android Virtual Device) et ADB (Android Debug Bridge)
▪ AVD : créer et gérer des émulateurs virtuels intégrés dans Android Studio.
▪ ADB : communiquer avec des dispositifs externes réels (tel, etc.) ou virtuels (Nox Player, etc.).
129
Développement Natif avec Android Studio
➢ Gradle :
• Gradle est un outil de construction de projets comme Make (C++) et Ant (Java).
▪ un script [Link] dans le dossier racine du projet indiquant les dépendances générales
130
Développement Natif avec Android Studio
▪ Res : contient toutes les ressources que l'on utilise dans l’application
(vues, images, couleurs, textes, etc.)
131
Développement Natif avec Android Studio
• Tache N°1 : Créez une application qui affiche « Hello WM! » et testez-la sous différents émulateurs.
• Tache N°2 : Modifiez les propriétés du texte affiché et vérifiez si les changements s’appliquent en
temps réel.
132
Développement Natif avec Android Studio
133
Développement Natif avec Android Studio
➢ Exercice 1 :
134
Développement Natif avec Android Studio
➢ Exercice 2 : Login
• Tache N°1 : Créer une application Comportant une page (activity) « Login ».
135
Développement Natif avec Android Studio
➢ Exercice 2 : Login
136