SlideShare une entreprise Scribd logo
1  sur  183
Formation Android 4.1 – Les fondamentaux
Introduction à l’univers Android
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Histoire d’Android
2003 : Naissance du projet Android
2005 : Racheté par Google
Janvier 2007 : Annonce de l’iPhone
Novembre 2007 : Création de l’Open Handset Alliance
Fin 2010 : Android devient l’OS mobile le plus utilisé au monde
Formation Android 4.1 – Les fondamentaux
Philosophie et avantages d’Android
Open Source
Gratuit (ou presque)
Facile à développer
Facile à vendre
Flexible
3/4 du marché des smartphones
Formation Android 4.1 – Les fondamentaux
Parts de marché des OS mobiles
1eme trimestre 2012 :
Android : 59,1 %
iOS : 22,9 %
BlackBerry OS : 6,3 %
Windows Phone : 2,1 %
Autres : 9,6 %
3eme trimestre 2016 :
Android : 87,8 %
iOS : 11,5 %
BlackBerry OS : 0,1 %
Windows Phone : 0,4 %
Autres : 0,2 %
Formation Android 4.1 – Les fondamentaux
Android dans le temps
Android 1.O et 1.1
Android 1.5 (CupCake)
Android 1.6 (Donut)
Android 2.0 et 2.1 (Eclair)
Android 2.2 et 2.3 (Froyo et Gingerbread)
Android 3.0 (Honeycomb)
Android 4.0 (Ice Cream Sandwich)
Android 4.1, 4.2, 4.3 et 4.4 (Jelly Bean / KitKat)
Android 5.0, 5.0.1, 5.0.2 et 5.1 (Lollipop)
Android 6.0 (Marshmallow)
Android 7.0 (Nougat)
Formation Android 4.1 – Les fondamentaux
Conditions initiales
Pour tout le monde :
2 Go de mémoire RAM (idéalement plus de 8 Go)
Plus de 1,5 Go d'espace disque
Niveau processeur, l'émulation ne peut se faire que sur 1 cœur de votre
processeur, donc augmenter le nombre de cœurs ne vous servira pas à
grand-chose. C'est vraiment la puissance pure qui compte. Il n'y a donc pas
de minima mais le plus rapide sera le mieux
Spécificités par OS
Windows : Vista ou plus récent
Mac OS : Mac OS 10.8.5 ou plus récent
Linux : bibliothèque GNU C (glibc) version 2.15 ou plus récent
Formation Android 4.1 – Les fondamentaux
Installation des outils
Java Development Kit (JDK)
Environnement de développement Android Studio
Téléchargement des API et outils grâce au SDK
Formation Android 4.1 – Les fondamentaux
Configuration du terminal
Sous Windows
Soit télécharger les drivers du terminal sur le site du constructeur :
Liste des sites : https://developer.android.com/studio/run/oem-
usb.html#Drivers
Soit utiliser un pilote générique :
android-sdkextrasgoogleusb_driver
Sous Mac OS
Rien à faire :-)
Sous Linux
Ajouter au gestionnaire de périphériques une règle spécifique par appareil
relié
Formation Android 4.1 – Les fondamentaux
Configuration du téléphone
Par étapes :
1.Accéder aux paramètres du téléphone
2.Aller dans « sécurité »
3.Activer « sources inconnues »
4.Retourner au menu principal des paramètres du téléphone
5.Aller dans « à propos du téléphone »
6.Tout en bas, appuyer 7 fois sur « numéro de build »
7.Retourner à nouveau dans le menu principal des paramètres du téléphone
8.Aller dans la nouvelle catégorie « options pour les développeurs »
9.Activer le « débogage USB »
Formation Android 4.1 – Les fondamentaux
Environnement de développement
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Création d’un projet
Premier écran
Application Name :
Nom qui apparaîtra sur l'appareil et sur Google Play
Company Domain :
Identifiant de l’application (ne peut être changé une fois l’app publiée)
Project Location :
Emplacement où les fichiers du projet seront créés
Deuxième écran
Sélection de l’API
Troisième écran
Création de la première Activity
Dernier écran
Informations sur la première activité de notre application
Formation Android 4.1 – Les fondamentaux
Composition d’un projet Android
Dossier « java »
Dossier « res » (ressources)
layout
drawable
values
Config :
AndroidManifest.xml
build.gradle
Formation Android 4.1 – Les fondamentaux
Android Manifest
Formation Android 4.1 – Les fondamentaux
build.gradle
Formation Android 4.1 – Les fondamentaux
Dossier « values »
strings.xml :
colors.xml :
dimens.xml :
Formation Android 4.1 – Les fondamentaux
Compiler et lancer son app
Formation Android 4.1 – Les fondamentaux
Logs
Formation Android 4.1 – Les fondamentaux
Debug
Formation Android 4.1 – Les fondamentaux
Inspecter son code
Formation Android 4.1 – Les fondamentaux
Android Virtual Device Manager
AVD Manager permet d’émuler des devices Android
Il est possible de choisir des modèles existants ou de créer son propre modèle
Formation Android 4.1 – Les fondamentaux
SDK Manager
Formation Android 4.1 – Les fondamentaux
Les Layouts
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Différents types de Layout
LinearLayout
Layout avec orientation unique (horizontal et vertical)
RelativeLayout
Layout avec positionnement des éléments
GridLayout
Position des éléments dans un tableau
FrameLayout
Elément unique
CoordinatorLayout
Layout avec dépendance entre les éléments
ConstraintLayout
Équivalent au RelativeLayout mais plus flexible et plus simple
Formation Android 4.1 – Les fondamentaux
LinearLayout
Formation Android 4.1 – Les fondamentaux
RelativeLayout
Formation Android 4.1 – Les fondamentaux
GridLayout
Formation Android 4.1 – Les fondamentaux
Coordinator Layout
Formation Android 4.1 – Les fondamentaux
Constraint Layout
Formation Android 4.1 – Les fondamentaux
Les éléments dans un layout
TextView
EditText
Button
RadioButton
CheckBox
AutoCompleteTextView
et beaucoup d’autres…
Formation Android 4.1 – Les fondamentaux
TextView
Formation Android 4.1 – Les fondamentaux
EditText
Formation Android 4.1 – Les fondamentaux
Button
Formation Android 4.1 – Les fondamentaux
Les attributs des éléments de layout
Id
Width / Height
WeightSum et Weight
Margin / Padding
Gravity
Visibility
Src
Text
Color
etc…
Formation Android 4.1 – Les fondamentaux
Id
Définir un id permet d’utiliser un élément depuis un Layout ou
depuis une classe Java
Un id se défini de cette manière : @+id/nom_id
Exemple avec la création d’une TextView qui a pour id textview_hello :
Dans la classe Java, on récupère notre TextView grâce à son id :
On peut ensuite utiliser cette TextView pour changer son texte par exemple :
Formation Android 4.1 – Les fondamentaux
Widht / Height
Les attributs widht et
height définissent la
longueur et largeur d’un
élément
Il y a plusieurs possibilités :
match_parent : prend toute
la taille du layout parent
wrap_content : prend toute
la taille du contenu de
l’élément
taille fixe (en dp / px / in /
mm / pt)
Formation Android 4.1 – Les fondamentaux
WeightSum et Weight
Formation Android 4.1 – Les fondamentaux
Margin et Padding
Formation Android 4.1 – Les fondamentaux
Include
Les include permettent d’insérer le contenu d’un Layout dans un
autre Layout.
Il est possible de donner un id à son include
Il est aussi possible de définir la longueur et la largeur d’un include
Formation Android 4.1 – Les fondamentaux
Exercice : les Layouts
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Le but de l’exercice
Comprendre comment fonctionnent les Layouts : Relative et Linear
Réussir à positionner des éléments dans des Layouts
Compiler une app sur Android
Réussir à lancer son app depuis un émulateur ou un smartphone
Formation Android 4.1 – Les fondamentaux
Énoncé
Réaliser le même Layout qu’à gauche :
- Il doit être divisé en 2 parties de
tailles égales
- La partie du haut doit contenir le
texte « BONJOUR » centré au milieu de
cette partie.
- La partie du haut doit avoir une
couleur de fond au choix.
- La partie du bas doit contenir 3
boutons (« BOUTON 1 », « BOUTON 2 »
et « BOUTON 3 »). Ces boutons doivent
être centrés au milieu de cette
partie.
Formation Android 4.1 – Les fondamentaux
Les Chaînes de caractère
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Exemple avec une TextView
Formation Android 4.1 – Les fondamentaux
Extraction de la chaîne de caractères
Formation Android 4.1 – Les fondamentaux
Résultat
Formation Android 4.1 – Les fondamentaux
Translation Editor
Formation Android 4.1 – Les fondamentaux
Les Activity
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Qu’est ce qu’une Activity ?
Formation Android 4.1 – Les fondamentaux
Activity, Context et Interface Graphique
Formation Android 4.1 – Les fondamentaux
Pile d’activités
Formation Android 4.1 – Les fondamentaux
Cycle de vie d’une activité
onCreate
méthode d'initialisation des vues, des paramètres et autres données.
onStart
appelée quand l'activité est rendue visible à l'utilisateur.
onRestart
appelée à un nouveau démarrage de la même activité (quand l'activité était arrêtée)
onResume
appelée quand l'activité commence à interagir avec l'utilisateur.
onPause
méthode qui sert à arrêter une activité temporairement.
onStop
appelée quand l'activité n'est plus visible à l'utilisateur, soit à cause d'une nouvelle
activité lancée, soit parce que l'activité en cours s'apprête à être détruite.
onDestroy
est invoquée quand l'activité est détruite par la méthode finish() ou quand le système
décide de tuer l'activité pour économiser de l'espace.
Formation Android 4.1 – Les fondamentaux
Cycle de vie d’une activité
Formation Android 4.1 – Les fondamentaux
Cycle de vie d’une activité
Formation Android 4.1 – Les fondamentaux
Context
Référence à des ressources gérées par l'application, des informations
sur le système et accès à des services d'Android.
Est employé pour lancer une nouvelle activité, réceptionner les
intentions ou écouter les événements. Exemples :
création de nouveaux objets (TextView, Adapter...)
accès à des ressources (String, Array...)
accès implicite à des components, par
exemple getContext().getContentResolver()
Comment récupérer le contexte ?
getApplicationContext()
getContext()
getBaseContext()
this (disponible uniquement depuis une activité)
Formation Android 4.1 – Les fondamentaux
Intent
Permet de naviguer entre les écrans (d’une Activity à une autre)
On distingue deux types d'intention :
explicite : on spécifie le nom de l’activité à invoquer.
implicite : on ne sait pas quelle activité doit être invoquée : Android se
charge de trouver l'activité adéquate à lancer (exemple : pour un site web, il
va lancer un des navigateurs disponibles).
Passage de MainActivity() à NextActivity() :
Formation Android 4.1 – Les fondamentaux
Bundle
Envoyer un extra de type int à une autre Activity :
Recevoir un int dans l’autre Activity :
Le Bundle est une instance de classe passée en paramètre dans
la méthode onCreate().
Cette classe est une sorte de conteneur pour les données
transmissibles d'une activité à l'autre. Elle permet de récupérer
tout type de données :
String, long, char, ArrayList, etc…
Formation Android 4.1 – Les fondamentaux
Un exemple c’est toujours mieux :)
MainActivity.java :
NextActivity.java :
Structure du projet :
Formation Android 4.1 – Les fondamentaux
Les Activity : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Le but de l’exercice
Comprendre comment fonctionnent les Activity
Savoir passer d’une Activity à une autre
Passer des paramètres à une Activity à une autre
Formation Android 4.1 – Les fondamentaux
Énoncé
Réaliser une application qui contient 2 Activity.
Il doit y avoir un log sur chaque cycles de l’Activity principale :
• onCreate
• onStop
• onStart
• etc…
La première Activity doit proposer à l’utilisateur de rentrer son login et mot
de passe.
Il pourra ensuite cliquer sur un bouton de validation qui lance la seconde
Activity.
Dans cette seconde Activity, une TextView doit afficher son login.
Formation Android 4.1 – Les fondamentaux
Intents implicites
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Intent implicite
Un Intent implicite permet de laisser le soin à Android de chercher
l’app la plus adaptée pour notre action.
Par exemple :
Ouvrir un URL
Envoyer un SMS
Partager quelque chose
Écouter une musique
Scanner un code-bar
Etc.
Formation Android 4.1 – Les fondamentaux
Uniform Resource Identifier (URI)
Une URI est une chaîne de caractère respectant une norme et permettant d’identifier une
ressource sur un réseau de manière permanente, même si cette ressource est déplacée ou
supprimée. L’URL est une URI pour les ressources disponibles sur Internet, au même titre
que l’ISBN est une URI pour les livres puisqu’il s’agit de l’identifiant unique d’un livre.
Formation Android 4.1 – Les fondamentaux
Exemples URI
ftp://ftp.is.co.za/rfc/rfc1808.txt [archive] : protocole FTP pour le service File Transfer Protocol
http://www.math.uio.no/faq/compression-faq/part1.html [archive] : protocole HTTP pour le
service Hypertext Transfer Protocol
mailto:mduerst@ifi.unizh.ch [archive] : protocole mailto pour les adresses électroniques
news:comp.infosystems.www.servers.unix [archive] : protocole news pour les newsgroups Usenet
telnet://melvyl.ucop.edu/ [archive] : protocole telnet pour les services interactifs via telnet
irc://irc.freenode.net/ubuntu-fr [archive] : protocole IRC pour le service Internet Relay Chat
ssh://utilisateur@example.com [archive] : protocole SSH pour le service Secure shell
sftp://utilisateur@example.com [archive] : protocole SFTP pour le service SSH file transfer protocol
http://example.org/URI/absolu/avec/chemin/absolu/vers/une/ressource [archive]
/URI/relatif/avec/chemin/absolu/vers/une/ressource
chemin/relatif/vers/une/ressource
../../../ressource
./ressource#fragment
ressource
#fragment
Formation Android 4.1 – Les fondamentaux
Ouvrir le navigateur
Formation Android 4.1 – Les fondamentaux
Envoyer un SMS
Formation Android 4.1 – Les fondamentaux
Envoyer un Email
Formation Android 4.1 – Les fondamentaux
Les Fragments
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Exemple de fragment
Formation Android 4.1 – Les fondamentaux
Avantages de l'utilisation des fragments
Formation Android 4.1 – Les fondamentaux
Cycle de vie d’un fragment
Formation Android 4.1 – Les fondamentaux
FrameLayout
Formation Android 4.1 – Les fondamentaux
Dans l’activité
Formation Android 4.1 – Les fondamentaux
Dans le fragment
Formation Android 4.1 – Les fondamentaux
Les Fragments : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Le but de l’exercice
Comprendre comment fonctionnent les Fragments
Passer d’un fragment à un autre
Formation Android 4.1 – Les fondamentaux
Énoncé
Réaliser la même app qu’à gauche :
- Il faut une Activity qui contient
quatre boutons :
1. HOME
2. NEWS
3. ABOUT
4. SETTINGS
- Mais aussi 4 Fragments correspondants
chacun aux 4 boutons du haut
- Chaque bouton doit rediriger vers le
fragment qui porte son nom
- Il faut qu’au lancement de l’app, le
fragment « HOME » se charge.
- Il est préférable de mettre des
couleurs et du texte dans les
fragments
Formation Android 4.1 – Les fondamentaux
Les ListView
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
ListView
Formation Android 4.1 – Les fondamentaux
L’élément ListView
Formation Android 4.1 – Les fondamentaux
Remplir sa ListView
Formation Android 4.1 – Les fondamentaux
Résultat
Formation Android 4.1 – Les fondamentaux
Custom ListView
Layouts
activity_main.xml
item_expert.xml
Classes
ExpertModel.java
CustomAdapter.java
MainActivity.java
Formation Android 4.1 – Les fondamentaux
activity_main.xml
Formation Android 4.1 – Les fondamentaux
item_expert.xml
Formation Android 4.1 – Les fondamentaux
ExpertModel.java
Formation Android 4.1 – Les fondamentaux
CustomAdapter.java
Formation Android 4.1 – Les fondamentaux
MainActivity.java
Formation Android 4.1 – Les fondamentaux
Les ListView : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Le but de l’exercice
Utiliser les ListView
Créer son propre Adapter pour sa ListView
Formation Android 4.1 – Les fondamentaux
Énoncé
Parce qu’on aime les loutres, créez une app qui affiche la
liste des types de loutres.
• lors d’un click sur un item, il faut afficher dans un
Toast le nom de la Loutre
• lors d’un click sur l’icône d’information, il faut
afficher la date de découverte de cette loutre
Si vous souhaitez aller plus loin :
• vous pouvez ajouter l’image de la loutre dans cette liste
• Vous pouvez ajouter un bouton play qui jouera le son si
particulier de la loutre sélectionnée.
Bon courage et honneur aux loutres !
Formation Android 4.1 – Les fondamentaux
Les RecyclerView
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
RecyclerView
Formation Android 4.1 – Les fondamentaux
RecyclerView > ListView ?
Dans une ListView, il y aura autant de vues créées que d’items…
C’est lourd !
Dans une RecyclerView, il y aura autant de vues créées que d’items
visibles à l’écran. Lorsque que l’on fait défiler les vues et que l’une
d’entre elles disparaît, elle est “recyclée” pour être réutilisée.
Il est possible de choisir son LayoutManager avec les RecyclerView :
LinearLayoutManager
GridLayoutManager
Formation Android 4.1 – Les fondamentaux
Librairie de compatibilité
Ajouter la lib support pour le RecyclerView dans le Gradle :
Formation Android 4.1 – Les fondamentaux
OnItemClickListener et RecyclerView
Par défaut, il n’existe pas de OnItemClickListener avec les
RecyclerView. Cependant, il y a deux possibilités pour mettre en
place la gestion du click sur les items de notre liste :
Ajouter un setOnClickListener sur chaque élément de notre adapter
Implémenter un RecyclerView.OnItemTouchListener et le lier à notre
RecyclerView
Formation Android 4.1 – Les fondamentaux
Exemple avec setOnClickListener
RecyclerView : 1er exemple :
Réagira au click sur les TextView et ImageView
La réaction au click se fait depuis l’Adapter
Formation Android 4.1 – Les fondamentaux
activity_main.xml
Formation Android 4.1 – Les fondamentaux
item_recycler.xml
Formation Android 4.1 – Les fondamentaux
DataModel.class
Formation Android 4.1 – Les fondamentaux
RecyclerAdapter.class
Formation Android 4.1 – Les fondamentaux
MainActivity.class
Formation Android 4.1 – Les fondamentaux
Exemple avec son propre ItemTouchListener
RecyclerView : 2ème exemple :
L’item réagira au click :
onItemClick
onLongItemClick
Formation Android 4.1 – Les fondamentaux
activity_main.xml
Formation Android 4.1 – Les fondamentaux
item_recycler.xml
Formation Android 4.1 – Les fondamentaux
DataModel.java
Formation Android 4.1 – Les fondamentaux
RecyclerAdapter.java
Formation Android 4.1 – Les fondamentaux
RecyclerItemTouchListener.java
Formation Android 4.1 – Les fondamentaux
MainActivity.java
Formation Android 4.1 – Les fondamentaux
Les RecyclerView : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Le but de l’exercice
Utiliser les RecyclerView
Connaître les différentes méthodes pour réagir au click sur un
élément de la RecyclerView
Formation Android 4.1 – Les fondamentaux
Énoncé
Se baser sur la même Recycler et le même objet pour faire 2 Activity:
1) La première doit réagir au click avec un Custom Listener
2) La deuxième doit réagir au click avec un setOnClickListener sur les
éléments (textView, Image, etc)
Formation Android 4.1 – Les fondamentaux
Les SharedPreferences
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
SharedPreferences : stockage en local
Stocker une préférence :
Récupérer une préférence :
Formation Android 4.1 – Les fondamentaux
Différents modes d’accessibilité
Context.MODE_PRIVATE
pour que le fichier créé ne soit accessible que par l'application qui l'a créée.
Context.MODE_WORLD_READABLE
pour que le fichier créé puisse être lu par n'importe quelle application.
Context.MODE_WORLD_WRITEABLE
pour que le fichier créé puisse être lu et modifié par n'importe quelle
application.
Formation Android 4.1 – Les fondamentaux
Attention
Les préférences partagées ne fonctionnent qu'avec les objets de type :
boolean
float
int
long
String.
Formation Android 4.1 – Les fondamentaux
SQLite
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
SQLite ?
Bibliothèque écrite en C qui propose un moteur de base de
données accessible par le langage SQL (standard SQL-92).
SQLite est directement intégrée aux programmes
Première version de SQLite en août 2000
SQLite a un modèle de type embarqué contrairement à MySQL ou PostgreSQL
qui ont des modèles de type client serveur.
Formation Android 4.1 – Les fondamentaux
Types de données dans SQLite
INTEGER : pour les entiers (sans virgule)
INT, INTEGER, TINYINT, SMALLINT, MEDIUMINT, BIGINT, UNSIGNED BIG INT, INT2,
INT8
REAL : pour les nombres réels (avec virgule)
REAL, DOUBLE, DOUBLE PRECISION, FLOAT
TEXT : pour les chaînes de caractères
CHARACTER(20), VARCHAR(255), VARYING CHARACTER(255), NCHAR(55),
NATIVE CHARACTER(70), NVARCHAR(100), TEXT, CLOB
NUMERIC : pour les données numériques
NUMERIC, DECIMAL(10,5), BOOLEAN, DATE, DATETIME
BLOB : pour les données brutes (par exemple : images, etc)
BLOB (pas de datatype)
NULL : pour les données NULL
Formation Android 4.1 – Les fondamentaux
Syntaxe SQLite
CREATE TABLE nom_de_la_table (
nom_du_champ_1 type {contraintes},
nom_du_champ_2 type {contraintes},
…);
Pour chaque attribut, on doit déclarer au moins
2 informations :
- son nom
- son type de donnée
Il est possible de déclarer des contraintes pour chaque attribut à l'emplacement
de {contraintes}. On trouve comme contraintes :
- PRIMARY KEY pour désigner la clé primaire sur un attribut
- NOT NULL pour indiquer que cet attribut ne peut valoir NULL
- CHECK afin de vérifier que la valeur de cet attribut est cohérente
- DEFAULT sert à préciser une valeur par défaut
Formation Android 4.1 – Les fondamentaux
Créer ou ouvrir une base de données
Créer une base de données SQLite sur Android c’est simple :
Formation Android 4.1 – Les fondamentaux
Créer une table avec execSQL
Créer une table aussi :
Formation Android 4.1 – Les fondamentaux
rawQuery() VS query()
VS
VS
Formation Android 4.1 – Les fondamentaux
Paramètres de la méthode query()
Paramètre Commentaire
String dbName Nom de la table
String[] columnNames
Liste des colonnes à retourner.
Toutes les colonnes seront retournées avec en passant null.
String whereClause
Clause where : filtre pour la sélection des données.
Toutes les données seront sélectionnées en passant null.
String[] selectionArgs
Si vous incluez des ? dans la whereClause, ils seront remplacés par
les valeurs du tableau selectionArgs.
String[] groupBy
Filtre qui déclare comment regrouper les lignes.
Les lignes ne seront pas groupées en passant null.
String[] having
Filtre pour les groupes.
Pas de filtrage en passant null.
String[] orderBy
Colonnes de la table utilisées pour ordonner les données.
Les données ne seront pas ordonnées en passant null.
Formation Android 4.1 – Les fondamentaux
Utilisation de SQLite
1. Création d’une base de données de type SQLiteDatabase
2. Création d’une table
3. INSERT afin d’ajouter un champ dans une table
4. SELECT sur un champ particulier d’une table afin de la stocker dans un Cursor
5. SELECT sur tous les champs d’une table afin de les stocker dans une StringBuilder
Formation Android 4.1 – Les fondamentaux
SQLite : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Le but de l’exercice
Savoir utiliser SQLite
Créer et manipuler une base de données
Formation Android 4.1 – Les fondamentaux
Énoncé
Créer une application capable de sauvegarder ses impressions sur des films.
Ces commentaires doivent être stockés sur une base de données SQLite.
La BDD doit se nommer « movie_db »
Voici donc les champs de la table « my_movies » :
- id
- name
- comment
L’utilisateur de l’app doit pouvoir :
- ajouter un film
- supprimer un film
- modifier un film
- voir le commentaire d’un film en particulier
- voir tous les commentaires de chaque films dans une liste
Formation Android 4.1 – Les fondamentaux
BroadcastReceiver
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Un BroadcastReceiver, c’est quoi ?
Un BoadcastReceiver est une sorte de notification permettant de prévenir
d’un événement à une ou plusieurs applications.
Il est possible d’utiliser des BroadscastReceiver système mais aussi de
diffuser les nôtres à tout le système et de manière anonyme.
Formation Android 4.1 – Les fondamentaux
Quelques exemples de BroadcastReceiver
android.intent.action.BATTERY_LOW
La batterie est faible
android.intent.action.BOOT_COMPLETED
La system a terminé de booter
android.intent.action.CALL
Pour faire un call à quelque chose spécifié par les datas
android.intent.action.DATE_CHANGED
La date a changé
android.intent.action.REBOOT :
La device a rebooté
android.net.conn.CONNECTIVITY_CHANGE
La réseau mobile ou la connection WiFi a changé
Formation Android 4.1 – Les fondamentaux
Créer son BroadcastReceiver
Formation Android 4.1 – Les fondamentaux
Ajouter son Broadcast dans le Manifest
Formation Android 4.1 – Les fondamentaux
Appeler son BroadcastReceiver
Formation Android 4.1 – Les fondamentaux
Recevoir un Broadcast ?
Il est possible très simplement de recevoir un Broadcast système
Dans l’exemple qui va suivre, nous allons recevoir le passage en
mode avion
Formation Android 4.1 – Les fondamentaux
Dans le Manifest
Formation Android 4.1 – Les fondamentaux
Dans notre Receiver
Formation Android 4.1 – Les fondamentaux
Voilà
☺
Formation Android 4.1 – Les fondamentaux
Broadcast privé
Android:exported
Formation Android 4.1 – Les fondamentaux
Créer et utiliser une permission
Formation Android 4.1 – Les fondamentaux
Les services
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Les services, c’est quoi ?
Un service est nécessaire lorsque votre application souhaite effectuer
des opérations ou des calculs en dehors de l'interaction utilisateur.
Exemple : écouter de la musique en lisant ses mails est possible grâce
aux services.
Un service ne dispose pas d'interface graphique
Un service n'a pas de durée définie, il est là pour exécuter sa tâche et
il fonctionnera tant que c'est nécessaire.
Formation Android 4.1 – Les fondamentaux
Types de services
Il existe deux types de services :
LocalService
services qui s'exécutent dans le même processus que votre application
RemoteService
ils s'exécutent dans des processus indépendants de votre application
Formation Android 4.1 – Les fondamentaux
Cycle de vie d’un service
Unbounded service = Service local
Bounded service = Service distant
Formation Android 4.1 – Les fondamentaux
Dans le AndroidManifest.xml
Formation Android 4.1 – Les fondamentaux
ExempleService.class
Formation Android 4.1 – Les fondamentaux
MainActivity.java
Formation Android 4.1 – Les fondamentaux
activity_main.xml
Formation Android 4.1 – Les fondamentaux
Les Widgets
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Les Widgets
Formation Android 4.1 – Les fondamentaux
Un exemple !
Formation Android 4.1 – Les fondamentaux
widget.xml
Formation Android 4.1 – Les fondamentaux
WidgetProvider.java
Formation Android 4.1 – Les fondamentaux
res/xml/widget_info.xml
Formation Android 4.1 – Les fondamentaux
AndroidManifest.xml
Formation Android 4.1 – Les fondamentaux
AsyncHttpClient
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
loopj : Android Async HTTP Client
Formation Android 4.1 – Les fondamentaux
WebService population.io
Formation Android 4.1 – Les fondamentaux
Requête « countries »
Formation Android 4.1 – Les fondamentaux
Dans le code…
Formation Android 4.1 – Les fondamentaux
Les librairies
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Installation d’une librairie Android
Formation Android 4.1 – Les fondamentaux
Utilisation d’une librairie Android
Formation Android 4.1 – Les fondamentaux
Les librairies : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
But de l’exercice
Savoir chercher la librairie qui nous convient
Réussir à ajouter une librairie à notre projet
Savoir lire la documentation d’une librairie
Utiliser une librairie
Formation Android 4.1 – Les fondamentaux
Énoncé
Réaliser la même app qu’à gauche :
- Il faut une lib capable de charger une image
depuis une URL. Pour cela :
- Trouver une lib capable de cela
- Lire la doc et l’utiliser
- Si vous souhaitez aller plus loin, vous pouvez
utiliser une lib qui arrondi l’image (ou autre).
- Si vous souhaitez aller encore plus loin, vous
pouvez imaginer une EditText qui demande l’URL de
l’image et l’affiche après un click sur un
bouton.
N’oubliez pas de donner la permission à votre app d’accéder à internet :
À mettre dans le AndroidManifest.xml, dans la balise <manifest>
et juste avant la balise <application>.
Formation Android 4.1 – Les fondamentaux
Les notifications utilisateur
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Toast
Formation Android 4.1 – Les fondamentaux
Snackbar
Formation Android 4.1 – Les fondamentaux
AlertDialog
Formation Android 4.1 – Les fondamentaux
Les permissions
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Déclarer une permissions
 Si la permission touche à la vie privée de l’utilisateur, une popup demandera à
