0% ont trouvé ce document utile (0 vote)
8 vues38 pages

Android Introduction 1

Ce document présente un cours d'introduction à la programmation mobile sur Android, abordant les objectifs, les enseignements, et les évaluations. Il couvre également les concepts fondamentaux d'Android, les types d'applications mobiles, et les étapes de développement d'une application native. Enfin, il décrit le cycle de vie des activités dans une application Android.

Transféré par

tarikgbazzi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues38 pages

Android Introduction 1

Ce document présente un cours d'introduction à la programmation mobile sur Android, abordant les objectifs, les enseignements, et les évaluations. Il couvre également les concepts fondamentaux d'Android, les types d'applications mobiles, et les étapes de développement d'une application native. Enfin, il décrit le cycle de vie des activités dans une application Android.

Transféré par

tarikgbazzi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PROGRAMMATION

MOBILE

Introduction à

ANDROID

[Link]@[Link]
I PRÉSENTATION DU COURS

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 2
PRÉSENTATION DU COURS
I
OBJECTIFS

Stockage de données
Enregistrer des données
localement, dans la
mémoire du
périphérique Android.

Android Studio
Prendre en main
Interface utilisateur
l'environnement de
Être en mesure de créer
développement
une interface utilisateur
intégré (EDI) conçu
simple. API Rest
pour Android
Se connecter et
échanger des
informations à distance
à l'aide d'une API Rest.
Capteurs embarqués
Accéder aux
informations renvoyées
par les capteurs
présents sur le La base pour créer des
périphérique Android.
applications Android

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 3
PRÉSENTATION DU COURS
I
ENSEIGNEMENTS

CM
3 Pour poser les bases

TD
3 Pour découvrir l'environnement Android

TP
12 Pour développer un projet

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 4
PRÉSENTATION DU COURS
I
ENSEIGNEMENTS

CM
31 Pour poser les bases

TD
35 Pour découvrir l'environnement Android

TP
12 Pour développer un projet

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 5
PRÉSENTATION DU COURS
I
ÉVALUATIONS

Évaluation théorique Évaluation pratique


Aléatoirement au début Mise en pratique des
des séances de TD/TP. connaissances acquises
sous la forme d'un projet.

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 6
II ANDROID

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 7
ANDROID
II
PILE ANDROID

Ensemble de logiciels indispensables