l’utilisateur de vous donner la permission.
 Si la permission ne concerne pas la vie privée de l’utilisateur, elle sera
automatiquement donnée.
Formation Android 4.1 – Les fondamentaux
Android 6 et les permissions
À partir d’Android 6 (API 23) l’utilisateur donne les permissions au
moment ou l’application utilise la fonctionnalité cible.
Par exemple, un utilisateur peux donner accès au GPS à une application mais
refuser de donner l’accès à la liste des contacts.
L’utilisateur peux aussi autoriser / supprimer des permissions dans l’écran dédié à
cet effet dans les paramètres.
Formation Android 4.1 – Les fondamentaux
Quelques conseils
Ne demander une permission que si elle est nécessaire
Expliquer à l’utilisateur pourquoi votre application nécessite cette
permission
Ne pas harceler l’utilisateur pour qu’il vous donne la permission
Accepter la décision de l’utilisateur
Formation Android 4.1 – Les fondamentaux
Vérifier une permission
À chaque utilisation d’une fonctionnalité nécessitant une
permission, il faut vérifier si la permission est donnée ou non
Pour cela, on utilise la méthode checkSelfPermission qui nous
renvoit :
PackageManager.PERMISSION_GRANTED lorsqu’on a la permission
PackageManager.PERMISSION_DENIED lorsqu’on n’a pas la permission
Formation Android 4.1 – Les fondamentaux
Vérifier si la permission a déjà été demandée
La méthode shouldShowRequestPermissionRationale permet de savoir si la permission à
déjà été demandée à l’utilisateur.
Si oui, mieux vaux ne pas redemander la permission à l’utilisateur.
Sinon, vous pouvez demander la permission à l’aide de la méthode requestPermissions.
Formation Android 4.1 – Les fondamentaux
onRequestPermissionResult
Une fois la permission demandée, le résultat de la demande sera retourné dans
la méthode onRequestPermissionsResult (à surcharger).
Formation Android 4.1 – Les fondamentaux
Publier son application sur le Play Store
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Android 4.1 – Les fondamentaux
Créer une application
Accédez à la console Play.
Sélectionnez Toutes les applications All applications > Créer une
application.
Dans le menu déroulant, sélectionnez une langue par défaut.
Ensuite, ajoutez un titre à votre application. Saisissez le nom de
votre application tel que vous souhaitez qu'il s'affiche sur Google
Play.
Créez la fiche Play Store de votre application, complétez le
questionnaire sur la classification du contenu, puis définissez les
tarifs et la disponibilité.
Formation Android 4.1 – Les fondamentaux
Préparer la version de production, alpha ou bêta de votre application
Pour préparer la version de production, alpha ou bêta de votre
application, vous pouvez préparer et déployer des versions selon un
niveau de sortie particulier.
Une version est une combinaison d'un ou de plusieurs artefacts de
build que vous préparez avant de déployer une application ou la
mise à jour d'une application auprès des utilisateurs.
Formation Android 4.1 – Les fondamentaux
Gérer les fichiers APK
Rechercher des fichiers APK
Taille des fichiers APK
Signer votre application
Spécifications relatives aux versions des fichiers APK pour la
console Play
Formation Android 4.1 – Les fondamentaux
Configurer une fiche Play Store
Informations sur le produit
Éléments graphiques
Langues et traductions
Catégorisation
Coordonnées
Règles de confidentialité
Formation Android 4.1 – Les fondamentaux
Étapes suivantes
Remplir le questionnaire relatif à la classification du contenu
correspondant à l'application
Découvrir comment distribuer votre application dans d'autres pays
et dans le cadre d'autres programmes
Android Publier l'application à l'aide de la publication standard ou
planifiée
Effectuer des tests pour optimiser votre fiche Play Store

Contenu connexe

Similaire à Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1

Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Hadina RIMTIC
 
Alphorm.com Formation Android 5
Alphorm.com Formation Android 5Alphorm.com Formation Android 5
Alphorm.com Formation Android 5Alphorm
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)TECOS
 
Cours android 2016
Cours android 2016Cours android 2016
Cours android 2016Saber LAJILI
 
Cours android 2016_partie1
Cours android 2016_partie1Cours android 2016_partie1
Cours android 2016_partie1Sabeur LAJILI
 
Prérequis au développement google android
Prérequis au développement google androidPrérequis au développement google android
Prérequis au développement google androidThierry Gayet
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobileHaifa Chorfi
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptxYaminaGh1
 
chapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfchapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfolfaharrabi2
 
Ateliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceAteliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceKorteby Farouk
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications AndroidLilia Sfaxi
 
Workshop android
Workshop androidWorkshop android
Workshop android'Med Douik
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksJean-Sébastien Dupuy
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidBosco Basabana
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfRihabBENLAMINE
 

Similaire à Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1 (20)

Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
 
Alphorm.com Formation Android 5
Alphorm.com Formation Android 5Alphorm.com Formation Android 5
Alphorm.com Formation Android 5
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)
 
Cours android 2016
Cours android 2016Cours android 2016
Cours android 2016
 