au fonctionnement d'Android : Luncher,
Téléphone, Messagerie, Navigateur, Logiciels
Contacts, Paramètres...
Ensemble de bibliothèques et de
ANDROID SDK services nécessaires au développement
Machine virtuelle en charge de des applications Android
l'exécution des applications Android.
Utilise la compilation Ahead of Time Android Runtime (ART)
(AOT) pour convertir le bytecode en
code machine dès l'installation.
Couche d'abstraction servant d'interface
Hardware Abstraction Layer (HAL) entre le noyau Linux et le matériel.
Android repose sur un Noyau Linux
légèrement modifié pour les
environnements mobiles (économie Noyau Linux adapté à l'embarqué
d'énergie, gestion de la mémoire, sécurité, ...).

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 8
ANDROID
II
OPEN SOURCE ET GRATUIT ?

OPEN SOURCE
Le code source d'Android est disponible en Open Source. Chacun est donc libre de créer sa propre
version d'Android gratuitement à partir du projet AOSP (Android Open Source Project).

MAIS
Les Google Mobile Services (Play, Maps, GMail, Chrome, Google Drive, ...) sont des applications
propriétaires de Google et nécessitent une licence.

La licence GMS est "gratuite" mais nécessite une certification qui, elle, est payante.

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 9
ANDROID
II
AVEC QUELLE VERSION TRAVAILLER ?

TOUT DÉPEND DU PARC CIBLE

Disponible sur Google Play ?


Devra être fonctionnel sur un maximum de périphériques
Android.

Maîtrise du parc matériel ?


A définir avec le client en fonction des API requises.

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 10
III APPLICATIONS MOBILES

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 11
Applications mobiles
III
PLUSIEURS APPROCHES

NATIVE HYBRIDE PWA

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 12
Applications mobiles
III
APPLICATIONS NATIVES

Développées spécifiquement pour la plateforme cible (iOS ou Android)

Utilisent un langage de programmation pris en charge par la plateforme :


▪ Swift pour iOS
▪ Java ou Kotlin pour Android

Offrent les meilleures performances

Permettent un accès à toutes les fonctionnalités du périphérique (appareils


NATIVE photo, capteurs, contacts, ...)

Distribuées via la boutique d'applications de la plateforme cible

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 13
Applications mobiles
III
APPLICATIONS HYBRIDES

Développées sous la forme d'une application Web (HTML, CSS, JS) puis
encapsulée dans une application native intégrant juste un navigateur
configuré pour ne charger que l'application Web associée.

Offrent de moins bonnes performances qu'une application native.

L'accès aux fonctionnalités du périphérique (appareils photo, capteurs, ...)


est possible via des appels JavaScript au runtime de l'application native.
HYBRIDE
Distribuées via la boutique d'applications de la plateforme cible

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 14
Applications mobiles
III
PROGRESSIVE WEB APPLICATIONS (PWA)

Développées sous la forme d'une application Web (HTML, CSS, JS)

Utilisent un Service Worker pour mettre en cache les éléments nécessaires


à leur fonctionnement de manière déconnectée.

Offrent des performances intermédiaires entre celles des applications


natives et hybrides.

L'accès aux fonctionnalités du périphérique est limité et se fait via les API
Web disponibles.
PWA
Distribuées via le Web (pas d'installation nécessaire) ou via le store de la
plateforme (nécessité de créer une Trusted Web Activity).

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 15
Applications mobiles
III
FRAMEWORKS NATIFS MULTIPLATEFORMES

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 16
DÉVELOPPER UNE
IV APPLICATION NATIVE ANDROID

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 17
Développer une application native Android
IV
ENVIRONNEMENT DE DÉVELOPPEMENT

Nécessitent d'être configurés pour la Android Studio est prêt à l'emploi


prise en charge du SDK Android

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 18
Développer une application native Android
IV
LANGAGES DE PROGRAMMATION

Langage historique pour le développement


d'applications Android.

Officiellement pris en charge pour le développement


d'applications Android en 2017 et mis en avant à partir de 2019.

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 19
V LES ACTIVITÉS

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 20
Les activités
V
ACTIVITÉ (ACTIVITY)

UNE ACTIVITÉ

▪ représente une fonctionnalité ou un écran de l'application

▪ est responsable de l'interaction avec l'utilisateur pour


cette fonctionnalité

▪ est un élément fondamental de la navigation au sein de


l'application

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 21
Les activités
V
LAYOUT

Le layout est un document XML qui décrit la structure


d'une interface utilisateur :

▪ Les composants présents (champ texte, image, bouton, ...)

▪ L'aspect des composants (taille, couleur, bordure, ...)

▪ La position des composants (relative, absolue, ...)

Android Studio fournit un éditeur graphique permettant d'éditer


un layout sans avoir à manipuler le XML directement.

Une activité est généralement associée à un layout, mais ce


n'est pas toujours le cas (ex : tâche de fond).

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 22
Les activités
V
PILE D'ACTIVITÉS (BACK STACK)

La navigation au sein d'une application, mais également entre les applications, se fait par
empilement / dépilement des activités.

Le passage d'une activité à une autre se fait via :

▪ un Intent qui démarre une nouvelle activité

▪ le retour en arrière (back) qui réactive l'activité précédente

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 23
Les activités
V
PILE D'ACTIVITÉS - EXEMPLE

1. L'utilisateur démarre pour la première fois l'application "Zombie Total War 3000 Full Extermination X And Again"

Un écran de connexion demande ses identifiants à l'utilisateur

PILE ACTIVITÉ 1
écran de
D'ACTIVITÉS connexion

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 24
Les activités
V
PILE D'ACTIVITÉS - EXEMPLE

2. Comme l'utilisateur n'a jamais joué à ce jeu, il clique sur le bouton "Créer un compte"

Un écran de création de compte apparaît

PILE ACTIVITÉ 1 ACTIVITÉ 2


écran de écran de création
D'ACTIVITÉS connexion de compte

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 25
Les activités
V
PILE D'ACTIVITÉS - EXEMPLE

3. L'utilisateur reçoit un appel pendant qu'il saisit ses informations

L'activité de l'application Téléphone est chargée sur la pile et masque l'écran de saisie du jeu

PILE ACTIVITÉ 1 ACTIVITÉ 2 ACTIVITÉ 3


écran de écran de création appel
D'ACTIVITÉS connexion de compte téléphonique

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 26
Les activités
V
PILE D'ACTIVITÉS - EXEMPLE

4. L'utilisateur termine son appel

L'activité de l'application Téléphone est fermée et dépilée. L'écran de saisie des informations du jeu est de nouveau
visible

PILE ACTIVITÉ 1 ACTIVITÉ 2


écran de écran de création
D'ACTIVITÉS connexion de compte

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 27
Les activités
V
PILE D'ACTIVITÉS - EXEMPLE

4. L'utilisateur a terminé la création de son compte

L'écran de saisie des informations du jeu est fermé et l'activité associée est dépilée. L'écran de login apparaît à
nouveau

PILE ACTIVITÉ 1
écran de
D'ACTIVITÉS connexion

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 28
Les activités
V
CYCLE DE VIE
DÉMARRAGE DE L'ACTIVITÉ

onCreate()

L'utilisateur navigue vers onStart() onRestart()


l'activité

onResume()

PROCESSUS TUÉ EXÉCUTION DE L'ACTIVITÉ


L'utilisateur retourne
sur l'activité
Une autre activité est passée au
premier plan

Le système à besoin de libérer de


la mémoire onPause()
L'utilisateur navigue
vers l'activité
L'activité n'est plus visible

onStop()

L'activité est terminée ou détruite par le


système

onDestroy()

ARRÊT DE L'ACTIVITÉ

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 29
Les activités
V
ACTIVITÉ ET LAYOUT

[Link] activity_main.xml

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 30
VI LES INTENTIONS

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 31
Les intentions
VI
L'APPLICATION, UN ENSEMBLE D'ACTIVITÉS

Comment passer d'une activité à


une autre ?

▪ Le bouton BACK qui permet de


revenir à l'activité précédente sur
la pile d'activités

▪ Les intentions (Intent) qui


permettent de démarrer de
nouvelles activités internes ou
externes à l'application (exemple :
la galerie photo)

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 32
Les intentions
VI
INTENT EXPLICITE

Lorsque l'on passe d'une activité à une autre au sein de la même application, le développeur est en
territoire connu. Il sait exactement quelle activité charger sur la pile d'activités.

La classe de l'activité à démarrer sera explicitement indiquée dans les paramètres de l'Intent :
//Création de l'Intent explicite
val intentToNextActivity = Intent(
[Link], //Contexte de départ
TargetActivity::[Link] //Activité cible indiquée explicitement
);

// Démarrage de la nouvelle activité


startActivity(intentToNextActivity);

La classe de l'activité cible doit faire partie du même package que l'activité source.

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 33
Les intentions
VI
INTENT IMPLICITE

Mais il existe d'autres cas dans lesquels le développeur ne sait pas quelle activité doit être démarrée.

Par exemple, si on souhaite que l'utilisateur charge une photo pour son profil, on ne sait pas s'il
préfère utiliser l'application Galerie ou Photo ou Pinterest ou encore prendre un selfie avec Camera.

Dans ce cas, on indique au système Android la nature de ce que l'on souhaite faire et lui déterminera,
en fonction des applications installées et des choix de l'utilisateur, l'activité à démarrer.

//Création de l'Intent implicite permettant de choisir quelque chose


val intentToPickPicture = Intent(Intent.Action_PICK)

//Précise que l'on souhaite choisir une image


[Link] = "image/*"

//Démarrage de la nouvelle activité avec attente de l'image sélectionnée


startActivityForResult(intentToPickPicture, "Identifiant_Resultat");

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 34
Les intentions
VI
TRANSMETTRE DES INFORMATIONS

Les Intents permettent de transmettre des informations entre les activités :

activité source activité cible


//Création de l'Intent //Récupération de la valeur de la donnée
val intent = Intent(...); //data_name
val dataValue = [Link]("data_name");
//Transmission de data_value sous
//le nom data_name
[Link]("data_name", "data_value");

// Démarrage de la nouvelle activité


startActivity(intent);

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 35
VII TOUT LE RESTE

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 36
Tout le reste
VII
PLEIN DE CHOSES À DÉCOUVRIR

Si le développement mobile vous intéresse, il vous restera bien des choses à découvrir et à
approfondir à l'issue de ce module :

▪ Les quantificateurs

▪ Les fragments

▪ Les ViewModel

▪ ...

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 37
Tout le reste
VII
POUR LA PROCHAINE SÉANCE

▪ Venez avec un téléphone Android si vous en possédez un, et un câble permettant le


transfert de données.

▪ Venez avec votre ordinateur portable si vous en possédez un.

▪ Préinstallez Android Studio.

P R O G R A M M A T I O N M O B I L E - I N T R O D U C T I O N À A N D R O I D | 38

Vous aimerez peut-être aussi