Cours android 2016_partie1
Cours android 2016_partie1Cours android 2016_partie1
Cours android 2016_partie1
 
Prérequis au développement google android
Prérequis au développement google androidPrérequis au développement google android
Prérequis au développement google android
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
android.pdf
android.pdfandroid.pdf
android.pdf
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptx
 
chapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfchapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdf
 
Ateliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceAteliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open source
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
Workshop android
Workshop androidWorkshop android
Workshop android
 
Chap android
Chap androidChap android
Chap android
 
Intro Android
Intro AndroidIntro Android
Intro Android
 
2k.pdf
2k.pdf2k.pdf
2k.pdf
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer Talks
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 

Plus de SmartnSkilled

Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?SmartnSkilled
 
Support cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie IISupport cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie IISmartnSkilled
 
Support tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSupport tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSmartnSkilled
 
Support formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSupport formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSmartnSkilled
 
Support formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exerciceSupport formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exerciceSmartnSkilled
 
Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?SmartnSkilled
 
Support formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie ISupport formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie ISmartnSkilled
 
Support cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnelsSupport cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnelsSmartnSkilled
 
Support cours : Les phares du marketing
Support cours : Les phares du marketingSupport cours : Les phares du marketing
Support cours : Les phares du marketingSmartnSkilled
 
Support formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeurSupport formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeurSmartnSkilled
 
Support cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSupport cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSmartnSkilled
 
Tutoriel : Online English Expertise
Tutoriel : Online English ExpertiseTutoriel : Online English Expertise
Tutoriel : Online English ExpertiseSmartnSkilled
 
Formation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commercialeFormation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commercialeSmartnSkilled
 
Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)SmartnSkilled
 
Support cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASASupport cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASASmartnSkilled
 
Support Tutoriel : Online English Expertise
Support Tutoriel : Online English ExpertiseSupport Tutoriel : Online English Expertise
Support Tutoriel : Online English ExpertiseSmartnSkilled
 
Support formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiquesSupport formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiquesSmartnSkilled
 
Support Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en publicSupport Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en publicSmartnSkilled
 
Support formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soiSupport formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soiSmartnSkilled
 
Support formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketingSupport formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketingSmartnSkilled
 

Plus de SmartnSkilled (20)

Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?
 
Support cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie IISupport cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie II
 
Support tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSupport tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERP
 
Support formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSupport formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec Docker
 
Support formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exerciceSupport formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exercice
 
Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?
 
Support formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie ISupport formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie I
 
Support cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnelsSupport cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnels
 
Support cours : Les phares du marketing
Support cours : Les phares du marketingSupport cours : Les phares du marketing
Support cours : Les phares du marketing
 
Support formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeurSupport formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeur
 
Support cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSupport cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERP
 
Tutoriel : Online English Expertise
Tutoriel : Online English ExpertiseTutoriel : Online English Expertise
Tutoriel : Online English Expertise
 
Formation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commercialeFormation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commerciale
 
Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)
 
Support cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASASupport cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASA
 
Support Tutoriel : Online English Expertise
Support Tutoriel : Online English ExpertiseSupport Tutoriel : Online English Expertise
Support Tutoriel : Online English Expertise
 
Support formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiquesSupport formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiques
 
Support Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en publicSupport Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en public
 
Support formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soiSupport formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soi
 
Support formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketingSupport formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketing
 

Dernier

Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 

Dernier (20)

Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 

Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1

  • 1. Formation Android 4.1 – Les fondamentaux Introduction à l’univers Android Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 2. Formation Android 4.1 – Les fondamentaux Histoire d’Android 2003 : Naissance du projet Android 2005 : Racheté par Google Janvier 2007 : Annonce de l’iPhone Novembre 2007 : Création de l’Open Handset Alliance Fin 2010 : Android devient l’OS mobile le plus utilisé au monde
  • 3. Formation Android 4.1 – Les fondamentaux Philosophie et avantages d’Android Open Source Gratuit (ou presque) Facile à développer Facile à vendre Flexible 3/4 du marché des smartphones
  • 4. Formation Android 4.1 – Les fondamentaux Parts de marché des OS mobiles 1eme trimestre 2012 : Android : 59,1 % iOS : 22,9 % BlackBerry OS : 6,3 % Windows Phone : 2,1 % Autres : 9,6 % 3eme trimestre 2016 : Android : 87,8 % iOS : 11,5 % BlackBerry OS : 0,1 % Windows Phone : 0,4 % Autres : 0,2 %
  • 5. Formation Android 4.1 – Les fondamentaux Android dans le temps Android 1.O et 1.1 Android 1.5 (CupCake) Android 1.6 (Donut) Android 2.0 et 2.1 (Eclair) Android 2.2 et 2.3 (Froyo et Gingerbread) Android 3.0 (Honeycomb) Android 4.0 (Ice Cream Sandwich) Android 4.1, 4.2, 4.3 et 4.4 (Jelly Bean / KitKat) Android 5.0, 5.0.1, 5.0.2 et 5.1 (Lollipop) Android 6.0 (Marshmallow) Android 7.0 (Nougat)
  • 6. Formation Android 4.1 – Les fondamentaux Conditions initiales Pour tout le monde : 2 Go de mémoire RAM (idéalement plus de 8 Go) Plus de 1,5 Go d'espace disque Niveau processeur, l'émulation ne peut se faire que sur 1 cœur de votre processeur, donc augmenter le nombre de cœurs ne vous servira pas à grand-chose. C'est vraiment la puissance pure qui compte. Il n'y a donc pas de minima mais le plus rapide sera le mieux Spécificités par OS Windows : Vista ou plus récent Mac OS : Mac OS 10.8.5 ou plus récent Linux : bibliothèque GNU C (glibc) version 2.15 ou plus récent
  • 7. Formation Android 4.1 – Les fondamentaux Installation des outils Java Development Kit (JDK) Environnement de développement Android Studio Téléchargement des API et outils grâce au SDK
  • 8. Formation Android 4.1 – Les fondamentaux Configuration du terminal Sous Windows Soit télécharger les drivers du terminal sur le site du constructeur : Liste des sites : https://developer.android.com/studio/run/oem- usb.html#Drivers Soit utiliser un pilote générique : android-sdkextrasgoogleusb_driver Sous Mac OS Rien à faire :-) Sous Linux Ajouter au gestionnaire de périphériques une règle spécifique par appareil relié
  • 9. Formation Android 4.1 – Les fondamentaux Configuration du téléphone Par étapes : 1.Accéder aux paramètres du téléphone 2.Aller dans « sécurité » 3.Activer « sources inconnues » 4.Retourner au menu principal des paramètres du téléphone 5.Aller dans « à propos du téléphone » 6.Tout en bas, appuyer 7 fois sur « numéro de build » 7.Retourner à nouveau dans le menu principal des paramètres du téléphone 8.Aller dans la nouvelle catégorie « options pour les développeurs » 9.Activer le « débogage USB »
  • 10. Formation Android 4.1 – Les fondamentaux Environnement de développement Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 11. Formation Android 4.1 – Les fondamentaux Création d’un projet Premier écran Application Name : Nom qui apparaîtra sur l'appareil et sur Google Play Company Domain : Identifiant de l’application (ne peut être changé une fois l’app publiée) Project Location : Emplacement où les fichiers du projet seront créés Deuxième écran Sélection de l’API Troisième écran Création de la première Activity Dernier écran Informations sur la première activité de notre application
  • 12. Formation Android 4.1 – Les fondamentaux Composition d’un projet Android Dossier « java » Dossier « res » (ressources) layout drawable values Config : AndroidManifest.xml build.gradle
  • 13. Formation Android 4.1 – Les fondamentaux Android Manifest
  • 14. Formation Android 4.1 – Les fondamentaux build.gradle
  • 15. Formation Android 4.1 – Les fondamentaux Dossier « values » strings.xml : colors.xml : dimens.xml :
  • 16. Formation Android 4.1 – Les fondamentaux Compiler et lancer son app
  • 17. Formation Android 4.1 – Les fondamentaux Logs
  • 18. Formation Android 4.1 – Les fondamentaux Debug
  • 19. Formation Android 4.1 – Les fondamentaux Inspecter son code
  • 20. Formation Android 4.1 – Les fondamentaux Android Virtual Device Manager AVD Manager permet d’émuler des devices Android Il est possible de choisir des modèles existants ou de créer son propre modèle
  • 21. Formation Android 4.1 – Les fondamentaux SDK Manager
  • 22. Formation Android 4.1 – Les fondamentaux Les Layouts Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 23. Formation Android 4.1 – Les fondamentaux Différents types de Layout LinearLayout Layout avec orientation unique (horizontal et vertical) RelativeLayout Layout avec positionnement des éléments GridLayout Position des éléments dans un tableau FrameLayout Elément unique CoordinatorLayout Layout avec dépendance entre les éléments ConstraintLayout Équivalent au RelativeLayout mais plus flexible et plus simple
  • 24. Formation Android 4.1 – Les fondamentaux LinearLayout
  • 25. Formation Android 4.1 – Les fondamentaux RelativeLayout
  • 26. Formation Android 4.1 – Les fondamentaux GridLayout
  • 27. Formation Android 4.1 – Les fondamentaux Coordinator Layout
  • 28. Formation Android 4.1 – Les fondamentaux Constraint Layout
  • 29. Formation Android 4.1 – Les fondamentaux Les éléments dans un layout TextView EditText Button RadioButton CheckBox AutoCompleteTextView et beaucoup d’autres…
  • 30. Formation Android 4.1 – Les fondamentaux TextView
  • 31. Formation Android 4.1 – Les fondamentaux EditText
  • 32. Formation Android 4.1 – Les fondamentaux Button
  • 33. Formation Android 4.1 – Les fondamentaux Les attributs des éléments de layout Id Width / Height WeightSum et Weight Margin / Padding Gravity Visibility Src Text Color etc…
  • 34. Formation Android 4.1 – Les fondamentaux Id Définir un id permet d’utiliser un élément depuis un Layout ou depuis une classe Java Un id se défini de cette manière : @+id/nom_id Exemple avec la création d’une TextView qui a pour id textview_hello : Dans la classe Java, on récupère notre TextView grâce à son id : On peut ensuite utiliser cette TextView pour changer son texte par exemple :
  • 35. Formation Android 4.1 – Les fondamentaux Widht / Height Les attributs widht et height définissent la longueur et largeur d’un élément Il y a plusieurs possibilités : match_parent : prend toute la taille du layout parent wrap_content : prend toute la taille du contenu de l’élément taille fixe (en dp / px / in / mm / pt)
  • 36. Formation Android 4.1 – Les fondamentaux WeightSum et Weight
  • 37. Formation Android 4.1 – Les fondamentaux Margin et Padding
  • 38. Formation Android 4.1 – Les fondamentaux Include Les include permettent d’insérer le contenu d’un Layout dans un autre Layout. Il est possible de donner un id à son include Il est aussi possible de définir la longueur et la largeur d’un include
  • 39. Formation Android 4.1 – Les fondamentaux Exercice : les Layouts Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 40. Formation Android 4.1 – Les fondamentaux Le but de l’exercice Comprendre comment fonctionnent les Layouts : Relative et Linear Réussir à positionner des éléments dans des Layouts Compiler une app sur Android Réussir à lancer son app depuis un émulateur ou un smartphone
  • 41. Formation Android 4.1 – Les fondamentaux Énoncé Réaliser le même Layout qu’à gauche : - Il doit être divisé en 2 parties de tailles égales - La partie du haut doit contenir le texte « BONJOUR » centré au milieu de cette partie. - La partie du haut doit avoir une couleur de fond au choix. - La partie du bas doit contenir 3 boutons (« BOUTON 1 », « BOUTON 2 » et « BOUTON 3 »). Ces boutons doivent être centrés au milieu de cette partie.
  • 42. Formation Android 4.1 – Les fondamentaux Les Chaînes de caractère Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 43. Formation Android 4.1 – Les fondamentaux Exemple avec une TextView
  • 44. Formation Android 4.1 – Les fondamentaux Extraction de la chaîne de caractères
  • 45. Formation Android 4.1 – Les fondamentaux Résultat
  • 46. Formation Android 4.1 – Les fondamentaux Translation Editor
  • 47. Formation Android 4.1 – Les fondamentaux Les Activity Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 48. Formation Android 4.1 – Les fondamentaux Qu’est ce qu’une Activity ?
  • 49. Formation Android 4.1 – Les fondamentaux Activity, Context et Interface Graphique
  • 50. Formation Android 4.1 – Les fondamentaux Pile d’activités
  • 51. Formation Android 4.1 – Les fondamentaux Cycle de vie d’une activité onCreate méthode d'initialisation des vues, des paramètres et autres données. onStart appelée quand l'activité est rendue visible à l'utilisateur. onRestart appelée à un nouveau démarrage de la même activité (quand l'activité était arrêtée) onResume appelée quand l'activité commence à interagir avec l'utilisateur. onPause méthode qui sert à arrêter une activité temporairement. onStop appelée quand l'activité n'est plus visible à l'utilisateur, soit à cause d'une nouvelle activité lancée, soit parce que l'activité en cours s'apprête à être détruite. onDestroy est invoquée quand l'activité est détruite par la méthode finish() ou quand le système décide de tuer l'activité pour économiser de l'espace.
  • 52. Formation Android 4.1 – Les fondamentaux Cycle de vie d’une activité
  • 53. Formation Android 4.1 – Les fondamentaux Cycle de vie d’une activité
  • 54. Formation Android 4.1 – Les fondamentaux Context Référence à des ressources gérées par l'application, des informations sur le système et accès à des services d'Android. Est employé pour lancer une nouvelle activité, réceptionner les intentions ou écouter les événements. Exemples : création de nouveaux objets (TextView, Adapter...) accès à des ressources (String, Array...) accès implicite à des components, par exemple getContext().getContentResolver() Comment récupérer le contexte ? getApplicationContext() getContext() getBaseContext() this (disponible uniquement depuis une activité)
  • 55. Formation Android 4.1 – Les fondamentaux Intent Permet de naviguer entre les écrans (d’une Activity à une autre) On distingue deux types d'intention : explicite : on spécifie le nom de l’activité à invoquer. implicite : on ne sait pas quelle activité doit être invoquée : Android se charge de trouver l'activité adéquate à lancer (exemple : pour un site web, il va lancer un des navigateurs disponibles). Passage de MainActivity() à NextActivity() :
  • 56. Formation Android 4.1 – Les fondamentaux Bundle Envoyer un extra de type int à une autre Activity : Recevoir un int dans l’autre Activity : Le Bundle est une instance de classe passée en paramètre dans la méthode onCreate(). Cette classe est une sorte de conteneur pour les données transmissibles d'une activité à l'autre. Elle permet de récupérer tout type de données : String, long, char, ArrayList, etc…
  • 57. Formation Android 4.1 – Les fondamentaux Un exemple c’est toujours mieux :) MainActivity.java : NextActivity.java : Structure du projet :
  • 58. Formation Android 4.1 – Les fondamentaux Les Activity : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 59. Formation Android 4.1 – Les fondamentaux Le but de l’exercice Comprendre comment fonctionnent les Activity Savoir passer d’une Activity à une autre Passer des paramètres à une Activity à une autre
  • 60. Formation Android 4.1 – Les fondamentaux Énoncé Réaliser une application qui contient 2 Activity. Il doit y avoir un log sur chaque cycles de l’Activity principale : • onCreate • onStop • onStart • etc… La première Activity doit proposer à l’utilisateur de rentrer son login et mot de passe. Il pourra ensuite cliquer sur un bouton de validation qui lance la seconde Activity. Dans cette seconde Activity, une TextView doit afficher son login.
  • 61. Formation Android 4.1 – Les fondamentaux Intents implicites Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 62. Formation Android 4.1 – Les fondamentaux Intent implicite Un Intent implicite permet de laisser le soin à Android de chercher l’app la plus adaptée pour notre action. Par exemple : Ouvrir un URL Envoyer un SMS Partager quelque chose Écouter une musique Scanner un code-bar Etc.
  • 63. Formation Android 4.1 – Les fondamentaux Uniform Resource Identifier (URI) Une URI est une chaîne de caractère respectant une norme et permettant d’identifier une ressource sur un réseau de manière permanente, même si cette ressource est déplacée ou supprimée. L’URL est une URI pour les ressources disponibles sur Internet, au même titre que l’ISBN est une URI pour les livres puisqu’il s’agit de l’identifiant unique d’un livre.
  • 64. Formation Android 4.1 – Les fondamentaux Exemples URI ftp://ftp.is.co.za/rfc/rfc1808.txt [archive] : protocole FTP pour le service File Transfer Protocol http://www.math.uio.no/faq/compression-faq/part1.html [archive] : protocole HTTP pour le service Hypertext Transfer Protocol mailto:mduerst@ifi.unizh.ch [archive] : protocole mailto pour les adresses électroniques news:comp.infosystems.www.servers.unix [archive] : protocole news pour les newsgroups Usenet telnet://melvyl.ucop.edu/ [archive] : protocole telnet pour les services interactifs via telnet irc://irc.freenode.net/ubuntu-fr [archive] : protocole IRC pour le service Internet Relay Chat ssh://utilisateur@example.com [archive] : protocole SSH pour le service Secure shell sftp://utilisateur@example.com [archive] : protocole SFTP pour le service SSH file transfer protocol http://example.org/URI/absolu/avec/chemin/absolu/vers/une/ressource [archive] /URI/relatif/avec/chemin/absolu/vers/une/ressource chemin/relatif/vers/une/ressource ../../../ressource ./ressource#fragment ressource #fragment
  • 65. Formation Android 4.1 – Les fondamentaux Ouvrir le navigateur
  • 66. Formation Android 4.1 – Les fondamentaux Envoyer un SMS
  • 67. Formation Android 4.1 – Les fondamentaux Envoyer un Email
  • 68. Formation Android 4.1 – Les fondamentaux Les Fragments Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 69. Formation Android 4.1 – Les fondamentaux Exemple de fragment
  • 70. Formation Android 4.1 – Les fondamentaux Avantages de l'utilisation des fragments
  • 71. Formation Android 4.1 – Les fondamentaux Cycle de vie d’un fragment
  • 72. Formation Android 4.1 – Les fondamentaux FrameLayout
  • 73. Formation Android 4.1 – Les fondamentaux Dans l’activité
  • 74. Formation Android 4.1 – Les fondamentaux Dans le fragment
  • 75. Formation Android 4.1 – Les fondamentaux Les Fragments : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 76. Formation Android 4.1 – Les fondamentaux Le but de l’exercice Comprendre comment fonctionnent les Fragments Passer d’un fragment à un autre
  • 77. Formation Android 4.1 – Les fondamentaux Énoncé Réaliser la même app qu’à gauche : - Il faut une Activity qui contient quatre boutons : 1. HOME 2. NEWS 3. ABOUT 4. SETTINGS - Mais aussi 4 Fragments correspondants chacun aux 4 boutons du haut - Chaque bouton doit rediriger vers le fragment qui porte son nom - Il faut qu’au lancement de l’app, le fragment « HOME » se charge. - Il est préférable de mettre des couleurs et du texte dans les fragments
  • 78. Formation Android 4.1 – Les fondamentaux Les ListView Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 79. Formation Android 4.1 – Les fondamentaux ListView
  • 80. Formation Android 4.1 – Les fondamentaux L’élément ListView
  • 81. Formation Android 4.1 – Les fondamentaux Remplir sa ListView
  • 82. Formation Android 4.1 – Les fondamentaux Résultat
  • 83. Formation Android 4.1 – Les fondamentaux Custom ListView Layouts activity_main.xml item_expert.xml Classes ExpertModel.java CustomAdapter.java MainActivity.java
  • 84. Formation Android 4.1 – Les fondamentaux activity_main.xml
  • 85. Formation Android 4.1 – Les fondamentaux item_expert.xml
  • 86. Formation Android 4.1 – Les fondamentaux ExpertModel.java
  • 87. Formation Android 4.1 – Les fondamentaux CustomAdapter.java
  • 88. Formation Android 4.1 – Les fondamentaux MainActivity.java
  • 89. Formation Android 4.1 – Les fondamentaux Les ListView : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 90. Formation Android 4.1 – Les fondamentaux Le but de l’exercice Utiliser les ListView Créer son propre Adapter pour sa ListView
  • 91. Formation Android 4.1 – Les fondamentaux Énoncé Parce qu’on aime les loutres, créez une app qui affiche la liste des types de loutres. • lors d’un click sur un item, il faut afficher dans un Toast le nom de la Loutre • lors d’un click sur l’icône d’information, il faut afficher la date de découverte de cette loutre Si vous souhaitez aller plus loin : • vous pouvez ajouter l’image de la loutre dans cette liste • Vous pouvez ajouter un bouton play qui jouera le son si particulier de la loutre sélectionnée. Bon courage et honneur aux loutres !
  • 92. Formation Android 4.1 – Les fondamentaux Les RecyclerView Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 93. Formation Android 4.1 – Les fondamentaux RecyclerView
  • 94. Formation Android 4.1 – Les fondamentaux RecyclerView > ListView ? Dans une ListView, il y aura autant de vues créées que d’items… C’est lourd ! Dans une RecyclerView, il y aura autant de vues créées que d’items visibles à l’écran. Lorsque que l’on fait défiler les vues et que l’une d’entre elles disparaît, elle est “recyclée” pour être réutilisée. Il est possible de choisir son LayoutManager avec les RecyclerView : LinearLayoutManager GridLayoutManager
  • 95. Formation Android 4.1 – Les fondamentaux Librairie de compatibilité Ajouter la lib support pour le RecyclerView dans le Gradle :
  • 96. Formation Android 4.1 – Les fondamentaux OnItemClickListener et RecyclerView Par défaut, il n’existe pas de OnItemClickListener avec les RecyclerView. Cependant, il y a deux possibilités pour mettre en place la gestion du click sur les items de notre liste : Ajouter un setOnClickListener sur chaque élément de notre adapter Implémenter un RecyclerView.OnItemTouchListener et le lier à notre RecyclerView
  • 97. Formation Android 4.1 – Les fondamentaux Exemple avec setOnClickListener RecyclerView : 1er exemple : Réagira au click sur les TextView et ImageView La réaction au click se fait depuis l’Adapter
  • 98. Formation Android 4.1 – Les fondamentaux activity_main.xml
  • 99. Formation Android 4.1 – Les fondamentaux item_recycler.xml
  • 100. Formation Android 4.1 – Les fondamentaux DataModel.class
  • 101. Formation Android 4.1 – Les fondamentaux RecyclerAdapter.class
  • 102. Formation Android 4.1 – Les fondamentaux MainActivity.class
  • 103. Formation Android 4.1 – Les fondamentaux Exemple avec son propre ItemTouchListener RecyclerView : 2ème exemple : L’item réagira au click : onItemClick onLongItemClick
  • 104. Formation Android 4.1 – Les fondamentaux activity_main.xml
  • 105. Formation Android 4.1 – Les fondamentaux item_recycler.xml
  • 106. Formation Android 4.1 – Les fondamentaux DataModel.java
  • 107. Formation Android 4.1 – Les fondamentaux RecyclerAdapter.java
  • 108. Formation Android 4.1 – Les fondamentaux RecyclerItemTouchListener.java
  • 109. Formation Android 4.1 – Les fondamentaux MainActivity.java
  • 110. Formation Android 4.1 – Les fondamentaux Les RecyclerView : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 111. Formation Android 4.1 – Les fondamentaux Le but de l’exercice Utiliser les RecyclerView Connaître les différentes méthodes pour réagir au click sur un élément de la RecyclerView
  • 112. Formation Android 4.1 – Les fondamentaux Énoncé Se baser sur la même Recycler et le même objet pour faire 2 Activity: 1) La première doit réagir au click avec un Custom Listener 2) La deuxième doit réagir au click avec un setOnClickListener sur les éléments (textView, Image, etc)
  • 113. Formation Android 4.1 – Les fondamentaux Les SharedPreferences Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 114. Formation Android 4.1 – Les fondamentaux SharedPreferences : stockage en local Stocker une préférence : Récupérer une préférence :
  • 115. Formation Android 4.1 – Les fondamentaux Différents modes d’accessibilité Context.MODE_PRIVATE pour que le fichier créé ne soit accessible que par l'application qui l'a créée. Context.MODE_WORLD_READABLE pour que le fichier créé puisse être lu par n'importe quelle application. Context.MODE_WORLD_WRITEABLE pour que le fichier créé puisse être lu et modifié par n'importe quelle application.
  • 116. Formation Android 4.1 – Les fondamentaux Attention Les préférences partagées ne fonctionnent qu'avec les objets de type : boolean float int long String.
  • 117. Formation Android 4.1 – Les fondamentaux SQLite Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 118. Formation Android 4.1 – Les fondamentaux SQLite ? Bibliothèque écrite en C qui propose un moteur de base de données accessible par le langage SQL (standard SQL-92). SQLite est directement intégrée aux programmes Première version de SQLite en août 2000 SQLite a un modèle de type embarqué contrairement à MySQL ou PostgreSQL qui ont des modèles de type client serveur.
  • 119. Formation Android 4.1 – Les fondamentaux Types de données dans SQLite INTEGER : pour les entiers (sans virgule) INT, INTEGER, TINYINT, SMALLINT, MEDIUMINT, BIGINT, UNSIGNED BIG INT, INT2, INT8 REAL : pour les nombres réels (avec virgule) REAL, DOUBLE, DOUBLE PRECISION, FLOAT TEXT : pour les chaînes de caractères CHARACTER(20), VARCHAR(255), VARYING CHARACTER(255), NCHAR(55), NATIVE CHARACTER(70), NVARCHAR(100), TEXT, CLOB NUMERIC : pour les données numériques NUMERIC, DECIMAL(10,5), BOOLEAN, DATE, DATETIME BLOB : pour les données brutes (par exemple : images, etc) BLOB (pas de datatype) NULL : pour les données NULL
  • 120. Formation Android 4.1 – Les fondamentaux Syntaxe SQLite CREATE TABLE nom_de_la_table ( nom_du_champ_1 type {contraintes}, nom_du_champ_2 type {contraintes}, …); Pour chaque attribut, on doit déclarer au moins 2 informations : - son nom - son type de donnée Il est possible de déclarer des contraintes pour chaque attribut à l'emplacement de {contraintes}. On trouve comme contraintes : - PRIMARY KEY pour désigner la clé primaire sur un attribut - NOT NULL pour indiquer que cet attribut ne peut valoir NULL - CHECK afin de vérifier que la valeur de cet attribut est cohérente - DEFAULT sert à préciser une valeur par défaut
  • 121. Formation Android 4.1 – Les fondamentaux Créer ou ouvrir une base de données Créer une base de données SQLite sur Android c’est simple :
  • 122. Formation Android 4.1 – Les fondamentaux Créer une table avec execSQL Créer une table aussi :
  • 123. Formation Android 4.1 – Les fondamentaux rawQuery() VS query() VS VS
  • 124. Formation Android 4.1 – Les fondamentaux Paramètres de la méthode query() Paramètre Commentaire String dbName Nom de la table String[] columnNames Liste des colonnes à retourner. Toutes les colonnes seront retournées avec en passant null. String whereClause Clause where : filtre pour la sélection des données. Toutes les données seront sélectionnées en passant null. String[] selectionArgs Si vous incluez des ? dans la whereClause, ils seront remplacés par les valeurs du tableau selectionArgs. String[] groupBy Filtre qui déclare comment regrouper les lignes. Les lignes ne seront pas groupées en passant null. String[] having Filtre pour les groupes. Pas de filtrage en passant null. String[] orderBy Colonnes de la table utilisées pour ordonner les données. Les données ne seront pas ordonnées en passant null.
  • 125. Formation Android 4.1 – Les fondamentaux Utilisation de SQLite 1. Création d’une base de données de type SQLiteDatabase 2. Création d’une table 3. INSERT afin d’ajouter un champ dans une table 4. SELECT sur un champ particulier d’une table afin de la stocker dans un Cursor 5. SELECT sur tous les champs d’une table afin de les stocker dans une StringBuilder
  • 126. Formation Android 4.1 – Les fondamentaux SQLite : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 127. Formation Android 4.1 – Les fondamentaux Le but de l’exercice Savoir utiliser SQLite Créer et manipuler une base de données
  • 128. Formation Android 4.1 – Les fondamentaux Énoncé Créer une application capable de sauvegarder ses impressions sur des films. Ces commentaires doivent être stockés sur une base de données SQLite. La BDD doit se nommer « movie_db » Voici donc les champs de la table « my_movies » : - id - name - comment L’utilisateur de l’app doit pouvoir : - ajouter un film - supprimer un film - modifier un film - voir le commentaire d’un film en particulier - voir tous les commentaires de chaque films dans une liste
  • 129. Formation Android 4.1 – Les fondamentaux BroadcastReceiver Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 130. Formation Android 4.1 – Les fondamentaux Un BroadcastReceiver, c’est quoi ? Un BoadcastReceiver est une sorte de notification permettant de prévenir d’un événement à une ou plusieurs applications. Il est possible d’utiliser des BroadscastReceiver système mais aussi de diffuser les nôtres à tout le système et de manière anonyme.
  • 131. Formation Android 4.1 – Les fondamentaux Quelques exemples de BroadcastReceiver android.intent.action.BATTERY_LOW La batterie est faible android.intent.action.BOOT_COMPLETED La system a terminé de booter android.intent.action.CALL Pour faire un call à quelque chose spécifié par les datas android.intent.action.DATE_CHANGED La date a changé android.intent.action.REBOOT : La device a rebooté android.net.conn.CONNECTIVITY_CHANGE La réseau mobile ou la connection WiFi a changé
  • 132. Formation Android 4.1 – Les fondamentaux Créer son BroadcastReceiver
  • 133. Formation Android 4.1 – Les fondamentaux Ajouter son Broadcast dans le Manifest
  • 134. Formation Android 4.1 – Les fondamentaux Appeler son BroadcastReceiver
  • 135. Formation Android 4.1 – Les fondamentaux Recevoir un Broadcast ? Il est possible très simplement de recevoir un Broadcast système Dans l’exemple qui va suivre, nous allons recevoir le passage en mode avion
  • 136. Formation Android 4.1 – Les fondamentaux Dans le Manifest
  • 137. Formation Android 4.1 – Les fondamentaux Dans notre Receiver
  • 138. Formation Android 4.1 – Les fondamentaux Voilà ☺
  • 139. Formation Android 4.1 – Les fondamentaux Broadcast privé Android:exported
  • 140. Formation Android 4.1 – Les fondamentaux Créer et utiliser une permission
  • 141. Formation Android 4.1 – Les fondamentaux Les services Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 142. Formation Android 4.1 – Les fondamentaux Les services, c’est quoi ? Un service est nécessaire lorsque votre application souhaite effectuer des opérations ou des calculs en dehors de l'interaction utilisateur. Exemple : écouter de la musique en lisant ses mails est possible grâce aux services. Un service ne dispose pas d'interface graphique Un service n'a pas de durée définie, il est là pour exécuter sa tâche et il fonctionnera tant que c'est nécessaire.
  • 143. Formation Android 4.1 – Les fondamentaux Types de services Il existe deux types de services : LocalService services qui s'exécutent dans le même processus que votre application RemoteService ils s'exécutent dans des processus indépendants de votre application
  • 144. Formation Android 4.1 – Les fondamentaux Cycle de vie d’un service Unbounded service = Service local Bounded service = Service distant
  • 145. Formation Android 4.1 – Les fondamentaux Dans le AndroidManifest.xml
  • 146. Formation Android 4.1 – Les fondamentaux ExempleService.class
  • 147. Formation Android 4.1 – Les fondamentaux MainActivity.java
  • 148. Formation Android 4.1 – Les fondamentaux activity_main.xml
  • 149. Formation Android 4.1 – Les fondamentaux Les Widgets Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 150. Formation Android 4.1 – Les fondamentaux Les Widgets
  • 151. Formation Android 4.1 – Les fondamentaux Un exemple !
  • 152. Formation Android 4.1 – Les fondamentaux widget.xml
  • 153. Formation Android 4.1 – Les fondamentaux WidgetProvider.java
  • 154. Formation Android 4.1 – Les fondamentaux res/xml/widget_info.xml
  • 155. Formation Android 4.1 – Les fondamentaux AndroidManifest.xml
  • 156. Formation Android 4.1 – Les fondamentaux AsyncHttpClient Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 157. Formation Android 4.1 – Les fondamentaux loopj : Android Async HTTP Client
  • 158. Formation Android 4.1 – Les fondamentaux WebService population.io
  • 159. Formation Android 4.1 – Les fondamentaux Requête « countries »
  • 160. Formation Android 4.1 – Les fondamentaux Dans le code…
  • 161. Formation Android 4.1 – Les fondamentaux Les librairies Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 162. Formation Android 4.1 – Les fondamentaux Installation d’une librairie Android
  • 163. Formation Android 4.1 – Les fondamentaux Utilisation d’une librairie Android
  • 164. Formation Android 4.1 – Les fondamentaux Les librairies : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 165. Formation Android 4.1 – Les fondamentaux But de l’exercice Savoir chercher la librairie qui nous convient Réussir à ajouter une librairie à notre projet Savoir lire la documentation d’une librairie Utiliser une librairie
  • 166. Formation Android 4.1 – Les fondamentaux Énoncé Réaliser la même app qu’à gauche : - Il faut une lib capable de charger une image depuis une URL. Pour cela : - Trouver une lib capable de cela - Lire la doc et l’utiliser - Si vous souhaitez aller plus loin, vous pouvez utiliser une lib qui arrondi l’image (ou autre). - Si vous souhaitez aller encore plus loin, vous pouvez imaginer une EditText qui demande l’URL de l’image et l’affiche après un click sur un bouton. N’oubliez pas de donner la permission à votre app d’accéder à internet : À mettre dans le AndroidManifest.xml, dans la balise <manifest> et juste avant la balise <application>.
  • 167. Formation Android 4.1 – Les fondamentaux Les notifications utilisateur Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 168. Formation Android 4.1 – Les fondamentaux Toast
  • 169. Formation Android 4.1 – Les fondamentaux Snackbar
  • 170. Formation Android 4.1 – Les fondamentaux AlertDialog
  • 171. Formation Android 4.1 – Les fondamentaux Les permissions Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 172. Formation Android 4.1 – Les fondamentaux Déclarer une permissions  Si la permission touche à la vie privée de l’utilisateur, une popup demandera à l’utilisateur de vous donner la permission.  Si la permission ne concerne pas la vie privée de l’utilisateur, elle sera automatiquement donnée.
  • 173. Formation Android 4.1 – Les fondamentaux Android 6 et les permissions À partir d’Android 6 (API 23) l’utilisateur donne les permissions au moment ou l’application utilise la fonctionnalité cible. Par exemple, un utilisateur peux donner accès au GPS à une application mais refuser de donner l’accès à la liste des contacts. L’utilisateur peux aussi autoriser / supprimer des permissions dans l’écran dédié à cet effet dans les paramètres.
  • 174. Formation Android 4.1 – Les fondamentaux Quelques conseils Ne demander une permission que si elle est nécessaire Expliquer à l’utilisateur pourquoi votre application nécessite cette permission Ne pas harceler l’utilisateur pour qu’il vous donne la permission Accepter la décision de l’utilisateur
  • 175. Formation Android 4.1 – Les fondamentaux Vérifier une permission À chaque utilisation d’une fonctionnalité nécessitant une permission, il faut vérifier si la permission est donnée ou non Pour cela, on utilise la méthode checkSelfPermission qui nous renvoit : PackageManager.PERMISSION_GRANTED lorsqu’on a la permission PackageManager.PERMISSION_DENIED lorsqu’on n’a pas la permission
  • 176. Formation Android 4.1 – Les fondamentaux Vérifier si la permission a déjà été demandée La méthode shouldShowRequestPermissionRationale permet de savoir si la permission à déjà été demandée à l’utilisateur. Si oui, mieux vaux ne pas redemander la permission à l’utilisateur. Sinon, vous pouvez demander la permission à l’aide de la méthode requestPermissions.
  • 177. Formation Android 4.1 – Les fondamentaux onRequestPermissionResult Une fois la permission demandée, le résultat de la demande sera retourné dans la méthode onRequestPermissionsResult (à surcharger).
  • 178. Formation Android 4.1 – Les fondamentaux Publier son application sur le Play Store Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 179. Formation Android 4.1 – Les fondamentaux Créer une application Accédez à la console Play. Sélectionnez Toutes les applications All applications > Créer une application. Dans le menu déroulant, sélectionnez une langue par défaut. Ensuite, ajoutez un titre à votre application. Saisissez le nom de votre application tel que vous souhaitez qu'il s'affiche sur Google Play. Créez la fiche Play Store de votre application, complétez le questionnaire sur la classification du contenu, puis définissez les tarifs et la disponibilité.
  • 180. Formation Android 4.1 – Les fondamentaux Préparer la version de production, alpha ou bêta de votre application Pour préparer la version de production, alpha ou bêta de votre application, vous pouvez préparer et déployer des versions selon un niveau de sortie particulier. Une version est une combinaison d'un ou de plusieurs artefacts de build que vous préparez avant de déployer une application ou la mise à jour d'une application auprès des utilisateurs.
  • 181. Formation Android 4.1 – Les fondamentaux Gérer les fichiers APK Rechercher des fichiers APK Taille des fichiers APK Signer votre application Spécifications relatives aux versions des fichiers APK pour la console Play
  • 182. Formation Android 4.1 – Les fondamentaux Configurer une fiche Play Store Informations sur le produit Éléments graphiques Langues et traductions Catégorisation Coordonnées Règles de confidentialité
  • 183. Formation Android 4.1 – Les fondamentaux Étapes suivantes Remplir le questionnaire relatif à la classification du contenu correspondant à l'application Découvrir comment distribuer votre application dans d'autres pays et dans le cadre d'autres programmes Android Publier l'application à l'aide de la publication standard ou planifiée Effectuer des tests pour optimiser votre fiche Play Store