SlideShare une entreprise Scribd logo
Android 5
Présentation de la formation
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Android 5
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Généralités
• Utiliser l’environnement
• Réaliser une application
• Les interfaces utilisateur
• Stocker les informations
• Gérer le multimédia
• XML et HTTP
• Gérer les infos utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
• Faire des tests
• Monétiser l’application
• Android Wear
Présentation du formateur
• Fabien Brissonneau
• Email : fabien.brissonneau@gmail.com
• Consultant Concepteur et Formateur
• Missions d’architecture, de conception , de réalisation logicielles
• Fondateur de eiXa6
• Actuellement en mission sur un projet de gestion
Maîtriser Android 5 et Android 4 alphorm.com™©
• Actuellement en mission sur un projet de gestion
• Mes références :
Mon profil Viadeo : http://fr.viadeo.com/fr/profile/fabien.brissonneau
Mon profil LinkedIn : http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/
Mes formations sur alphorm
Maîtriser Android 5 et Android 4 alphorm.com™©
Les autres formations dév sur Alphorm
Maîtriser Android 5 et Android 4 alphorm.com™©
Qu’est-ce que Android ?
• Un système d’exploitation pour mobiles
• Une plateforme multi-constructeurs, multi-éditeurs
• Un framework riche, cohérent et efficace
• Une ensemble d’outils de développement productifs
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les alternatives sont minoritaires
Publics concernés
• Cette formation s’adresse à des développeurs
• Connaître Java est nécessaire, ne pas être dérouté par sa syntaxe
• Nous ne reviendrons pas sur les concepts du langage
Maîtriser Android 5 et Android 4 alphorm.com™©
Présentation des outils
• Le SDK Android, framework et outils
• L’interface de développement Android Studio
• La présentation sera faite sous Windows 8
Maîtriser Android 5 et Android 4 alphorm.com™©
Are you ready ? ☺
Maîtriser Android 5 et Android 4 alphorm.com™©
Histoire d’Android
Généralités sur Android
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Histoire d’Android
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les acteurs
• Le système
• Les outils
Maîtriser Android 5 et Android 4 alphorm.com™©
Les acteurs
• Google
• Open Handset Alliance, http://www.openhandsetalliance.com/
Maîtriser Android 5 et Android 4 alphorm.com™©
• Une mascotte, BugDroid
Le système
• Première version commerciale en Septembre 2008
• Chaque version majeure porte un nom depuis Cupcake
• Cupcake,Donut,Eclair,Froyo,Gingerbread,Honeycomb,
• IceCreamSandwich (4.0-4.0.4), JellyBean, KitKat (4.4)
Maîtriser Android 5 et Android 4 alphorm.com™©
• Lollipop (5)
• Les versions correspondent plus ou moins à des version de l’API
• Lollipop correspond à l’API 21
Les outils
• Un site : http://developer.android.com/sdk/index.html
• La mise à jour des outils du SDK via SDK Manager
• Les outils du SDK ont des numéros de versions
En décembre 2014 : 24.0.2
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les outils spécifiques à la dernière plateforme sont les platform-tools
Ce qu’on a couvert
• Les acteurs
• Le système
• Les outils
Maîtriser Android 5 et Android 4 alphorm.com™©
Architecture
Généralités sur Android
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Architecture
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les couches du système
• L’exécution d’une application
Maîtriser Android 5 et Android 4 alphorm.com™©
Les couches du système
• Le framework d’applications
• Le binder (IPC), couche de liaison vers le système
• Les services système, organisé en composants (système ou média)
• La couche d’abstraction du matériel (HAL)
Maîtriser Android 5 et Android 4 alphorm.com™©
• Le noyau Linux et ses pilotes
L’exécution d’une application
• Avant la version 5, Dalvik est le nom de la machine virtuelle
La compilation est dite JIT (Just In Time)
• Lollipop utilise ART (Android RunTime)
Exécution du format Dex (Dalvik Executable)
Compilation AOT (Ahead Of Time), qui a lieu à l’installation
Maîtriser Android 5 et Android 4 alphorm.com™©
Compilation AOT (Ahead Of Time), qui a lieu à l’installation
• Un garbage collector gère la mémoire
Ce qu’on a couvert
• Les couches du système
• L’exécution d’une application
Maîtriser Android 5 et Android 4 alphorm.com™©
Les packages
Généralités sur Android
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les packages
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• L’arborescence des packages
• Le package android.app
• Les packages android.widget et android.view
• Le package android.utils
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les packages com.google.android.gms.*
L’arborescence de packages
• Les packages sous android.app
Le modèle applicatif android, Activity, Service y sont
• Les packages sous android.content
Les composants ContentProvider et BroadcastReceiver
Les packages android.widget et android.view
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les packages android.widget et android.view
Les composants graphiques
• …
• Les packages java.*
Les classes java utilisables pour Android
Le package android.app
• La classe Activity : composant graphique qui permet les interactions
avec l’utilisateur
• La classe Service : un composant qui réalise des traitements en arrière-
plan
• La classe Fragment, qui est une partir réutilisable de l’ihm
Maîtriser Android 5 et Android 4 alphorm.com™©
Les packages android.widget et android.view
• Les classes Button, CheckBox, DatePicker…
Éléments graphiques chargés dans l’Activité
• Les classes LinearLayout, GridLayout…
Les composants de disposition des contrôles dans l’activité
Les classes Menu, MenuItem
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les classes Menu, MenuItem
Les composants de menu
Le package android.util
• La classe Log
Permet de tracer des événements dans LogCat
• La classe Xml
Utilitaire de traitement de fichiers Xml
Maîtriser Android 5 et Android 4 alphorm.com™©
Les packages com.google.util.gms.*
• Les classes Google Play Services
Google+
Google Maps
Android Wear
…
Maîtriser Android 5 et Android 4 alphorm.com™©
…
• Chaque API a son propre package
Ce qu’on a couvert
• L’arborescence des packages
• Le package android.app
• Les packages android.widget et android.view
• Le package android.utils
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les packages com.google.android.gms.*
Android Studio
Utiliser l’environnement
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Android Studio
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Installation de l’IDE et du JDK
• Les ressources dans un projet
• Les activités et les tests dans un projet
• Les fonctions d’Android Studio
Maîtriser Android 5 et Android 4 alphorm.com™©
Installation de l’IDE et du JDK
• Url : http://developer.android.com/sdk/index.html
• Possible de ne télécharger que le SDK
• JDK
• Android SDK
Maîtriser Android 5 et Android 4 alphorm.com™©
• Images pour AVD
Les ressources dans un projet
• Les ressources jouent un rôle important :
Description de l’ihm, codes couleurs, chaînes de caractères, images…
• Les ressources sont utilisées grâce à un identifiant
• En java, la classe R représente ces ressources
Maîtriser Android 5 et Android 4 alphorm.com™©
• Certaines ressources sont non structurées : les assets
• L’organisation des ressources suit des règles de nommage et
d’organisation des répertoires
Les activités et les tests dans un projet
• Une activité est un concept d’interface utilisateur
Un simple écran
Contient une ou plusieurs vues
Plusieurs activités dans une application
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les fragments sont comme des sous-activités
Ils sont prévus pour gérer les potentiels différents selon les tailles d’écrans
• Les ressources de « layout » seront liées aux activités
• Une activité est une classe Java
Les fonctions et les tests d’Android Studio
• L’éditeur de code
• Des modèles prêts à l’emploi
• Des applications multi-écrans
• Des matériels virtuels divers
Maîtriser Android 5 et Android 4 alphorm.com™©
• Des scripts de construction évolués
Ce qu’on a couvert
• Installation de l’IDE et du JDK
• Les ressources dans un projet
• Les activités et les tests dans un projet
• Les fonctions d’Android Studio
Maîtriser Android 5 et Android 4 alphorm.com™©
Compilation, exécution et
Utiliser l’environnement
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Compilation, exécution et
débogage
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• La compilation du projet
• L’exécution de l’application
• Le débogage de l’application
Maîtriser Android 5 et Android 4 alphorm.com™©
La compilation du projet
• Un projet sous Android Studio est composé de plusieurs modules
• Chaque module donne lieu à un fichier zip d’extension .apk
• Ce fichier contient :
Le code exécutable par la VM (Dalvik ou ART)
Maîtriser Android 5 et Android 4 alphorm.com™©
Les ressources compilées
Un manifest décrivant l’application
La signature dans un certificat (la clé privée est conservée par le développeur)
L’exécution de l’application
• Se réalise sur émulateur
Choix d’un AVD, ou création d’un nouveau
• Ou bien sur un appareil physique
Installation des pilotes USB
Paramètres « développeur » activé
Maîtriser Android 5 et Android 4 alphorm.com™©
Paramètres « développeur » activé
Le débogage de l’application
• Le certificat est généré automatiquement par Android Studio
• Le débogage peut se faire sur matériel virtuel ou réel
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• La compilation du projet
• L’exécution de l’application
• Le débogage de l’application
Maîtriser Android 5 et Android 4 alphorm.com™©
Le déploiement
Utiliser l’environnement
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le déploiement
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les modes de livraison
• La gestion des versions
• Les signatures
Maîtriser Android 5 et Android 4 alphorm.com™©
Les modes de livraison
• Différents canaux :
Par un marketplace (Google Play), voir les règles spécifiques
Par mail
Via un site web
• Paramétrage de l’installation à partir de « sources inconnues »
Maîtriser Android 5 et Android 4 alphorm.com™©
• Paramétrage de l’installation à partir de « sources inconnues »
• Préparation minimum :
Mode release
Signer
Tester et vérifier l’application et toutes les ressources externes
La gestion des versions
• A noter l’importance des numéros de versions dans ce système ou
plusieurs applications vont collaborer
• Dans le manifest :
La version : versionCode (pour les applications) , versionName (pour les
utilisateurs)
Maîtriser Android 5 et Android 4 alphorm.com™©
Prérequis sur le SDK : minSdkVersion, targetSdkVersion, maxSdkVersion
Les signatures
• Les applications sont toutes signées avant qu’elles puissent être
installées
• Les certificats sont auto-signés, ils servent à identifier l’auteur
• En mode debug, le certificat est généré par le Android SDK
Mot de passe bien connu, pas besoin de le fournir
Maîtriser Android 5 et Android 4 alphorm.com™©
Mot de passe bien connu, pas besoin de le fournir
• En mode release, il faut disposer d’un magasin de clés privées, d’une clé
privée identifiant l’auteur, modifier le fichier de build
• Toutes les versions d’une application doivent avoir la même clé
Ce qu’on a couvert
• Les modes de livraison
• La gestion des versions
• Les signatures
Maîtriser Android 5 et Android 4 alphorm.com™©
Les outils
Utiliser l’environnement
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les outils
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Utiliser Android Studio
• Les outils en ligne de commande
• Les principaux outils
Maîtriser Android 5 et Android 4 alphorm.com™©
Utiliser Android Studio
• L’aide à la construction de l’ihm
• Un suivi des images correspondant aux variables
• Fenêtre de sortie filtrable
• Positionnement automatique des parentés d’activités
Maîtriser Android 5 et Android 4 alphorm.com™©
• Création facilitée des ihms
• Edition simple et complète du code : quick fix, navigation facile, région
de code, aide rapidement accessible, …
Les outils en ligne de commande
• Les outils du SDK : AVD Manager, Android Emulator, mksdcard
• Les outils de développement : android, hierachyviewer, lint, sdk
manager, sqlite3
• Les outils de debug : adb, uiautomator, ddms, device monitor, monkey,
systrace
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les outils de construction
• Les outils d’images
• Remarque sur les outils liés à la plateforme
Les principaux outils
• Android Asset Packaging Tool (aapt) : compile les ressources et produit
R.java
• Les éventuelles interfaces aidl
Maîtriser Android 5 et Android 4 alphorm.com™©
Les principaux outils
• Les fichiers .class sont traduits en .dex
Maîtriser Android 5 et Android 4 alphorm.com™©
Les principaux outils
• La signature suit
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Utiliser Android Studio
• Les outils en ligne de commande
• Les principaux outils
Maîtriser Android 5 et Android 4 alphorm.com™©
Un simple programme
Réaliser une application
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Un simple programme
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Le périmètre de l’application
• L’architecture de l’application
• La construction de l’ihm principale
• Les menus
Maîtriser Android 5 et Android 4 alphorm.com™©
Le périmètre de l’application
• Exemple d’application qui permet de garder trace de ses déplacements
Saisir un trajet : saisie manuelle, récupération de la localisation, notification
wear, stockage
Récupérer les trajets et kilomètres par mois ou par an : imprimante, mail,
stockage,
Paramétrage : localisation, stockage, cloud, imprimante
Maîtriser Android 5 et Android 4 alphorm.com™©
Paramétrage : localisation, stockage, cloud, imprimante
Architecture de l’application
• Vues de haut niveau entre lesquelles on peut naviguer
• Les vues par catégories pour entrer dans le détail
• Les vues de détail
• Dans un premier temps, saisie d’un trajet : 1 seule vue de haut niveau
Maîtriser Android 5 et Android 4 alphorm.com™©
Construction de l’ihm principale
• La notion de « view » : les contrôles visuels
• La notion de « viewgroup » : tous les layouts
• Il est possible de créer l’ihm dans le code, ou bien dans XML
Avec l’éditeur graphique, ou bien en éditant le code XML directement
Maîtriser Android 5 et Android 4 alphorm.com™©
• Ensemble complet de contrôles : Textes, Boutons, Images, Dates
• Contrôles complexes : Liste, Grille, Spinner et Gallerie
Travaille avec des adaptateurs
Cas particulier des AdapterView
• Séparation de l’accès aux données de leur représentation
• Un contrôle de liste (ListView, Spinner,…) contient des items dont le
type doit être décrit par un layout
• Il est lié par un adaptateur à des données (tableau, …)
• Un adaptateur convertit une donnée en une vue enfant de la liste
Maîtriser Android 5 et Android 4 alphorm.com™©
• Un adaptateur convertit une donnée en une vue enfant de la liste
SimpleCursorAdapter
• Lorsque le ListView doit représenter une ligne, il fait appel à
l’adaptateur en passant la ligne
L’adaptateur va alors construire la vue enfant en utilisant le layout référencé
Utiliser un menu
• Le menu peut être décrit dans le fichier XML
• Il est créé avec l’activité
Maîtriser Android 5 et Android 4 alphorm.com™©
• On peut réagir sur les items
Ce qu’on a couvert
• Le périmètre de l’application
• L’architecture de l’application
• La construction de l’ihm principale
• Les menus
Maîtriser Android 5 et Android 4 alphorm.com™©
Sauvegarder les données
Réaliser une application
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Sauvegarder les données
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Stockage dans les préférences
• Stockage interne
• Stockage externe
• Les bases de données SQLite
Maîtriser Android 5 et Android 4 alphorm.com™©
• La connexion au réseau
Le stockage dans les préférences
• Stockage de paires clé-valeur
• Utiliser la classe android.content.SharedPreferences
getSharedPreferences() ou getPreferences()
• Stockage de toute variable primitive
Maîtriser Android 5 et Android 4 alphorm.com™©
• Persistence des données entre sessions
• Ecriture : edit() fournit un Editor
Appeler putXXX(v), puis commit()
• Lecture : utiliser getXXX()
Stockage interne
• Sauvegarder un fichier privé pour l’application
Le fichier est enlevé lorsque d’utilisateur désinstalle l’application
• Pour ouvrir le fichier
La méthode openFileOutput(fichier,mode) de android.content.Context
La méthode openFileInput(fichier)
Maîtriser Android 5 et Android 4 alphorm.com™©
La méthode openFileInput(fichier)
Utiliser ensuite FileOutputStream/FileInputStream
• Même technique pour les fichiers de cache, avec getCacheDir()
• Autres méthodes : getFilesDir(), getDir(), deleteFile(), fileList()
Stockage externe
• Peut être une carte SD ou bien interne
• Accessibles librement et modifiable par l’utilisateur
• Soumis à permission READ/WRITE_EXTERNAL_STORAGE
• Vérifier que le stockage externe existe
Maîtriser Android 5 et Android 4 alphorm.com™©
getExternalStorageState()
• Fichiers publics :
Environment.getExternalStoragePublicDirectory()
• Fichiers « app-private » :
getExternalFilesDir()
Les bases de données SQLite
• Base accessible de l’application elle-même
• Créer une sous-classe de SQLiteOpenHelper et redéfinir onCreate()
Créer les tables nécessaires
• Lecture et écriture par getReadableDatabase() et getWritableDatabase()
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les requêtes sont exécutées avec la méthode SQLiteDatabase.query()
• Et les résultats sont parcourus avec un Cursor
• Pour déboguer, penser à l’outil sqlite3
La connexion au réseau
• Il est possible de se connecter au réseau s’il est disponible
• Ce serait une forme de stockage des données
• Les packages java.net.* et android.net.*
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Stockage dans les préférences
• Stockage interne
• Stockage externe
• Les bases de données SQLite
Maîtriser Android 5 et Android 4 alphorm.com™©
• La connexion au réseau
Le cycle de vie
Réaliser une application
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le cycle de vie
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Vue d’ensemble du cycle de vie
• La pause et la reprise
• L’arrêt et le redémarrage
• La re-création de l’activité
Maîtriser Android 5 et Android 4 alphorm.com™©
Vue d’ensemble du cycle de vie
• Les fonctions appelées lors du changement d’état :
onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()
onRestart()
• Toutes les fonctions (« de rappel » ou « callback ») n’ont pas à être
implémentées
Maîtriser Android 5 et Android 4 alphorm.com™©
implémentées
• Les états stables dans la vie de l’activité sont :
Resumed : en avant-plan et l’utilisateur interagit avec
Paused : semi-visible, l’utilisateur ne peut plus interagir
Stopped : cachée, aucune exécution de code
Application et activité
• L’activité « principale » de l’application est définie dans le manifest
• Cette activité reçoit le onCreate() lors du lancement
Maîtriser Android 5 et Android 4 alphorm.com™©
La redéfinition de onCreate()
• Peut servir à construire une ihm différente selon la version du SDK
• Initialise l’ihm
Maîtriser Android 5 et Android 4 alphorm.com™©
• Le pendant est onDestroy(), rarement utilisée
La pause et la reprise
• La méthode onPause() est appelée lorsque l’activité devient
partiellement invisible
Arrêter les actions qui consomment (animations…)
Sauvegarder les informations persistantes
Libérer les ressources consommatrices (senseurs …)
Maîtriser Android 5 et Android 4 alphorm.com™©
Libérer les ressources consommatrices (senseurs …)
• Le pendant : onResume()
Initialiser les senseurs
Reprendre les animations
L’arrêt et le redémarrage
• Les cas d’usage de stop/restart :
L’utilisateur passe à une autre application par les « applications récentes »,
stoppe l’appli puis repasse par le même chemin
L’application démarre une autre activité, puis back
Réception d’un appel téléphonique
Maîtriser Android 5 et Android 4 alphorm.com™©
Réception d’un appel téléphonique
• Méthode onStop()
Libérer toutes les ressources
• et onRestart()
Rarement utile
La re-création de l’activité
• Lorsque l’activité est détruite car inutilisée depuis un certain temps
Il s’agit pour le système d’économiser des ressources
• Le système peut alors reconstruire l’activité dans l’état où elle était lors
de sa destruction
Pairs clés-valeurs d’état -> bundle
Maîtriser Android 5 et Android 4 alphorm.com™©
Pairs clés-valeurs d’état -> bundle
La re-création de l’ihm est prise en charge par le système
• Pour sauver/restaurer des données supplémentaires :
onSaveInstanceState / onRestoreInstanceState
Ce qu’on a couvert
• Vue d’ensemble du cycle de vie
• La pause et la reprise
• L’arrêt et le redémarrage
• La re-création de l’activité
Maîtriser Android 5 et Android 4 alphorm.com™©
L’actionbar
Réaliser une application
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
L’actionbar
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Généralités sur la barre action
• Mettre des boutons dans la barre
• Modifier le style de la barre
Maîtriser Android 5 et Android 4 alphorm.com™©
Généralités sur la barre d’actions
• La barre d’action sert
d’identité visuelle,
de repère de navigation,
à déclencher les actions importantes,
à naviguer dans l’application
Maîtriser Android 5 et Android 4 alphorm.com™©
à naviguer dans l’application
• Selon la version d’Android, la mise en œuvre peut être différente
Nous ne supportons ici que Android après 3.0 (API 11)
Mettre des boutons dans la barre
• Les boutons doivent correspondre aux actions les plus importantes
• Si une icône est montrée, on parle de « action button »
• Pour ajouter l’icône, ne pas oublier
Maîtriser Android 5 et Android 4 alphorm.com™©
Projet/…/res/drawable/-> ajouter Image Asset
Remarque sur les icônes
• Téléchargement d’icônes toutes prêtes
Sur developer.android.com/design/downloads/index.html
Maîtriser Android 5 et Android 4 alphorm.com™©
Visualise et réagir
• Pour visualiser le menu …
Maîtriser Android 5 et Android 4 alphorm.com™©
• Et réagir sur les boutons …
La navigation entre les activités
• Les activités peuvent être reliées par parenté
• Ici, l’activité SendMailActivity est « fille » de MainActivityMileage
Maîtriser Android 5 et Android 4 alphorm.com™©
• Et ne pas oublier
Modifier le style de la barre
• Il y a deux thèmes par défaut : Theme.Holo et Theme.Holo.Light
• Choisir le style dans AndroidManifest.Xml
• Ou bien dans un fichier de style : styles.xml
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Généralités sur la barre action
• Mettre des boutons dans la barre
• Modifier le style de la barre
Maîtriser Android 5 et Android 4 alphorm.com™©
Le support des matériels
Réaliser une application
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le support des matériels
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Le support des langages
• Le support des écrans
• Le support des versions de plateformes
Maîtriser Android 5 et Android 4 alphorm.com™©
Le support des langages
• Les chaînes de caractères sont isolées
• Chaque « locale » est représentée par un répertoire
Maîtriser Android 5 et Android 4 alphorm.com™©
• La recherche s’effectue en descendant dans les sous-répertoires
Le support des écrans
• Les écrans ont différentes tailles et différentes densités
• Tailles : small, normal, large, xlarge
• Densités : ldpi, mdpi, hdpi, xhdpi
• L’orientation de l’écran correspond à une variation de taille
Maîtriser Android 5 et Android 4 alphorm.com™©
Le support des versions de plateformes
• Les versions sont représentées par des répertoires
Maîtriser Android 5 et Android 4 alphorm.com™©
• On peut récupérer dans le code la version du SDK
Ce qu’on a couvert
• Le support des langages
• Le support des écrans
• Le support des versions de plateformes
Maîtriser Android 5 et Android 4 alphorm.com™©
Interagir avec d’autres
Réaliser une application
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Interagir avec d’autres
activités
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Généralités sur les « Intent »
• Lancer une sous-activité
• Les Intents Android
Maîtriser Android 5 et Android 4 alphorm.com™©
Généralités sur les « intents »
• Une « intent » définit une action et les données associés
• Une « intent » peut être explicite ou implicite
Soit démarrer une activité bien précise
Soit faire exécuter une action par une activité non spécifiée
L’activation est possible grâce au paramétrage de <intent-filter>
Maîtriser Android 5 et Android 4 alphorm.com™©
• L’activation est possible grâce au paramétrage de <intent-filter>
Lancer une sous-activité
• Pour une action nommée <package>.intent.action.NAME dans le
manifest de l’activité
• Créer un objet de classe android.content.Intent
Maîtriser Android 5 et Android 4 alphorm.com™©
• L’activité elle-même peut savoir comment elle a été sollicitée
Intent origine = this.getIntent();
Les Intents Android
• Intent.ACTION_VIEW : invocation du navigateur web
• Intent.ACTION_MAIN : point d’entrée d’application
• Intent.ACTION_WEB_SEARCH : recherche Web
• Intent.ACTION_CALL : appel téléphonique
Maîtriser Android 5 et Android 4 alphorm.com™©
• Catégories standards :
CATEGORY_DEFAULT
CATEGORY_LAUNCHER
CATEGORY_BROWSABLE : accessible par un lien
…
Déclencher l’envoi d’un mail
• Suivant l’action choisie, on passe des données
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Généralités sur les « Intent »
• Lancer une sous-activité
• Les Intents Android
Maîtriser Android 5 et Android 4 alphorm.com™©
Les composants
Les interfaces utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les composants
graphiques
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les contrôles Text
• Les contrôles Button
• Les contrôles Date/Time Picker
• Les contrôles Clock
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les contrôles List/Grid/Spinner
Les contrôles Text
• TextView : texte sans édition possible
• EditText : champ de texte éditable
• AutoCompleteTextView : donne des possibilités de complétion
• MultiAutoCompleteTextView : idem mais multiple
Maîtriser Android 5 et Android 4 alphorm.com™©
Les contrôles Button
• La classe de base android.widget.Button
• Listener abonné soit en code Java soit en attribut de balise
Maîtriser Android 5 et Android 4 alphorm.com™©
Les contrôles Date/Time Picker
• DatePicker
• TimePicker
Maîtriser Android 5 et Android 4 alphorm.com™©
Les contrôles Clock
• TextClock
• AnalogClock
Maîtriser Android 5 et Android 4 alphorm.com™©
Les contrôles List/Grid/Spinner
• ListView
• GridView
• Spinner
Maîtriser Android 5 et Android 4 alphorm.com™©
Les containers et les adapters
• Les List/Grid/Spinner récupèrent leurs données via des Adapters
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Les contrôles Text
• Les contrôles Button
• Les contrôles Date/Time Picker
• Les contrôles Clock
Maîtriser Android 5 et Android 4 alphorm.com™©
• Les contrôles List/Grid/Spinner
La logique de l’interface
Les interfaces utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
La logique de l’interface
graphique
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Construire une IHM en Java
• Construire une IHM en XML
• Construire une IHM en mixant XML et Java
Maîtriser Android 5 et Android 4 alphorm.com™©
Construire une IHM en Java
• Les contrôles sont attachés à des ViewGroup, les « layouts »
• Chaque « layout » a une orientation
• Les ViewGroup sont eux-mêmes attachés en relation parent-enfants
Maîtriser Android 5 et Android 4 alphorm.com™©
Construire une IHM en XML
• Utilisant les balises <LinearLayout/>
Maîtriser Android 5 et Android 4 alphorm.com™©
Construire une IHM en mixant Java et XML
• La construction peut être faite en XML
• Manipulation en Java
• Importance des id
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Construire une IHM en Java
• Construire une IHM en XML
• Construire une IHM en mixant XML et Java
Maîtriser Android 5 et Android 4 alphorm.com™©
La gestion des menus
Les interfaces utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
La gestion des menus
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les menus options
• Les menus contextuels
• Les menus popup
Maîtriser Android 5 et Android 4 alphorm.com™©
Les menus options
• Ce sont les principaux menus d’une activité
• Pour des actions ayant un impact global
• Depuis Android 3.0, ils sont dans la barre d’action
Maîtriser Android 5 et Android 4 alphorm.com™©
Les menus contextuels
• Un menu flottant qui apparaît suite à un long clic sur un élément
• Depuis Android 3.0, il s’agit du mode d’action contextuel de préférence
Maîtriser Android 5 et Android 4 alphorm.com™©
Les menus popup
• Une liste d’items qui correspondent à la vue
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Les menus options
• Les menus contextuels
• Les menus popup
Maîtriser Android 5 et Android 4 alphorm.com™©
La variété des
Les interfaces utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
La variété des
LayoutManager
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• LinearLayout
• TableLayout
• RelativeLayout
• FrameLayout
Maîtriser Android 5 et Android 4 alphorm.com™©
• GridLayout
LinearLayout
• Les enfants sont organisés verticalement ou horizontalement
• La gravité est l’ancrage d’un côté
• Le poids est le pourcentage de déformation
Maîtriser Android 5 et Android 4 alphorm.com™©
TableLayout
• Extension de LinearLayout
• Les enfants sont placés en lignes/colonnes
Maîtriser Android 5 et Android 4 alphorm.com™©
RelativeLayout
• Les enfants sont rattachés relativement
Au conteneur : android:layout_alignParentTop,…
Aux voisins : android:toRightOf,…
Maîtriser Android 5 et Android 4 alphorm.com™©
FrameLayout
• Plusieurs enfants, mais un seul visible
• Utiliser setVisibility(…) pour faire afficher l’un ou l’autre
Maîtriser Android 5 et Android 4 alphorm.com™©
GridLayout
• Positionne les enfants en lignes/colonnes
• Une cellule peut ne pas avoir de contrôle
• Un contrôle peut s’étaler sur plusieurs lignes/colonnes
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• LinearLayout
• TableLayout
• RelativeLayout
• FrameLayout
Maîtriser Android 5 et Android 4 alphorm.com™©
• GridLayout
Les fragments
Les interfaces utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les fragments
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Définition du fragment
• Intérêt des fragments
Maîtriser Android 5 et Android 4 alphorm.com™©
Définition des fragments
• Un fragment est une partie modulaire d’une activité
• Un fragment a son propre cycle de vie
• Le fragment peut être référencé dans un layout
• Ou bien activé dynamiquement
Maîtriser Android 5 et Android 4 alphorm.com™©
Intérêt du fragment
• Avec un fragment, on peut facilement s’adapter à des surfaces
importantes
Si la surface est faible, lancer une autre activité
Si la surface est suffisante, faire apparaître le fragment
• Le fragment peut être activé dynamiquement
Maîtriser Android 5 et Android 4 alphorm.com™©
• Le fragment peut être activé dynamiquement
Exemple deux activités – deux fragments
• 1 activité charge un fragment • La seconde activité charge …
Maîtriser Android 5 et Android 4 alphorm.com™©
• Le fragment (par exemple index)
invoque une autre activité
• Le second fragment, qui
représente par exemple les détails
Exemple une activité – deux fragments
• 1 activité a les deux fragments dans son layout
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Définition du fragment
• Intérêt des fragments
Maîtriser Android 5 et Android 4 alphorm.com™©
Mettre en place des tests
Faire des tests
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Mettre en place des tests
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Le rôle et l’intérêt des tests
• Faire des tests manuels
• Les frameworks de test
Maîtriser Android 5 et Android 4 alphorm.com™©
Le rôle et l’intérêt des tests
• Vérifier que les composants fonctionnent comme attendu
• Rassurer le développeur
• Permettre d’avancer sur les fonctionnalités sans compromettre l’existant
Maîtriser Android 5 et Android 4 alphorm.com™©
Faire des tests manuels
• Simples à mettre en œuvre
• Particulièrement pratique pour les tests d’ihm
• Longs et fastidieux
• Difficiles à systématiser
Maîtriser Android 5 et Android 4 alphorm.com™©
• Nécessite une intervention humaine
Les frameworks de tests
• Propose des méthodes toutes prêtes
Assertions
• Propose une ihm pour visualiser tout de suite les problèmes
• Permet d’automatiser des tests
Maîtriser Android 5 et Android 4 alphorm.com™©
• En Java, la référence est Junit
• Les tests sont typiquement créés par Activité
Ce qu’on a couvert
• Le rôle et l’intérêt des tests
• Faire des tests manuels
• Les frameworks de test
Maîtriser Android 5 et Android 4 alphorm.com™©
Créer des tests unitaires
Faire des tests
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Créer des tests unitaires
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les tests unitaires utilisant les frameworks
• Règles de construction des tests
• Exemple de tests
Maîtriser Android 5 et Android 4 alphorm.com™©
Les tests unitaires utilisant les frameworks
• Pour les tests n’utilisant pas les composants Android, JUnit suffit
• Les composants Android sont testés avec les extensions
• Les classes de tests sont rangées dans des packages Java classiques
Maîtriser Android 5 et Android 4 alphorm.com™©
Règles de construction des tests
• Une classe de test par classe à tester
• Une méthode de test par test
• Basée sur JUnit 3, les méthodes commencent par « test… »
• Commencer par écrire des assertions
Maîtriser Android 5 et Android 4 alphorm.com™©
• Bâtir le test ensuite
Exemple de test unitaire
• Une classe Voyage
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Les tests unitaires utilisant les frameworks
• Règles de construction des tests
• Exemple de tests
Maîtriser Android 5 et Android 4 alphorm.com™©
Tester l’interface
Faire des tests
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Tester l’interface
graphique
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Le framework d’instrumentation
• Simuler l’interaction utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Le framework d’instrumentation
• Hériter de classes dérivées de TestCase
ActivityInstrumentationTestCase
• Mettre en place un setUp
• Tester les interactions sur l’ihm
Maîtriser Android 5 et Android 4 alphorm.com™©
Simuler les interactions
• Récupérer les contrôles
• Envoyer des événements
• Attention à ce que l’application soit visible
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Le framework d’instrumentation
• Simuler l’interaction utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Tester avec les mocks
Faire des tests
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Tester avec les mocks
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les classes de android.test.mock
• Utilisations des classes de Mock
Maîtriser Android 5 et Android 4 alphorm.com™©
Les classes de android.test.mock
• MockApplication
• MockContentProvider
• MockContentResolver
• MockContext
Maîtriser Android 5 et Android 4 alphorm.com™©
• MockCursor
• MockDialogInterface
• MockResources
Utilisation des classes de Mock
• Fournir une classe
Pour compiler
Faire fonctionner les services
• Ne propose pas une implémentation réelle
Permet d’avancer sur les tests
Maîtriser Android 5 et Android 4 alphorm.com™©
• Permet d’avancer sur les tests
• Il suffit de redéfinir les méthodes qui le nécessitent
Ce qu’on a couvert
• Les classes de android.test.mock
• Utilisations des classes de Mock
Maîtriser Android 5 et Android 4 alphorm.com™©
Le compte développeur
Monétiser l’application
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le compte développeur
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Création du compte développeur
• La console du développeur
Maîtriser Android 5 et Android 4 alphorm.com™©
Création du compte développeur
• Accéder au site :
• Vérification par téléphone
Maîtriser Android 5 et Android 4 alphorm.com™©
Compte développeur
• Contrat à accepter
• Réglement
Maîtriser Android 5 et Android 4 alphorm.com™©
La console du développeur
• Via le site http://developer.android.com/distribute/index.html
• Developer Console
Maîtriser Android 5 et Android 4 alphorm.com™©
La console
• Liste des applications et statistiques
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Création du compte développeur
• La console du développeur
Maîtriser Android 5 et Android 4 alphorm.com™©
La préparation de
Monétiser l’application
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
La préparation de
l’application
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Gestion du fichier APK
• Préparation de la fiche Google Play
Maîtriser Android 5 et Android 4 alphorm.com™©
Gestion du fichier APK
• Générer le APK et le signer
• Télécharger le fichier
Maîtriser Android 5 et Android 4 alphorm.com™©
Préparation de la fiche Google Play
• Fournir les infos de description de l’application
• Les captures
Maîtriser Android 5 et Android 4 alphorm.com™©
Captures d’écrans
• Par l’outil Monitor
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Gestion du fichier APK
• Préparation de la fiche Google Play
Maîtriser Android 5 et Android 4 alphorm.com™©
Gérer la publicité
Monétiser l’application
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Gérer la publicité
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Le compte AdMob
• Créer une unité publicitaire
• Installer le SDK
Maîtriser Android 5 et Android 4 alphorm.com™©
Le compte AdMob
• Créer le compte , via le compte Google
AdSense
AdWords
Maîtriser Android 5 et Android 4 alphorm.com™©
Créer une unité publicitaire
• Sous le compte AdMob
• Indiquer quelle application est concernée
Maîtriser Android 5 et Android 4 alphorm.com™©
Installer le SDK
• Mettre en place la bibliothèque de service Google Play
Ne pas oublier la balise meta-data
• Déclarer une activité AdActivity
• Autoriser les connexions réseau
Maîtriser Android 5 et Android 4 alphorm.com™©
• Puis créer un objet
de type AdView dans votre ihm
Ce qu’on a couvert
• Le compte AdMob
• Créer une unité publicitaire
• Installer le SDK
Maîtriser Android 5 et Android 4 alphorm.com™©
Les préférences
Stocker les informations
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les préférences
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• La classe SharedPreferences
• Positionner des valeurs
• Lire les informations de préférence
• Enregistrer une callback
Maîtriser Android 5 et Android 4 alphorm.com™©
La classe SharedPreferences
• Fournit des services pour sauver et récupérer des paires clé-valeur de
primitives et de chaînes
• Pour obtenir un SharedPreferences, utiliser
Soit getSharedPreferences() : chaque fichier est identifié
Soit getPreferences() : un fichier unique pour l’activité
Maîtriser Android 5 et Android 4 alphorm.com™©
Soit getPreferences() : un fichier unique pour l’activité
Positionner des valeurs
• Utiliser la classe SharedPreferences.Editor pour positionner les valeurs
• Méthodes pour positionner des valeurs :
putBoolean(String,boolean), putFloat(String,float), putInt(String,int),
putLong(String,long), putString(String,String),
putStringSet(String,Set<String>)
Maîtriser Android 5 et Android 4 alphorm.com™©
• Méthodes pour supprimer : clear(), remove(String)
• Méthodes pour appliquer les changements : apply(), commit()
Lire les informations de préférence
• Sur la classe SharedPreferences
getBoolean, getFloat, getInt, getLong, getString, getStringSet
Paramètres : la clé et une valeur par défaut
• Récupération de toutes les valeurs : getAll
Obtenir un Editor (pour positionner des valeurs) : edit
Maîtriser Android 5 et Android 4 alphorm.com™©
• Obtenir un Editor (pour positionner des valeurs) : edit
• Vérifier qu’une clé existe : contains
• Enregistrer des callbacks : register….unregister
Enregistrer une callback
• Méthodes registerOnSharedPreferenceChangeListener(….), unregister…
• Un listener doit être fourni, qui sera appelé lorsqu’une modification se
produit sur les préférences
• OnSharedPreferenceChangeListener est l’interface à implémenter
Méthode onSharedPreferenceChanged(SharedPreference, String)
Maîtriser Android 5 et Android 4 alphorm.com™©
Méthode onSharedPreferenceChanged(SharedPreference, String)
Ce qu’on a couvert
• La classe SharedPreferences
• Positionner des valeurs
• Lire les informations de préférence
• Enregistrer une callback
Maîtriser Android 5 et Android 4 alphorm.com™©
Le stockage interne
Stocker les informations
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le stockage interne
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• La méthode openFileOutput
• La méthode openFileInput
• Les fichiers de cache
Maîtriser Android 5 et Android 4 alphorm.com™©
La méthode openFileOutput
• Crée un fichier accessible uniquement de l’application
• Le fichier sera détruit lors de la désinstallation
• Les modes possibles sont
Context.MODE_PRIVATE : création/remplacement
Maîtriser Android 5 et Android 4 alphorm.com™©
Context.MODE_APPEND : ajoute
Context.MODE_WORLD_READABLE : lisible par les autres applications
Context.MODE_WORLD_WRITABLE : inscriptible par les autres
• Ecriture utilisant write
• Fermeture du flux avec close
La méthode openFileInput
• Dans la classe Context
• Retourne un FileInputStream
• Demande le nom du fichier à ouvrir
• Peut lever FileNotFoundException
Maîtriser Android 5 et Android 4 alphorm.com™©
Les fichiers de cache
• Obtenir le répertoire de cache avec getCacheDir() : File
• Ouvrir et manipuler le fichier
• Les fichiers en cache sont privés à l’application
• Peuvent disparaître lorsque le système a besoin
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• La méthode openFileOutput
• La méthode openFileInput
• Les fichiers de cache
Maîtriser Android 5 et Android 4 alphorm.com™©
Le stockage externe
Stocker les informations
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le stockage externe
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Définition
• Mise en œuvre initiale
• Créer un fichier et sauvegarder
Maîtriser Android 5 et Android 4 alphorm.com™©
Définition
• Le stockage externe consiste à stocker sur un support « externe »
• Cela peut être réellement amovible, mais peut-être non
• Permissions android.permission.READ/WRITE_EXTERNAL_STORAGE
• Données sans protection, accessibles à d’autres applications
Maîtriser Android 5 et Android 4 alphorm.com™©
Mise en œuvre initiale
• Déclarer la permission
• Vérifier la présence d’un stockage externe
Maîtriser Android 5 et Android 4 alphorm.com™©
Environment.getExternalStorageState()
• Vérifier la possibilité d’y accéder en écriture
Environment.MEDIA_MOUNTEDY
• Vérifier la possibilité d’y accéder en lecture
Environment.MEDIA_MOUNTED_READ_ONLY
Créer un fichier et sauvegarder
• Pour un usage privé, utiliser getExternalFilesDir() : File
Possibilité de passer un paramètre
• Pour un accès plus général, utiliser
getExternalStoragePublicDirectory(..)
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Définition
• Mise en œuvre initiale
• Créer un fichier et sauvegarder
Maîtriser Android 5 et Android 4 alphorm.com™©
La base SQLite
Stocker les informations
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
La base SQLite
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• L’intérêt de la base de données
• La création et la mise à jour du schéma
• Ecrire et lire dans la base de données
Maîtriser Android 5 et Android 4 alphorm.com™©
L’intérêt de la base de données
• Un stockage structuré
Tables, colonnes, typées
• Des requêtes utilisant le langage SQL
• Des volumes importants accessibles dans des temps raisonnables
Maîtriser Android 5 et Android 4 alphorm.com™©
La création et la mise à jour du schéma
• Utiliser SQLiteOpenHelper
• Sous classer cette classe, qui contient toute la mécanique
• Redéfinir les méthodes permettant de créer et de mettre à jour
Maîtriser Android 5 et Android 4 alphorm.com™©
Ecrire et lire
• Obtenir une SQLiteDatabase
• Par appel de getWritableDatabase ou de getReadableDatabase
• Executer du SQL : execSQL ou query
• Récupération des données via un Cursor
Maîtriser Android 5 et Android 4 alphorm.com™©
• L’outil sqlite3 permet d’accéder à une base de données via un terminal
Ce qu’on a couvert
• L’intérêt de la base de données
• La création et la mise à jour du schéma
• Ecrire et lire dans la base de données
Maîtriser Android 5 et Android 4 alphorm.com™©
Une interface pour les
Stocker les informations
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Une interface pour les
préférences
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Un type d’activité dédié : PreferenceActivity
• Les écrans de préférence
Maîtriser Android 5 et Android 4 alphorm.com™©
Un type d’activité dédié
• Construire une activité dédiée aux préférences
• Dériver l’activité de PreferenceActivity
• Préparer les fragments correspondants à chaque catégorie de
préférences
• Le stockage est automatique, puis utiliser
Maîtriser Android 5 et Android 4 alphorm.com™©
• Le stockage est automatique, puis utiliser
PreferenceManager.getDefaultSharedPreference() pour le relire
Les écrans de préférence
• Chaque catégorie de préférence correspond à un « PreferenceScreen »
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Un type d’activité dédié : PreferenceActivity
• Les écrans de préférence
Maîtriser Android 5 et Android 4 alphorm.com™©
Prendre des photos
Gérer le multimédia
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Prendre des photos
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• L’accès à l’appareil photo
• Récupérer l’image obtenue
• Stocker l’image dans un fichier
• Contrôler directement l’appareil photo
Maîtriser Android 5 et Android 4 alphorm.com™©
L’accès à l’appareil photo
• Penser à déclarer l’usage de l’appareil photo
Requis ou non
Maîtriser Android 5 et Android 4 alphorm.com™©
• S’il n’est pas requis, il faudra tester la disponibilité de l’appareil photo
Récupérer l’image obtenue
• L’image peut-être récupérée sous la forme d’un bitmap
Maîtriser Android 5 et Android 4 alphorm.com™©
Stocker l’image dans un fichier
• Une image stockée dans un fichier externe
Créer le fichier (File)
• Fournir une Uri l’Intent
• putExtra(MediaStore.EXTRA_OUTPUT,Uri)
Possible aussi de rajouter la photo dans la gallerie
Maîtriser Android 5 et Android 4 alphorm.com™©
• Possible aussi de rajouter la photo dans la gallerie
Contrôler directement l’appareil photo
• Utiliser l’objet Camera, représentant l’appareil photo
• L’appareil photo doit être ouvert en pensant au temps long
La fermeture doit être envisagée aussi
• Possible de gérer une pré-visualisation
Maîtriser Android 5 et Android 4 alphorm.com™©
• Le paramétrage de l’appareil photo est représenté par
Camera.Parameters
Ce qu’on a couvert
• L’accès à l’appareil photo
• Récupérer l’image obtenue
• Stocker l’image dans un fichier
• Contrôler directement l’appareil photo
Maîtriser Android 5 et Android 4 alphorm.com™©
Impossible d'afficher l'image. Votre ordinateur manque peut-être de mémoire pour ouvrir l'image ou l'image est endommagée. Redémarrez l'ordinateur, puis ouvrez à nouveau
le fichier. Si le x rouge est toujours affiché, vous devrez peut-être supprimer l'image avant de la réinsérer.
Enregistrer des vidéos
Gérer le multimédia
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Enregistrer des vidéos
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les permissions nécessaires
• L’enregistrement d’une vidéo
• Visualiser la vidéo
Maîtriser Android 5 et Android 4 alphorm.com™©
Les permissions nécessaires
• Dans le manifest, <uses-feature>
• Demander android.hardware.camera2
• Exigence ou non de la vidéo pour l’application
Si non, tester sa présence avant
Maîtriser Android 5 et Android 4 alphorm.com™©
L’enregistrement d’une vidéo
• Passer par une Intent
• Le nom de l’intent est MediaStore.ACTION_VIDEO_CAPTURE
• Lancer la vidéo
Maîtriser Android 5 et Android 4 alphorm.com™©
Visualiser la vidéo
• Avec un contrôle VideoView
• Accéder au résultat de l’Intent
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Les permissions nécessaires
• L’enregistrement d’une vidéo
• Visualiser la vidéo
Maîtriser Android 5 et Android 4 alphorm.com™©
Imprimer des documents
Gérer le multimédia
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Imprimer des documents
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les impressions sous Android
• Imprimer une photo
• Imprimer un document
Maîtriser Android 5 et Android 4 alphorm.com™©
Les impressions sous Android
• Google Cloud Print
Maîtriser Android 5 et Android 4 alphorm.com™©
Impression dans Google Drive possible
• Impression en PDF
• Certaines imprimantes conncectées
Imprimer une photo
• Utiliser PrintHelper
Positionner le layout avec setScaleMode
Maîtriser Android 5 et Android 4 alphorm.com™©
Imprimer un document
• Créer sa propre sous-classe de PrintDocumentHelper et invoquer ce
code
Maîtriser Android 5 et Android 4 alphorm.com™©
Imprimer un document
• Le format du document est complètement défini dans votre classe
héritant de PrintDocumentHelper
Maîtriser Android 5 et Android 4 alphorm.com™©
• Il faut implémenter 2 méthodes au moins
La méthode onLayout, qui rend le nombre de pages
La méthode onWrite, qui gère l’impression elle-même
Ce qu’on a couvert
• Les impressions sous Android
• Imprimer une photo
• Imprimer un document
Maîtriser Android 5 et Android 4 alphorm.com™©
Manipuler un document
XML et HTTP
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Manipuler un document
XML
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• L’interface XmlPullParser
• Exemple de code utilisant XmlPullParser
Maîtriser Android 5 et Android 4 alphorm.com™©
L’interface XmlPullParser
• Permet le parcours d’un document XML
• La méthode next() retourne l’événement rencontré
La valeur XmlPullParser.END_DOCUMENT représente la fin du document
• START_DOCUMENT / END_DOCUMENT
Maîtriser Android 5 et Android 4 alphorm.com™©
• START_TAG / END_TAG
• TEXT
• La méthode nextToken() est plus bas niveau
Exemple de code
• Parcours du document en réagissant sur les événements
• Un buffer
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• L’interface XmlPullParser
• Exemple de code utilisant XmlPullParser
Maîtriser Android 5 et Android 4 alphorm.com™©
Se connecter avec HTTP
XML et HTTP
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Se connecter avec HTTP
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Le client HTTP
• L’exécution asynchrone
Maîtriser Android 5 et Android 4 alphorm.com™©
Le client HTTP
• Pour accéder au protocole HTTP
• La classe HttpClient
• Les requêtes sont représentées par des classes
HttpGet, HttpPost, HttpPut…
Maîtriser Android 5 et Android 4 alphorm.com™©
• Ne pas oublier les permissions INTERNET
L’exécution asynchrone
• Ne pas bloquer le thread ihm par l’attente de la réponse web
• Utiliser AsyncTask<Paramètres, Progression, Resultat>
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Le client HTTP
• L’exécution asynchrone
Maîtriser Android 5 et Android 4 alphorm.com™©
Solliciter un WebService
XML et HTTP
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Solliciter un WebService
RESTful
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Définition des services REST
• Lire une entité
Maîtriser Android 5 et Android 4 alphorm.com™©
Définition des services REST
• Les webservices sont soit basés sur SOAP, soient utilisent simplement le
protocole HTTP
• Une service RESTful utilise les commandes HTTP
GET pour récupérer une ressource
DELETE pour supprimer une ressource
Maîtriser Android 5 et Android 4 alphorm.com™©
DELETE pour supprimer une ressource
POST pour créer une ressource
PUT pour mettre à jour une ressource
• Les URL sont choisies pour identifier les ressources
Lire une entité
• Un objet peut être reconstruit à partir des données récupérées
Format XML
Format JSON
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Définition des services REST
• Lire une entité
Maîtriser Android 5 et Android 4 alphorm.com™©
Récupérer les infos de
Gérer les infos utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Récupérer les infos de
contacts
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les permissions
• La liste des contacts
• Le chargement des données
Maîtriser Android 5 et Android 4 alphorm.com™©
Les permissions
• Modifier le manifest
• Ajouter une balise pour accéder aux contacts
Maîtriser Android 5 et Android 4 alphorm.com™©
La liste des contacts
• Une ListView dans le layout
Maîtriser Android 5 et Android 4 alphorm.com™©
• Connexion entre liste et curseur
Le chargement des données
• Implémentation
• Méthode de chargement
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Les permissions
• La liste des contacts
• Le chargement des données
Maîtriser Android 5 et Android 4 alphorm.com™©
Modifier les contacts par
Gérer les infos utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Modifier les contacts par
les Intents
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Accéder aux contacts via les Intents
• Ajouter un contact dans la liste
Maîtriser Android 5 et Android 4 alphorm.com™©
Ajouter via les Intents
• Chercher l’application qui insère dans les contacts
Maîtriser Android 5 et Android 4 alphorm.com™©
• Possibilités de fournir des infos sur le contact en cours d’insertion
Ajouter, Editer
• Pour ajouter, démarrer l’activité simplement après avoir fourni les
informations
• Pour éditer un contact spécifique, positionner setDataAndType(…)
• En fournissant l’URI sur le contact préalablement sélectionné
Maîtriser Android 5 et Android 4 alphorm.com™©
• Il existe une action qui laisse le choix à l’utilisateur
ACTION_INSERT_OR_EDIT
Lancer l’intent correspondant
Ce qu’on a couvert
• Accéder aux contacts via les Intents
• Ajouter un contact dans la liste
Maîtriser Android 5 et Android 4 alphorm.com™©
Utiliser les localisations
Gérer les infos utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Utiliser les localisations
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Les permissions et les installations
• Créer un GoogleApiClient
• Réagir sur les callbacks
Maîtriser Android 5 et Android 4 alphorm.com™©
Les permissions et les installations
• Le plus simple est d’utiliser les services Google
Installer par le DSK manager
Déclarer dans le script Gradle
Déclarer dans le manifest
Maîtriser Android 5 et Android 4 alphorm.com™©
• Permissions
Créer un GoogleApiClient
• GoogleApiClient est un point d’entrée dans les divers services google
• Positionner lors de la création de cet objet les services attendus
Maîtriser Android 5 et Android 4 alphorm.com™©
Réagir sur les callbacks
• Lors de la connexion, les infos sont récupérées
• La connexion doit être démarrée et arrêtée
Maîtriser Android 5 et Android 4 alphorm.com™©
• La callback exploite les données
Ce qu’on a couvert
• Les permissions et les installations
• Créer un GoogleApiClient
• Réagir sur les callbacks
Maîtriser Android 5 et Android 4 alphorm.com™©
Localisation et adresse
Gérer les infos utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Localisation et adresse
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Utilisation de Geocoder
• Préparation d’un receveur
• Lancement d’un service
Maîtriser Android 5 et Android 4 alphorm.com™©
Utilisation d’un Geocoder
• Classe android.location.Geocoder
• Récupère des noms de localisation à partir de coordonnées
Maîtriser Android 5 et Android 4 alphorm.com™©
Préparation d’un receveur
• Un receveur est une classe dont les méthodes seront rappelées
• Il faudra mettre à jour l’ihm dans le thread UI
Maîtriser Android 5 et Android 4 alphorm.com™©
Lancement d’un service
• Un service fonctionne en arrière-plan Idéal pour la connexion à la
récupération des noms d’adresses
Maîtriser Android 5 et Android 4 alphorm.com™©
Lancement d’un service
• Utiliser startService(…)
Maîtriser Android 5 et Android 4 alphorm.com™©
• Déclarer le service dans le manifest
Accéder au thread UI à partir d’un autre
• Il est interdit de modifier l’ihm à partir d’un autre thread
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Utilisation de Geocoder
• Préparation d’un receiver
• Lancement d’un service
Maîtriser Android 5 et Android 4 alphorm.com™©
Créer des notifications
Android wear
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Créer des notifications
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Préparation pour des notifications
• Lancer une notification
Maîtriser Android 5 et Android 4 alphorm.com™©
Préparations pour des notifications
• Modifier le script Gradle
• Rajouter la dépendance à la bibliothèque v4-support
Maîtriser Android 5 et Android 4 alphorm.com™©
Lancer une notification
• Lancement de la notification à la fois sur l’appareil principal et la montre
connectée
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Préparation pour des notifications
• Lancer une notification
Maîtriser Android 5 et Android 4 alphorm.com™©
Créer une application
Android wear
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Créer une application
wearable
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Prérequis
• Exécution dans un AVD spécifique
Maîtriser Android 5 et Android 4 alphorm.com™©
Prérequis
• Une application wearable tourne sur l’appareil connecté, mais
indépendamment du mobile
• Mais il faut une application mobile pour installer l’application wearable
sur la montre connectée
• Mises à jour nécessaires
Maîtriser Android 5 et Android 4 alphorm.com™©
Les SDK Tools ne version 23 mini
SDK Android mini API20
• Un AVD Wear
• Créer un projet Mobile+Wear, soit 2 activités
Exécution dans un AVD spécifique
• Dans un AVD adapté
• Lancement de l’activité par défaut
• Description du layout très semblable aux applications mobiles
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Prérequis
• Exécution dans un AVD spécifique
Maîtriser Android 5 et Android 4 alphorm.com™©
Echanger des données
Android wear
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Echanger des données
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Le client GoogleAPI
• Réceptionner des données
• Emettre des données
Maîtriser Android 5 et Android 4 alphorm.com™©
Le client GoogleAPI
• Créer un client GoogleAPI
• Api Wearable
• Possibilité d’échanger des données
• Ou simplement un message
Maîtriser Android 5 et Android 4 alphorm.com™©
Réceptionner les données
• Soit faire un service qui gère la réception
• Soit créer une classe implémentant DataListener
Maîtriser Android 5 et Android 4 alphorm.com™©
Emettre des données
• Construire une map clé/valeur
• Emettre les données avec DataApi
• Ou bien un message avec MessageApi
Maîtriser Android 5 et Android 4 alphorm.com™©
Ce qu’on a couvert
• Le client GoogleAPI
• Réceptionner des données
• Emettre des données
Maîtriser Android 5 et Android 4 alphorm.com™©
Android 5
Conclusion
Maîtriser Android 5 et Android 4 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Android 5
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Plan
• Généralités
• Utiliser l’environnement
• Réaliser une application
• Les interfaces utilisateur
• Stocker les informations
• Gérer le multimédia
• XML et HTTP
• Gérer les infos utilisateur
Maîtriser Android 5 et Android 4 alphorm.com™©
• Faire des tests
• Monétiser l’application
• Android Wear
Pour continuer …
• La formation Android avancée
Les interactions client-serveur
Mise en œuvre détaillée de Android Wear
Mise en œuvre des services Google
…
Maîtriser Android 5 et Android 4 alphorm.com™©
…
Merci d’avoir suivi cette formation,
Maîtriser Android 5 et Android 4 alphorm.com™©
rendez-vous pour la suite !

Contenu connexe

Tendances

Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4 Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4
Alphorm
 
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
Alphorm
 
Alphorm.com Support de la Formation Git
Alphorm.com Support de la Formation Git Alphorm.com Support de la Formation Git
Alphorm.com Support de la Formation Git
Alphorm
 
Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm
 
Alphorm.com-Formation windows 2012 (70-410)
Alphorm.com-Formation windows 2012 (70-410)Alphorm.com-Formation windows 2012 (70-410)
Alphorm.com-Formation windows 2012 (70-410)
Alphorm
 
Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124
Alphorm
 
alphorm.com - Formation Windows 8.1 - Utilisateur
alphorm.com - Formation Windows 8.1 - Utilisateuralphorm.com - Formation Windows 8.1 - Utilisateur
alphorm.com - Formation Windows 8.1 - Utilisateur
Alphorm
 
Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6
Alphorm
 
Alphorm.com Formation les fondamentaux de Matlab 2013 A
Alphorm.com  Formation les fondamentaux de Matlab 2013 AAlphorm.com  Formation les fondamentaux de Matlab 2013 A
Alphorm.com Formation les fondamentaux de Matlab 2013 A
Alphorm
 
Alphorm.com Support Formation Android 6, Expert
Alphorm.com Support Formation Android 6, ExpertAlphorm.com Support Formation Android 6, Expert
Alphorm.com Support Formation Android 6, Expert
Alphorm
 
Alphorm.com Formation JavaFX
Alphorm.com Formation JavaFXAlphorm.com Formation JavaFX
Alphorm.com Formation JavaFX
Alphorm
 
Alphorm.com-Formation windows phone 8.1
Alphorm.com-Formation windows phone 8.1Alphorm.com-Formation windows phone 8.1
Alphorm.com-Formation windows phone 8.1
Alphorm
 
Alphorm.com Support de la Formation Azure IAAS avancé 1
Alphorm.com Support de la Formation Azure IAAS avancé 1Alphorm.com Support de la Formation Azure IAAS avancé 1
Alphorm.com Support de la Formation Azure IAAS avancé 1
Alphorm
 
Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11
Alphorm
 
Alphorm.com Support de la formation JavaScript les fondamentaux
Alphorm.com Support de la formation JavaScript les fondamentauxAlphorm.com Support de la formation JavaScript les fondamentaux
Alphorm.com Support de la formation JavaScript les fondamentaux
Alphorm
 
Alphorm.com support de la formation windows 10 administration des services av...
Alphorm.com support de la formation windows 10 administration des services av...Alphorm.com support de la formation windows 10 administration des services av...
Alphorm.com support de la formation windows 10 administration des services av...
Alphorm
 
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm.com   Formation MySQL Administration(1Z0-883)Alphorm.com   Formation MySQL Administration(1Z0-883)
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm
 
Alphorm formation OS X 10.11 Client El Capitan
Alphorm formation OS X 10.11 Client El CapitanAlphorm formation OS X 10.11 Client El Capitan
Alphorm formation OS X 10.11 Client El Capitan
Alphorm
 
Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux
Alphorm
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
Alphorm
 

Tendances (20)

Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4 Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4
 
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
 
Alphorm.com Support de la Formation Git
Alphorm.com Support de la Formation Git Alphorm.com Support de la Formation Git
Alphorm.com Support de la Formation Git
 
Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs
 
Alphorm.com-Formation windows 2012 (70-410)
Alphorm.com-Formation windows 2012 (70-410)Alphorm.com-Formation windows 2012 (70-410)
Alphorm.com-Formation windows 2012 (70-410)
 
Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124
 
alphorm.com - Formation Windows 8.1 - Utilisateur
alphorm.com - Formation Windows 8.1 - Utilisateuralphorm.com - Formation Windows 8.1 - Utilisateur
alphorm.com - Formation Windows 8.1 - Utilisateur
 
Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6
 
Alphorm.com Formation les fondamentaux de Matlab 2013 A
Alphorm.com  Formation les fondamentaux de Matlab 2013 AAlphorm.com  Formation les fondamentaux de Matlab 2013 A
Alphorm.com Formation les fondamentaux de Matlab 2013 A
 
Alphorm.com Support Formation Android 6, Expert
Alphorm.com Support Formation Android 6, ExpertAlphorm.com Support Formation Android 6, Expert
Alphorm.com Support Formation Android 6, Expert
 
Alphorm.com Formation JavaFX
Alphorm.com Formation JavaFXAlphorm.com Formation JavaFX
Alphorm.com Formation JavaFX
 
Alphorm.com-Formation windows phone 8.1
Alphorm.com-Formation windows phone 8.1Alphorm.com-Formation windows phone 8.1
Alphorm.com-Formation windows phone 8.1
 
Alphorm.com Support de la Formation Azure IAAS avancé 1
Alphorm.com Support de la Formation Azure IAAS avancé 1Alphorm.com Support de la Formation Azure IAAS avancé 1
Alphorm.com Support de la Formation Azure IAAS avancé 1
 
Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11
 
Alphorm.com Support de la formation JavaScript les fondamentaux
Alphorm.com Support de la formation JavaScript les fondamentauxAlphorm.com Support de la formation JavaScript les fondamentaux
Alphorm.com Support de la formation JavaScript les fondamentaux
 
Alphorm.com support de la formation windows 10 administration des services av...
Alphorm.com support de la formation windows 10 administration des services av...Alphorm.com support de la formation windows 10 administration des services av...
Alphorm.com support de la formation windows 10 administration des services av...
 
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm.com   Formation MySQL Administration(1Z0-883)Alphorm.com   Formation MySQL Administration(1Z0-883)
Alphorm.com Formation MySQL Administration(1Z0-883)
 
Alphorm formation OS X 10.11 Client El Capitan
Alphorm formation OS X 10.11 Client El CapitanAlphorm formation OS X 10.11 Client El Capitan
Alphorm formation OS X 10.11 Client El Capitan
 
Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
 

En vedette

Alphorm.com Formation jQuery
Alphorm.com Formation jQueryAlphorm.com Formation jQuery
Alphorm.com Formation jQuery
Alphorm
 
Alphorm.com Formation Windev Mobile 19, Android
Alphorm.com Formation Windev Mobile 19, AndroidAlphorm.com Formation Windev Mobile 19, Android
Alphorm.com Formation Windev Mobile 19, Android
Alphorm
 
Alphorm.com Support de la Formation Excel 2016 initiation, Présenter les données
Alphorm.com Support de la Formation Excel 2016 initiation, Présenter les donnéesAlphorm.com Support de la Formation Excel 2016 initiation, Présenter les données
Alphorm.com Support de la Formation Excel 2016 initiation, Présenter les données
Alphorm
 
Alphorm.com Formation MS Project 2013
Alphorm.com Formation MS Project 2013Alphorm.com Formation MS Project 2013
Alphorm.com Formation MS Project 2013
Alphorm
 
Alphorm.com Support Formation Hacking & Sécurité Expert Vulnérabilités Web
Alphorm.com Support Formation Hacking & Sécurité Expert Vulnérabilités WebAlphorm.com Support Formation Hacking & Sécurité Expert Vulnérabilités Web
Alphorm.com Support Formation Hacking & Sécurité Expert Vulnérabilités Web
Alphorm
 
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
Alphorm
 
Alphorm.com Formation Hacking et Sécurité, l'essentiel
Alphorm.com Formation Hacking et Sécurité, l'essentielAlphorm.com Formation Hacking et Sécurité, l'essentiel
Alphorm.com Formation Hacking et Sécurité, l'essentiel
Alphorm
 
Alphorm.com Formation Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement Alphorm.com Formation Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement
Alphorm
 
alphorm.com - Formation MOS Word 2013 (77-418)
alphorm.com - Formation MOS Word 2013 (77-418)alphorm.com - Formation MOS Word 2013 (77-418)
alphorm.com - Formation MOS Word 2013 (77-418)
Alphorm
 
Alphorm.com Support de la Formation WebDev 21
Alphorm.com Support de la Formation WebDev 21Alphorm.com Support de la Formation WebDev 21
Alphorm.com Support de la Formation WebDev 21
Alphorm
 
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
Alphorm
 
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôleAlphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm
 
alphorm.com - Formation Microsoft PowerPoint 2013 (77-422)
alphorm.com - Formation Microsoft PowerPoint 2013 (77-422)alphorm.com - Formation Microsoft PowerPoint 2013 (77-422)
alphorm.com - Formation Microsoft PowerPoint 2013 (77-422)
Alphorm
 
Alphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautés
Alphorm
 
Alphorm.com Formation Le Language C
Alphorm.com  Formation Le Language C Alphorm.com  Formation Le Language C
Alphorm.com Formation Le Language C
Alphorm
 
Alphorm.com win dev-20-avance-ss
Alphorm.com win dev-20-avance-ssAlphorm.com win dev-20-avance-ss
Alphorm.com win dev-20-avance-ss
Alphorm
 
Alphorm.com support de la formation Word 2016 Initiation
Alphorm.com support de la formation Word 2016 InitiationAlphorm.com support de la formation Word 2016 Initiation
Alphorm.com support de la formation Word 2016 Initiation
Alphorm
 
Alphorm.com Support de la Formation-PowerPoint 2016 Initiation
Alphorm.com Support de la Formation-PowerPoint 2016 Initiation Alphorm.com Support de la Formation-PowerPoint 2016 Initiation
Alphorm.com Support de la Formation-PowerPoint 2016 Initiation
Alphorm
 
Alphorm.com Support de la formation EXCEL 2016 Initiation Découverte de l’env...
Alphorm.com Support de la formation EXCEL 2016 Initiation Découverte de l’env...Alphorm.com Support de la formation EXCEL 2016 Initiation Découverte de l’env...
Alphorm.com Support de la formation EXCEL 2016 Initiation Découverte de l’env...
Alphorm
 
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm
 

En vedette (20)

Alphorm.com Formation jQuery
Alphorm.com Formation jQueryAlphorm.com Formation jQuery
Alphorm.com Formation jQuery
 
Alphorm.com Formation Windev Mobile 19, Android
Alphorm.com Formation Windev Mobile 19, AndroidAlphorm.com Formation Windev Mobile 19, Android
Alphorm.com Formation Windev Mobile 19, Android
 
Alphorm.com Support de la Formation Excel 2016 initiation, Présenter les données
Alphorm.com Support de la Formation Excel 2016 initiation, Présenter les donnéesAlphorm.com Support de la Formation Excel 2016 initiation, Présenter les données
Alphorm.com Support de la Formation Excel 2016 initiation, Présenter les données
 
Alphorm.com Formation MS Project 2013
Alphorm.com Formation MS Project 2013Alphorm.com Formation MS Project 2013
Alphorm.com Formation MS Project 2013
 
Alphorm.com Support Formation Hacking & Sécurité Expert Vulnérabilités Web
Alphorm.com Support Formation Hacking & Sécurité Expert Vulnérabilités WebAlphorm.com Support Formation Hacking & Sécurité Expert Vulnérabilités Web
Alphorm.com Support Formation Hacking & Sécurité Expert Vulnérabilités Web
 
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
 
Alphorm.com Formation Hacking et Sécurité, l'essentiel
Alphorm.com Formation Hacking et Sécurité, l'essentielAlphorm.com Formation Hacking et Sécurité, l'essentiel
Alphorm.com Formation Hacking et Sécurité, l'essentiel
 
Alphorm.com Formation Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement Alphorm.com Formation Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement
 
alphorm.com - Formation MOS Word 2013 (77-418)
alphorm.com - Formation MOS Word 2013 (77-418)alphorm.com - Formation MOS Word 2013 (77-418)
alphorm.com - Formation MOS Word 2013 (77-418)
 
Alphorm.com Support de la Formation WebDev 21
Alphorm.com Support de la Formation WebDev 21Alphorm.com Support de la Formation WebDev 21
Alphorm.com Support de la Formation WebDev 21
 
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
 
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôleAlphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
 
alphorm.com - Formation Microsoft PowerPoint 2013 (77-422)
alphorm.com - Formation Microsoft PowerPoint 2013 (77-422)alphorm.com - Formation Microsoft PowerPoint 2013 (77-422)
alphorm.com - Formation Microsoft PowerPoint 2013 (77-422)
 
Alphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautés
 
Alphorm.com Formation Le Language C
Alphorm.com  Formation Le Language C Alphorm.com  Formation Le Language C
Alphorm.com Formation Le Language C
 
Alphorm.com win dev-20-avance-ss
Alphorm.com win dev-20-avance-ssAlphorm.com win dev-20-avance-ss
Alphorm.com win dev-20-avance-ss
 
Alphorm.com support de la formation Word 2016 Initiation
Alphorm.com support de la formation Word 2016 InitiationAlphorm.com support de la formation Word 2016 Initiation
Alphorm.com support de la formation Word 2016 Initiation
 
Alphorm.com Support de la Formation-PowerPoint 2016 Initiation
Alphorm.com Support de la Formation-PowerPoint 2016 Initiation Alphorm.com Support de la Formation-PowerPoint 2016 Initiation
Alphorm.com Support de la Formation-PowerPoint 2016 Initiation
 
Alphorm.com Support de la formation EXCEL 2016 Initiation Découverte de l’env...
Alphorm.com Support de la formation EXCEL 2016 Initiation Découverte de l’env...Alphorm.com Support de la formation EXCEL 2016 Initiation Découverte de l’env...
Alphorm.com Support de la formation EXCEL 2016 Initiation Découverte de l’env...
 
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
 

Similaire à Alphorm.com Formation Android 5

Tech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobiles
Michael Laguerre
 
Tech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobilesTech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobiles
TelecomValley
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobile
Martin Arvisais
 
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
SmartnSkilled
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
med_univ78
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
Lilia Sfaxi
 
Conférence windows phone 7
Conférence windows phone 7Conférence windows phone 7
Conférence windows phone 7
Arnaud Auroux
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditauto entrepreneur
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
Jean David Olekhnovitch
 
Strategies et developpements mobiles multi-plates-formes.
Strategies et developpements mobiles multi-plates-formes.Strategies et developpements mobiles multi-plates-formes.
Strategies et developpements mobiles multi-plates-formes.
DocDoku
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
ekino
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à android
Lilia Sfaxi
 
Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!
Bilel McSam
 
J platform
J platformJ platform
J platform
Bilel McSam
 
un Framework HTML est-il-possible ?
un Framework HTML est-il-possible ?un Framework HTML est-il-possible ?
un Framework HTML est-il-possible ?
Cédric MORIN
 
Alphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateurAlphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm
 
Installation open erp
Installation open erpInstallation open erp
Installation open erp
Addi Ait-Mlouk
 
Publier une application mobile en un clic
Publier une application mobile en un clicPublier une application mobile en un clic
Publier une application mobile en un clic
Fabernovel
 
Introduction au développement Windows 8.1
Introduction au développement Windows 8.1Introduction au développement Windows 8.1
Introduction au développement Windows 8.1
Microsoft
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin
Cellenza
 

Similaire à Alphorm.com Formation Android 5 (20)

Tech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobiles
 
Tech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobilesTech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobiles
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobile
 
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
Conférence windows phone 7
Conférence windows phone 7Conférence windows phone 7
Conférence windows phone 7
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpedit
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
 
Strategies et developpements mobiles multi-plates-formes.
Strategies et developpements mobiles multi-plates-formes.Strategies et developpements mobiles multi-plates-formes.
Strategies et developpements mobiles multi-plates-formes.
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à android
 
Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!
 
J platform
J platformJ platform
J platform
 
un Framework HTML est-il-possible ?
un Framework HTML est-il-possible ?un Framework HTML est-il-possible ?
un Framework HTML est-il-possible ?
 
Alphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateurAlphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateur
 
Installation open erp
Installation open erpInstallation open erp
Installation open erp
 
Publier une application mobile en un clic
Publier une application mobile en un clicPublier une application mobile en un clic
Publier une application mobile en un clic
 
Introduction au développement Windows 8.1
Introduction au développement Windows 8.1Introduction au développement Windows 8.1
Introduction au développement Windows 8.1
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin
 

Plus de Alphorm

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm
 

Plus de Alphorm (20)

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion Commerciale
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POO
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
 

Alphorm.com Formation Android 5

  • 1. Android 5 Présentation de la formation Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Android 5 Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 2. Plan • Généralités • Utiliser l’environnement • Réaliser une application • Les interfaces utilisateur • Stocker les informations • Gérer le multimédia • XML et HTTP • Gérer les infos utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© • Faire des tests • Monétiser l’application • Android Wear
  • 3. Présentation du formateur • Fabien Brissonneau • Email : fabien.brissonneau@gmail.com • Consultant Concepteur et Formateur • Missions d’architecture, de conception , de réalisation logicielles • Fondateur de eiXa6 • Actuellement en mission sur un projet de gestion Maîtriser Android 5 et Android 4 alphorm.com™© • Actuellement en mission sur un projet de gestion • Mes références : Mon profil Viadeo : http://fr.viadeo.com/fr/profile/fabien.brissonneau Mon profil LinkedIn : http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/
  • 4. Mes formations sur alphorm Maîtriser Android 5 et Android 4 alphorm.com™©
  • 5. Les autres formations dév sur Alphorm Maîtriser Android 5 et Android 4 alphorm.com™©
  • 6. Qu’est-ce que Android ? • Un système d’exploitation pour mobiles • Une plateforme multi-constructeurs, multi-éditeurs • Un framework riche, cohérent et efficace • Une ensemble d’outils de développement productifs Maîtriser Android 5 et Android 4 alphorm.com™© • Les alternatives sont minoritaires
  • 7. Publics concernés • Cette formation s’adresse à des développeurs • Connaître Java est nécessaire, ne pas être dérouté par sa syntaxe • Nous ne reviendrons pas sur les concepts du langage Maîtriser Android 5 et Android 4 alphorm.com™©
  • 8. Présentation des outils • Le SDK Android, framework et outils • L’interface de développement Android Studio • La présentation sera faite sous Windows 8 Maîtriser Android 5 et Android 4 alphorm.com™©
  • 9. Are you ready ? ☺ Maîtriser Android 5 et Android 4 alphorm.com™©
  • 10. Histoire d’Android Généralités sur Android Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Histoire d’Android Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 11. Plan • Les acteurs • Le système • Les outils Maîtriser Android 5 et Android 4 alphorm.com™©
  • 12. Les acteurs • Google • Open Handset Alliance, http://www.openhandsetalliance.com/ Maîtriser Android 5 et Android 4 alphorm.com™© • Une mascotte, BugDroid
  • 13. Le système • Première version commerciale en Septembre 2008 • Chaque version majeure porte un nom depuis Cupcake • Cupcake,Donut,Eclair,Froyo,Gingerbread,Honeycomb, • IceCreamSandwich (4.0-4.0.4), JellyBean, KitKat (4.4) Maîtriser Android 5 et Android 4 alphorm.com™© • Lollipop (5) • Les versions correspondent plus ou moins à des version de l’API • Lollipop correspond à l’API 21
  • 14. Les outils • Un site : http://developer.android.com/sdk/index.html • La mise à jour des outils du SDK via SDK Manager • Les outils du SDK ont des numéros de versions En décembre 2014 : 24.0.2 Maîtriser Android 5 et Android 4 alphorm.com™© • Les outils spécifiques à la dernière plateforme sont les platform-tools
  • 15. Ce qu’on a couvert • Les acteurs • Le système • Les outils Maîtriser Android 5 et Android 4 alphorm.com™©
  • 16. Architecture Généralités sur Android Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Architecture Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 17. Plan • Les couches du système • L’exécution d’une application Maîtriser Android 5 et Android 4 alphorm.com™©
  • 18. Les couches du système • Le framework d’applications • Le binder (IPC), couche de liaison vers le système • Les services système, organisé en composants (système ou média) • La couche d’abstraction du matériel (HAL) Maîtriser Android 5 et Android 4 alphorm.com™© • Le noyau Linux et ses pilotes
  • 19. L’exécution d’une application • Avant la version 5, Dalvik est le nom de la machine virtuelle La compilation est dite JIT (Just In Time) • Lollipop utilise ART (Android RunTime) Exécution du format Dex (Dalvik Executable) Compilation AOT (Ahead Of Time), qui a lieu à l’installation Maîtriser Android 5 et Android 4 alphorm.com™© Compilation AOT (Ahead Of Time), qui a lieu à l’installation • Un garbage collector gère la mémoire
  • 20. Ce qu’on a couvert • Les couches du système • L’exécution d’une application Maîtriser Android 5 et Android 4 alphorm.com™©
  • 21. Les packages Généralités sur Android Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Les packages Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 22. Plan • L’arborescence des packages • Le package android.app • Les packages android.widget et android.view • Le package android.utils Maîtriser Android 5 et Android 4 alphorm.com™© • Les packages com.google.android.gms.*
  • 23. L’arborescence de packages • Les packages sous android.app Le modèle applicatif android, Activity, Service y sont • Les packages sous android.content Les composants ContentProvider et BroadcastReceiver Les packages android.widget et android.view Maîtriser Android 5 et Android 4 alphorm.com™© • Les packages android.widget et android.view Les composants graphiques • … • Les packages java.* Les classes java utilisables pour Android
  • 24. Le package android.app • La classe Activity : composant graphique qui permet les interactions avec l’utilisateur • La classe Service : un composant qui réalise des traitements en arrière- plan • La classe Fragment, qui est une partir réutilisable de l’ihm Maîtriser Android 5 et Android 4 alphorm.com™©
  • 25. Les packages android.widget et android.view • Les classes Button, CheckBox, DatePicker… Éléments graphiques chargés dans l’Activité • Les classes LinearLayout, GridLayout… Les composants de disposition des contrôles dans l’activité Les classes Menu, MenuItem Maîtriser Android 5 et Android 4 alphorm.com™© • Les classes Menu, MenuItem Les composants de menu
  • 26. Le package android.util • La classe Log Permet de tracer des événements dans LogCat • La classe Xml Utilitaire de traitement de fichiers Xml Maîtriser Android 5 et Android 4 alphorm.com™©
  • 27. Les packages com.google.util.gms.* • Les classes Google Play Services Google+ Google Maps Android Wear … Maîtriser Android 5 et Android 4 alphorm.com™© … • Chaque API a son propre package
  • 28. Ce qu’on a couvert • L’arborescence des packages • Le package android.app • Les packages android.widget et android.view • Le package android.utils Maîtriser Android 5 et Android 4 alphorm.com™© • Les packages com.google.android.gms.*
  • 29. Android Studio Utiliser l’environnement Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Android Studio Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 30. Plan • Installation de l’IDE et du JDK • Les ressources dans un projet • Les activités et les tests dans un projet • Les fonctions d’Android Studio Maîtriser Android 5 et Android 4 alphorm.com™©
  • 31. Installation de l’IDE et du JDK • Url : http://developer.android.com/sdk/index.html • Possible de ne télécharger que le SDK • JDK • Android SDK Maîtriser Android 5 et Android 4 alphorm.com™© • Images pour AVD
  • 32. Les ressources dans un projet • Les ressources jouent un rôle important : Description de l’ihm, codes couleurs, chaînes de caractères, images… • Les ressources sont utilisées grâce à un identifiant • En java, la classe R représente ces ressources Maîtriser Android 5 et Android 4 alphorm.com™© • Certaines ressources sont non structurées : les assets • L’organisation des ressources suit des règles de nommage et d’organisation des répertoires
  • 33. Les activités et les tests dans un projet • Une activité est un concept d’interface utilisateur Un simple écran Contient une ou plusieurs vues Plusieurs activités dans une application Maîtriser Android 5 et Android 4 alphorm.com™© • Les fragments sont comme des sous-activités Ils sont prévus pour gérer les potentiels différents selon les tailles d’écrans • Les ressources de « layout » seront liées aux activités • Une activité est une classe Java
  • 34. Les fonctions et les tests d’Android Studio • L’éditeur de code • Des modèles prêts à l’emploi • Des applications multi-écrans • Des matériels virtuels divers Maîtriser Android 5 et Android 4 alphorm.com™© • Des scripts de construction évolués
  • 35. Ce qu’on a couvert • Installation de l’IDE et du JDK • Les ressources dans un projet • Les activités et les tests dans un projet • Les fonctions d’Android Studio Maîtriser Android 5 et Android 4 alphorm.com™©
  • 36. Compilation, exécution et Utiliser l’environnement Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Compilation, exécution et débogage Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 37. Plan • La compilation du projet • L’exécution de l’application • Le débogage de l’application Maîtriser Android 5 et Android 4 alphorm.com™©
  • 38. La compilation du projet • Un projet sous Android Studio est composé de plusieurs modules • Chaque module donne lieu à un fichier zip d’extension .apk • Ce fichier contient : Le code exécutable par la VM (Dalvik ou ART) Maîtriser Android 5 et Android 4 alphorm.com™© Les ressources compilées Un manifest décrivant l’application La signature dans un certificat (la clé privée est conservée par le développeur)
  • 39. L’exécution de l’application • Se réalise sur émulateur Choix d’un AVD, ou création d’un nouveau • Ou bien sur un appareil physique Installation des pilotes USB Paramètres « développeur » activé Maîtriser Android 5 et Android 4 alphorm.com™© Paramètres « développeur » activé
  • 40. Le débogage de l’application • Le certificat est généré automatiquement par Android Studio • Le débogage peut se faire sur matériel virtuel ou réel Maîtriser Android 5 et Android 4 alphorm.com™©
  • 41. Ce qu’on a couvert • La compilation du projet • L’exécution de l’application • Le débogage de l’application Maîtriser Android 5 et Android 4 alphorm.com™©
  • 42. Le déploiement Utiliser l’environnement Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le déploiement Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 43. Plan • Les modes de livraison • La gestion des versions • Les signatures Maîtriser Android 5 et Android 4 alphorm.com™©
  • 44. Les modes de livraison • Différents canaux : Par un marketplace (Google Play), voir les règles spécifiques Par mail Via un site web • Paramétrage de l’installation à partir de « sources inconnues » Maîtriser Android 5 et Android 4 alphorm.com™© • Paramétrage de l’installation à partir de « sources inconnues » • Préparation minimum : Mode release Signer Tester et vérifier l’application et toutes les ressources externes
  • 45. La gestion des versions • A noter l’importance des numéros de versions dans ce système ou plusieurs applications vont collaborer • Dans le manifest : La version : versionCode (pour les applications) , versionName (pour les utilisateurs) Maîtriser Android 5 et Android 4 alphorm.com™© Prérequis sur le SDK : minSdkVersion, targetSdkVersion, maxSdkVersion
  • 46. Les signatures • Les applications sont toutes signées avant qu’elles puissent être installées • Les certificats sont auto-signés, ils servent à identifier l’auteur • En mode debug, le certificat est généré par le Android SDK Mot de passe bien connu, pas besoin de le fournir Maîtriser Android 5 et Android 4 alphorm.com™© Mot de passe bien connu, pas besoin de le fournir • En mode release, il faut disposer d’un magasin de clés privées, d’une clé privée identifiant l’auteur, modifier le fichier de build • Toutes les versions d’une application doivent avoir la même clé
  • 47. Ce qu’on a couvert • Les modes de livraison • La gestion des versions • Les signatures Maîtriser Android 5 et Android 4 alphorm.com™©
  • 48. Les outils Utiliser l’environnement Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Les outils Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 49. Plan • Utiliser Android Studio • Les outils en ligne de commande • Les principaux outils Maîtriser Android 5 et Android 4 alphorm.com™©
  • 50. Utiliser Android Studio • L’aide à la construction de l’ihm • Un suivi des images correspondant aux variables • Fenêtre de sortie filtrable • Positionnement automatique des parentés d’activités Maîtriser Android 5 et Android 4 alphorm.com™© • Création facilitée des ihms • Edition simple et complète du code : quick fix, navigation facile, région de code, aide rapidement accessible, …
  • 51. Les outils en ligne de commande • Les outils du SDK : AVD Manager, Android Emulator, mksdcard • Les outils de développement : android, hierachyviewer, lint, sdk manager, sqlite3 • Les outils de debug : adb, uiautomator, ddms, device monitor, monkey, systrace Maîtriser Android 5 et Android 4 alphorm.com™© • Les outils de construction • Les outils d’images • Remarque sur les outils liés à la plateforme
  • 52. Les principaux outils • Android Asset Packaging Tool (aapt) : compile les ressources et produit R.java • Les éventuelles interfaces aidl Maîtriser Android 5 et Android 4 alphorm.com™©
  • 53. Les principaux outils • Les fichiers .class sont traduits en .dex Maîtriser Android 5 et Android 4 alphorm.com™©
  • 54. Les principaux outils • La signature suit Maîtriser Android 5 et Android 4 alphorm.com™©
  • 55. Ce qu’on a couvert • Utiliser Android Studio • Les outils en ligne de commande • Les principaux outils Maîtriser Android 5 et Android 4 alphorm.com™©
  • 56. Un simple programme Réaliser une application Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Un simple programme Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 57. Plan • Le périmètre de l’application • L’architecture de l’application • La construction de l’ihm principale • Les menus Maîtriser Android 5 et Android 4 alphorm.com™©
  • 58. Le périmètre de l’application • Exemple d’application qui permet de garder trace de ses déplacements Saisir un trajet : saisie manuelle, récupération de la localisation, notification wear, stockage Récupérer les trajets et kilomètres par mois ou par an : imprimante, mail, stockage, Paramétrage : localisation, stockage, cloud, imprimante Maîtriser Android 5 et Android 4 alphorm.com™© Paramétrage : localisation, stockage, cloud, imprimante
  • 59. Architecture de l’application • Vues de haut niveau entre lesquelles on peut naviguer • Les vues par catégories pour entrer dans le détail • Les vues de détail • Dans un premier temps, saisie d’un trajet : 1 seule vue de haut niveau Maîtriser Android 5 et Android 4 alphorm.com™©
  • 60. Construction de l’ihm principale • La notion de « view » : les contrôles visuels • La notion de « viewgroup » : tous les layouts • Il est possible de créer l’ihm dans le code, ou bien dans XML Avec l’éditeur graphique, ou bien en éditant le code XML directement Maîtriser Android 5 et Android 4 alphorm.com™© • Ensemble complet de contrôles : Textes, Boutons, Images, Dates • Contrôles complexes : Liste, Grille, Spinner et Gallerie Travaille avec des adaptateurs
  • 61. Cas particulier des AdapterView • Séparation de l’accès aux données de leur représentation • Un contrôle de liste (ListView, Spinner,…) contient des items dont le type doit être décrit par un layout • Il est lié par un adaptateur à des données (tableau, …) • Un adaptateur convertit une donnée en une vue enfant de la liste Maîtriser Android 5 et Android 4 alphorm.com™© • Un adaptateur convertit une donnée en une vue enfant de la liste SimpleCursorAdapter • Lorsque le ListView doit représenter une ligne, il fait appel à l’adaptateur en passant la ligne L’adaptateur va alors construire la vue enfant en utilisant le layout référencé
  • 62. Utiliser un menu • Le menu peut être décrit dans le fichier XML • Il est créé avec l’activité Maîtriser Android 5 et Android 4 alphorm.com™© • On peut réagir sur les items
  • 63. Ce qu’on a couvert • Le périmètre de l’application • L’architecture de l’application • La construction de l’ihm principale • Les menus Maîtriser Android 5 et Android 4 alphorm.com™©
  • 64. Sauvegarder les données Réaliser une application Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Sauvegarder les données Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 65. Plan • Stockage dans les préférences • Stockage interne • Stockage externe • Les bases de données SQLite Maîtriser Android 5 et Android 4 alphorm.com™© • La connexion au réseau
  • 66. Le stockage dans les préférences • Stockage de paires clé-valeur • Utiliser la classe android.content.SharedPreferences getSharedPreferences() ou getPreferences() • Stockage de toute variable primitive Maîtriser Android 5 et Android 4 alphorm.com™© • Persistence des données entre sessions • Ecriture : edit() fournit un Editor Appeler putXXX(v), puis commit() • Lecture : utiliser getXXX()
  • 67. Stockage interne • Sauvegarder un fichier privé pour l’application Le fichier est enlevé lorsque d’utilisateur désinstalle l’application • Pour ouvrir le fichier La méthode openFileOutput(fichier,mode) de android.content.Context La méthode openFileInput(fichier) Maîtriser Android 5 et Android 4 alphorm.com™© La méthode openFileInput(fichier) Utiliser ensuite FileOutputStream/FileInputStream • Même technique pour les fichiers de cache, avec getCacheDir() • Autres méthodes : getFilesDir(), getDir(), deleteFile(), fileList()
  • 68. Stockage externe • Peut être une carte SD ou bien interne • Accessibles librement et modifiable par l’utilisateur • Soumis à permission READ/WRITE_EXTERNAL_STORAGE • Vérifier que le stockage externe existe Maîtriser Android 5 et Android 4 alphorm.com™© getExternalStorageState() • Fichiers publics : Environment.getExternalStoragePublicDirectory() • Fichiers « app-private » : getExternalFilesDir()
  • 69. Les bases de données SQLite • Base accessible de l’application elle-même • Créer une sous-classe de SQLiteOpenHelper et redéfinir onCreate() Créer les tables nécessaires • Lecture et écriture par getReadableDatabase() et getWritableDatabase() Maîtriser Android 5 et Android 4 alphorm.com™© • Les requêtes sont exécutées avec la méthode SQLiteDatabase.query() • Et les résultats sont parcourus avec un Cursor • Pour déboguer, penser à l’outil sqlite3
  • 70. La connexion au réseau • Il est possible de se connecter au réseau s’il est disponible • Ce serait une forme de stockage des données • Les packages java.net.* et android.net.* Maîtriser Android 5 et Android 4 alphorm.com™©
  • 71. Ce qu’on a couvert • Stockage dans les préférences • Stockage interne • Stockage externe • Les bases de données SQLite Maîtriser Android 5 et Android 4 alphorm.com™© • La connexion au réseau
  • 72. Le cycle de vie Réaliser une application Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le cycle de vie Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 73. Plan • Vue d’ensemble du cycle de vie • La pause et la reprise • L’arrêt et le redémarrage • La re-création de l’activité Maîtriser Android 5 et Android 4 alphorm.com™©
  • 74. Vue d’ensemble du cycle de vie • Les fonctions appelées lors du changement d’état : onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy() onRestart() • Toutes les fonctions (« de rappel » ou « callback ») n’ont pas à être implémentées Maîtriser Android 5 et Android 4 alphorm.com™© implémentées • Les états stables dans la vie de l’activité sont : Resumed : en avant-plan et l’utilisateur interagit avec Paused : semi-visible, l’utilisateur ne peut plus interagir Stopped : cachée, aucune exécution de code
  • 75. Application et activité • L’activité « principale » de l’application est définie dans le manifest • Cette activité reçoit le onCreate() lors du lancement Maîtriser Android 5 et Android 4 alphorm.com™©
  • 76. La redéfinition de onCreate() • Peut servir à construire une ihm différente selon la version du SDK • Initialise l’ihm Maîtriser Android 5 et Android 4 alphorm.com™© • Le pendant est onDestroy(), rarement utilisée
  • 77. La pause et la reprise • La méthode onPause() est appelée lorsque l’activité devient partiellement invisible Arrêter les actions qui consomment (animations…) Sauvegarder les informations persistantes Libérer les ressources consommatrices (senseurs …) Maîtriser Android 5 et Android 4 alphorm.com™© Libérer les ressources consommatrices (senseurs …) • Le pendant : onResume() Initialiser les senseurs Reprendre les animations
  • 78. L’arrêt et le redémarrage • Les cas d’usage de stop/restart : L’utilisateur passe à une autre application par les « applications récentes », stoppe l’appli puis repasse par le même chemin L’application démarre une autre activité, puis back Réception d’un appel téléphonique Maîtriser Android 5 et Android 4 alphorm.com™© Réception d’un appel téléphonique • Méthode onStop() Libérer toutes les ressources • et onRestart() Rarement utile
  • 79. La re-création de l’activité • Lorsque l’activité est détruite car inutilisée depuis un certain temps Il s’agit pour le système d’économiser des ressources • Le système peut alors reconstruire l’activité dans l’état où elle était lors de sa destruction Pairs clés-valeurs d’état -> bundle Maîtriser Android 5 et Android 4 alphorm.com™© Pairs clés-valeurs d’état -> bundle La re-création de l’ihm est prise en charge par le système • Pour sauver/restaurer des données supplémentaires : onSaveInstanceState / onRestoreInstanceState
  • 80. Ce qu’on a couvert • Vue d’ensemble du cycle de vie • La pause et la reprise • L’arrêt et le redémarrage • La re-création de l’activité Maîtriser Android 5 et Android 4 alphorm.com™©
  • 81. L’actionbar Réaliser une application Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum L’actionbar Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 82. Plan • Généralités sur la barre action • Mettre des boutons dans la barre • Modifier le style de la barre Maîtriser Android 5 et Android 4 alphorm.com™©
  • 83. Généralités sur la barre d’actions • La barre d’action sert d’identité visuelle, de repère de navigation, à déclencher les actions importantes, à naviguer dans l’application Maîtriser Android 5 et Android 4 alphorm.com™© à naviguer dans l’application • Selon la version d’Android, la mise en œuvre peut être différente Nous ne supportons ici que Android après 3.0 (API 11)
  • 84. Mettre des boutons dans la barre • Les boutons doivent correspondre aux actions les plus importantes • Si une icône est montrée, on parle de « action button » • Pour ajouter l’icône, ne pas oublier Maîtriser Android 5 et Android 4 alphorm.com™© Projet/…/res/drawable/-> ajouter Image Asset
  • 85. Remarque sur les icônes • Téléchargement d’icônes toutes prêtes Sur developer.android.com/design/downloads/index.html Maîtriser Android 5 et Android 4 alphorm.com™©
  • 86. Visualise et réagir • Pour visualiser le menu … Maîtriser Android 5 et Android 4 alphorm.com™© • Et réagir sur les boutons …
  • 87. La navigation entre les activités • Les activités peuvent être reliées par parenté • Ici, l’activité SendMailActivity est « fille » de MainActivityMileage Maîtriser Android 5 et Android 4 alphorm.com™© • Et ne pas oublier
  • 88. Modifier le style de la barre • Il y a deux thèmes par défaut : Theme.Holo et Theme.Holo.Light • Choisir le style dans AndroidManifest.Xml • Ou bien dans un fichier de style : styles.xml Maîtriser Android 5 et Android 4 alphorm.com™©
  • 89. Ce qu’on a couvert • Généralités sur la barre action • Mettre des boutons dans la barre • Modifier le style de la barre Maîtriser Android 5 et Android 4 alphorm.com™©
  • 90. Le support des matériels Réaliser une application Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le support des matériels Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 91. Plan • Le support des langages • Le support des écrans • Le support des versions de plateformes Maîtriser Android 5 et Android 4 alphorm.com™©
  • 92. Le support des langages • Les chaînes de caractères sont isolées • Chaque « locale » est représentée par un répertoire Maîtriser Android 5 et Android 4 alphorm.com™© • La recherche s’effectue en descendant dans les sous-répertoires
  • 93. Le support des écrans • Les écrans ont différentes tailles et différentes densités • Tailles : small, normal, large, xlarge • Densités : ldpi, mdpi, hdpi, xhdpi • L’orientation de l’écran correspond à une variation de taille Maîtriser Android 5 et Android 4 alphorm.com™©
  • 94. Le support des versions de plateformes • Les versions sont représentées par des répertoires Maîtriser Android 5 et Android 4 alphorm.com™© • On peut récupérer dans le code la version du SDK
  • 95. Ce qu’on a couvert • Le support des langages • Le support des écrans • Le support des versions de plateformes Maîtriser Android 5 et Android 4 alphorm.com™©
  • 96. Interagir avec d’autres Réaliser une application Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Interagir avec d’autres activités Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 97. Plan • Généralités sur les « Intent » • Lancer une sous-activité • Les Intents Android Maîtriser Android 5 et Android 4 alphorm.com™©
  • 98. Généralités sur les « intents » • Une « intent » définit une action et les données associés • Une « intent » peut être explicite ou implicite Soit démarrer une activité bien précise Soit faire exécuter une action par une activité non spécifiée L’activation est possible grâce au paramétrage de <intent-filter> Maîtriser Android 5 et Android 4 alphorm.com™© • L’activation est possible grâce au paramétrage de <intent-filter>
  • 99. Lancer une sous-activité • Pour une action nommée <package>.intent.action.NAME dans le manifest de l’activité • Créer un objet de classe android.content.Intent Maîtriser Android 5 et Android 4 alphorm.com™© • L’activité elle-même peut savoir comment elle a été sollicitée Intent origine = this.getIntent();
  • 100. Les Intents Android • Intent.ACTION_VIEW : invocation du navigateur web • Intent.ACTION_MAIN : point d’entrée d’application • Intent.ACTION_WEB_SEARCH : recherche Web • Intent.ACTION_CALL : appel téléphonique Maîtriser Android 5 et Android 4 alphorm.com™© • Catégories standards : CATEGORY_DEFAULT CATEGORY_LAUNCHER CATEGORY_BROWSABLE : accessible par un lien …
  • 101. Déclencher l’envoi d’un mail • Suivant l’action choisie, on passe des données Maîtriser Android 5 et Android 4 alphorm.com™©
  • 102. Ce qu’on a couvert • Généralités sur les « Intent » • Lancer une sous-activité • Les Intents Android Maîtriser Android 5 et Android 4 alphorm.com™©
  • 103. Les composants Les interfaces utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Les composants graphiques Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 104. Plan • Les contrôles Text • Les contrôles Button • Les contrôles Date/Time Picker • Les contrôles Clock Maîtriser Android 5 et Android 4 alphorm.com™© • Les contrôles List/Grid/Spinner
  • 105. Les contrôles Text • TextView : texte sans édition possible • EditText : champ de texte éditable • AutoCompleteTextView : donne des possibilités de complétion • MultiAutoCompleteTextView : idem mais multiple Maîtriser Android 5 et Android 4 alphorm.com™©
  • 106. Les contrôles Button • La classe de base android.widget.Button • Listener abonné soit en code Java soit en attribut de balise Maîtriser Android 5 et Android 4 alphorm.com™©
  • 107. Les contrôles Date/Time Picker • DatePicker • TimePicker Maîtriser Android 5 et Android 4 alphorm.com™©
  • 108. Les contrôles Clock • TextClock • AnalogClock Maîtriser Android 5 et Android 4 alphorm.com™©
  • 109. Les contrôles List/Grid/Spinner • ListView • GridView • Spinner Maîtriser Android 5 et Android 4 alphorm.com™©
  • 110. Les containers et les adapters • Les List/Grid/Spinner récupèrent leurs données via des Adapters Maîtriser Android 5 et Android 4 alphorm.com™©
  • 111. Ce qu’on a couvert • Les contrôles Text • Les contrôles Button • Les contrôles Date/Time Picker • Les contrôles Clock Maîtriser Android 5 et Android 4 alphorm.com™© • Les contrôles List/Grid/Spinner
  • 112. La logique de l’interface Les interfaces utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum La logique de l’interface graphique Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 113. Plan • Construire une IHM en Java • Construire une IHM en XML • Construire une IHM en mixant XML et Java Maîtriser Android 5 et Android 4 alphorm.com™©
  • 114. Construire une IHM en Java • Les contrôles sont attachés à des ViewGroup, les « layouts » • Chaque « layout » a une orientation • Les ViewGroup sont eux-mêmes attachés en relation parent-enfants Maîtriser Android 5 et Android 4 alphorm.com™©
  • 115. Construire une IHM en XML • Utilisant les balises <LinearLayout/> Maîtriser Android 5 et Android 4 alphorm.com™©
  • 116. Construire une IHM en mixant Java et XML • La construction peut être faite en XML • Manipulation en Java • Importance des id Maîtriser Android 5 et Android 4 alphorm.com™©
  • 117. Ce qu’on a couvert • Construire une IHM en Java • Construire une IHM en XML • Construire une IHM en mixant XML et Java Maîtriser Android 5 et Android 4 alphorm.com™©
  • 118. La gestion des menus Les interfaces utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum La gestion des menus Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 119. Plan • Les menus options • Les menus contextuels • Les menus popup Maîtriser Android 5 et Android 4 alphorm.com™©
  • 120. Les menus options • Ce sont les principaux menus d’une activité • Pour des actions ayant un impact global • Depuis Android 3.0, ils sont dans la barre d’action Maîtriser Android 5 et Android 4 alphorm.com™©
  • 121. Les menus contextuels • Un menu flottant qui apparaît suite à un long clic sur un élément • Depuis Android 3.0, il s’agit du mode d’action contextuel de préférence Maîtriser Android 5 et Android 4 alphorm.com™©
  • 122. Les menus popup • Une liste d’items qui correspondent à la vue Maîtriser Android 5 et Android 4 alphorm.com™©
  • 123. Ce qu’on a couvert • Les menus options • Les menus contextuels • Les menus popup Maîtriser Android 5 et Android 4 alphorm.com™©
  • 124. La variété des Les interfaces utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum La variété des LayoutManager Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 125. Plan • LinearLayout • TableLayout • RelativeLayout • FrameLayout Maîtriser Android 5 et Android 4 alphorm.com™© • GridLayout
  • 126. LinearLayout • Les enfants sont organisés verticalement ou horizontalement • La gravité est l’ancrage d’un côté • Le poids est le pourcentage de déformation Maîtriser Android 5 et Android 4 alphorm.com™©
  • 127. TableLayout • Extension de LinearLayout • Les enfants sont placés en lignes/colonnes Maîtriser Android 5 et Android 4 alphorm.com™©
  • 128. RelativeLayout • Les enfants sont rattachés relativement Au conteneur : android:layout_alignParentTop,… Aux voisins : android:toRightOf,… Maîtriser Android 5 et Android 4 alphorm.com™©
  • 129. FrameLayout • Plusieurs enfants, mais un seul visible • Utiliser setVisibility(…) pour faire afficher l’un ou l’autre Maîtriser Android 5 et Android 4 alphorm.com™©
  • 130. GridLayout • Positionne les enfants en lignes/colonnes • Une cellule peut ne pas avoir de contrôle • Un contrôle peut s’étaler sur plusieurs lignes/colonnes Maîtriser Android 5 et Android 4 alphorm.com™©
  • 131. Ce qu’on a couvert • LinearLayout • TableLayout • RelativeLayout • FrameLayout Maîtriser Android 5 et Android 4 alphorm.com™© • GridLayout
  • 132. Les fragments Les interfaces utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Les fragments Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 133. Plan • Définition du fragment • Intérêt des fragments Maîtriser Android 5 et Android 4 alphorm.com™©
  • 134. Définition des fragments • Un fragment est une partie modulaire d’une activité • Un fragment a son propre cycle de vie • Le fragment peut être référencé dans un layout • Ou bien activé dynamiquement Maîtriser Android 5 et Android 4 alphorm.com™©
  • 135. Intérêt du fragment • Avec un fragment, on peut facilement s’adapter à des surfaces importantes Si la surface est faible, lancer une autre activité Si la surface est suffisante, faire apparaître le fragment • Le fragment peut être activé dynamiquement Maîtriser Android 5 et Android 4 alphorm.com™© • Le fragment peut être activé dynamiquement
  • 136. Exemple deux activités – deux fragments • 1 activité charge un fragment • La seconde activité charge … Maîtriser Android 5 et Android 4 alphorm.com™© • Le fragment (par exemple index) invoque une autre activité • Le second fragment, qui représente par exemple les détails
  • 137. Exemple une activité – deux fragments • 1 activité a les deux fragments dans son layout Maîtriser Android 5 et Android 4 alphorm.com™©
  • 138. Ce qu’on a couvert • Définition du fragment • Intérêt des fragments Maîtriser Android 5 et Android 4 alphorm.com™©
  • 139. Mettre en place des tests Faire des tests Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Mettre en place des tests Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 140. Plan • Le rôle et l’intérêt des tests • Faire des tests manuels • Les frameworks de test Maîtriser Android 5 et Android 4 alphorm.com™©
  • 141. Le rôle et l’intérêt des tests • Vérifier que les composants fonctionnent comme attendu • Rassurer le développeur • Permettre d’avancer sur les fonctionnalités sans compromettre l’existant Maîtriser Android 5 et Android 4 alphorm.com™©
  • 142. Faire des tests manuels • Simples à mettre en œuvre • Particulièrement pratique pour les tests d’ihm • Longs et fastidieux • Difficiles à systématiser Maîtriser Android 5 et Android 4 alphorm.com™© • Nécessite une intervention humaine
  • 143. Les frameworks de tests • Propose des méthodes toutes prêtes Assertions • Propose une ihm pour visualiser tout de suite les problèmes • Permet d’automatiser des tests Maîtriser Android 5 et Android 4 alphorm.com™© • En Java, la référence est Junit • Les tests sont typiquement créés par Activité
  • 144. Ce qu’on a couvert • Le rôle et l’intérêt des tests • Faire des tests manuels • Les frameworks de test Maîtriser Android 5 et Android 4 alphorm.com™©
  • 145. Créer des tests unitaires Faire des tests Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Créer des tests unitaires Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 146. Plan • Les tests unitaires utilisant les frameworks • Règles de construction des tests • Exemple de tests Maîtriser Android 5 et Android 4 alphorm.com™©
  • 147. Les tests unitaires utilisant les frameworks • Pour les tests n’utilisant pas les composants Android, JUnit suffit • Les composants Android sont testés avec les extensions • Les classes de tests sont rangées dans des packages Java classiques Maîtriser Android 5 et Android 4 alphorm.com™©
  • 148. Règles de construction des tests • Une classe de test par classe à tester • Une méthode de test par test • Basée sur JUnit 3, les méthodes commencent par « test… » • Commencer par écrire des assertions Maîtriser Android 5 et Android 4 alphorm.com™© • Bâtir le test ensuite
  • 149. Exemple de test unitaire • Une classe Voyage Maîtriser Android 5 et Android 4 alphorm.com™©
  • 150. Ce qu’on a couvert • Les tests unitaires utilisant les frameworks • Règles de construction des tests • Exemple de tests Maîtriser Android 5 et Android 4 alphorm.com™©
  • 151. Tester l’interface Faire des tests Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Tester l’interface graphique Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 152. Plan • Le framework d’instrumentation • Simuler l’interaction utilisateur Maîtriser Android 5 et Android 4 alphorm.com™©
  • 153. Le framework d’instrumentation • Hériter de classes dérivées de TestCase ActivityInstrumentationTestCase • Mettre en place un setUp • Tester les interactions sur l’ihm Maîtriser Android 5 et Android 4 alphorm.com™©
  • 154. Simuler les interactions • Récupérer les contrôles • Envoyer des événements • Attention à ce que l’application soit visible Maîtriser Android 5 et Android 4 alphorm.com™©
  • 155. Ce qu’on a couvert • Le framework d’instrumentation • Simuler l’interaction utilisateur Maîtriser Android 5 et Android 4 alphorm.com™©
  • 156. Tester avec les mocks Faire des tests Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Tester avec les mocks Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 157. Plan • Les classes de android.test.mock • Utilisations des classes de Mock Maîtriser Android 5 et Android 4 alphorm.com™©
  • 158. Les classes de android.test.mock • MockApplication • MockContentProvider • MockContentResolver • MockContext Maîtriser Android 5 et Android 4 alphorm.com™© • MockCursor • MockDialogInterface • MockResources
  • 159. Utilisation des classes de Mock • Fournir une classe Pour compiler Faire fonctionner les services • Ne propose pas une implémentation réelle Permet d’avancer sur les tests Maîtriser Android 5 et Android 4 alphorm.com™© • Permet d’avancer sur les tests • Il suffit de redéfinir les méthodes qui le nécessitent
  • 160. Ce qu’on a couvert • Les classes de android.test.mock • Utilisations des classes de Mock Maîtriser Android 5 et Android 4 alphorm.com™©
  • 161. Le compte développeur Monétiser l’application Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le compte développeur Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 162. Plan • Création du compte développeur • La console du développeur Maîtriser Android 5 et Android 4 alphorm.com™©
  • 163. Création du compte développeur • Accéder au site : • Vérification par téléphone Maîtriser Android 5 et Android 4 alphorm.com™©
  • 164. Compte développeur • Contrat à accepter • Réglement Maîtriser Android 5 et Android 4 alphorm.com™©
  • 165. La console du développeur • Via le site http://developer.android.com/distribute/index.html • Developer Console Maîtriser Android 5 et Android 4 alphorm.com™©
  • 166. La console • Liste des applications et statistiques Maîtriser Android 5 et Android 4 alphorm.com™©
  • 167. Ce qu’on a couvert • Création du compte développeur • La console du développeur Maîtriser Android 5 et Android 4 alphorm.com™©
  • 168. La préparation de Monétiser l’application Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum La préparation de l’application Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 169. Plan • Gestion du fichier APK • Préparation de la fiche Google Play Maîtriser Android 5 et Android 4 alphorm.com™©
  • 170. Gestion du fichier APK • Générer le APK et le signer • Télécharger le fichier Maîtriser Android 5 et Android 4 alphorm.com™©
  • 171. Préparation de la fiche Google Play • Fournir les infos de description de l’application • Les captures Maîtriser Android 5 et Android 4 alphorm.com™©
  • 172. Captures d’écrans • Par l’outil Monitor Maîtriser Android 5 et Android 4 alphorm.com™©
  • 173. Ce qu’on a couvert • Gestion du fichier APK • Préparation de la fiche Google Play Maîtriser Android 5 et Android 4 alphorm.com™©
  • 174. Gérer la publicité Monétiser l’application Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Gérer la publicité Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 175. Plan • Le compte AdMob • Créer une unité publicitaire • Installer le SDK Maîtriser Android 5 et Android 4 alphorm.com™©
  • 176. Le compte AdMob • Créer le compte , via le compte Google AdSense AdWords Maîtriser Android 5 et Android 4 alphorm.com™©
  • 177. Créer une unité publicitaire • Sous le compte AdMob • Indiquer quelle application est concernée Maîtriser Android 5 et Android 4 alphorm.com™©
  • 178. Installer le SDK • Mettre en place la bibliothèque de service Google Play Ne pas oublier la balise meta-data • Déclarer une activité AdActivity • Autoriser les connexions réseau Maîtriser Android 5 et Android 4 alphorm.com™© • Puis créer un objet de type AdView dans votre ihm
  • 179. Ce qu’on a couvert • Le compte AdMob • Créer une unité publicitaire • Installer le SDK Maîtriser Android 5 et Android 4 alphorm.com™©
  • 180. Les préférences Stocker les informations Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Les préférences Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 181. Plan • La classe SharedPreferences • Positionner des valeurs • Lire les informations de préférence • Enregistrer une callback Maîtriser Android 5 et Android 4 alphorm.com™©
  • 182. La classe SharedPreferences • Fournit des services pour sauver et récupérer des paires clé-valeur de primitives et de chaînes • Pour obtenir un SharedPreferences, utiliser Soit getSharedPreferences() : chaque fichier est identifié Soit getPreferences() : un fichier unique pour l’activité Maîtriser Android 5 et Android 4 alphorm.com™© Soit getPreferences() : un fichier unique pour l’activité
  • 183. Positionner des valeurs • Utiliser la classe SharedPreferences.Editor pour positionner les valeurs • Méthodes pour positionner des valeurs : putBoolean(String,boolean), putFloat(String,float), putInt(String,int), putLong(String,long), putString(String,String), putStringSet(String,Set<String>) Maîtriser Android 5 et Android 4 alphorm.com™© • Méthodes pour supprimer : clear(), remove(String) • Méthodes pour appliquer les changements : apply(), commit()
  • 184. Lire les informations de préférence • Sur la classe SharedPreferences getBoolean, getFloat, getInt, getLong, getString, getStringSet Paramètres : la clé et une valeur par défaut • Récupération de toutes les valeurs : getAll Obtenir un Editor (pour positionner des valeurs) : edit Maîtriser Android 5 et Android 4 alphorm.com™© • Obtenir un Editor (pour positionner des valeurs) : edit • Vérifier qu’une clé existe : contains • Enregistrer des callbacks : register….unregister
  • 185. Enregistrer une callback • Méthodes registerOnSharedPreferenceChangeListener(….), unregister… • Un listener doit être fourni, qui sera appelé lorsqu’une modification se produit sur les préférences • OnSharedPreferenceChangeListener est l’interface à implémenter Méthode onSharedPreferenceChanged(SharedPreference, String) Maîtriser Android 5 et Android 4 alphorm.com™© Méthode onSharedPreferenceChanged(SharedPreference, String)
  • 186. Ce qu’on a couvert • La classe SharedPreferences • Positionner des valeurs • Lire les informations de préférence • Enregistrer une callback Maîtriser Android 5 et Android 4 alphorm.com™©
  • 187. Le stockage interne Stocker les informations Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le stockage interne Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 188. Plan • La méthode openFileOutput • La méthode openFileInput • Les fichiers de cache Maîtriser Android 5 et Android 4 alphorm.com™©
  • 189. La méthode openFileOutput • Crée un fichier accessible uniquement de l’application • Le fichier sera détruit lors de la désinstallation • Les modes possibles sont Context.MODE_PRIVATE : création/remplacement Maîtriser Android 5 et Android 4 alphorm.com™© Context.MODE_APPEND : ajoute Context.MODE_WORLD_READABLE : lisible par les autres applications Context.MODE_WORLD_WRITABLE : inscriptible par les autres • Ecriture utilisant write • Fermeture du flux avec close
  • 190. La méthode openFileInput • Dans la classe Context • Retourne un FileInputStream • Demande le nom du fichier à ouvrir • Peut lever FileNotFoundException Maîtriser Android 5 et Android 4 alphorm.com™©
  • 191. Les fichiers de cache • Obtenir le répertoire de cache avec getCacheDir() : File • Ouvrir et manipuler le fichier • Les fichiers en cache sont privés à l’application • Peuvent disparaître lorsque le système a besoin Maîtriser Android 5 et Android 4 alphorm.com™©
  • 192. Ce qu’on a couvert • La méthode openFileOutput • La méthode openFileInput • Les fichiers de cache Maîtriser Android 5 et Android 4 alphorm.com™©
  • 193. Le stockage externe Stocker les informations Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le stockage externe Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 194. Plan • Définition • Mise en œuvre initiale • Créer un fichier et sauvegarder Maîtriser Android 5 et Android 4 alphorm.com™©
  • 195. Définition • Le stockage externe consiste à stocker sur un support « externe » • Cela peut être réellement amovible, mais peut-être non • Permissions android.permission.READ/WRITE_EXTERNAL_STORAGE • Données sans protection, accessibles à d’autres applications Maîtriser Android 5 et Android 4 alphorm.com™©
  • 196. Mise en œuvre initiale • Déclarer la permission • Vérifier la présence d’un stockage externe Maîtriser Android 5 et Android 4 alphorm.com™© Environment.getExternalStorageState() • Vérifier la possibilité d’y accéder en écriture Environment.MEDIA_MOUNTEDY • Vérifier la possibilité d’y accéder en lecture Environment.MEDIA_MOUNTED_READ_ONLY
  • 197. Créer un fichier et sauvegarder • Pour un usage privé, utiliser getExternalFilesDir() : File Possibilité de passer un paramètre • Pour un accès plus général, utiliser getExternalStoragePublicDirectory(..) Maîtriser Android 5 et Android 4 alphorm.com™©
  • 198. Ce qu’on a couvert • Définition • Mise en œuvre initiale • Créer un fichier et sauvegarder Maîtriser Android 5 et Android 4 alphorm.com™©
  • 199. La base SQLite Stocker les informations Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum La base SQLite Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 200. Plan • L’intérêt de la base de données • La création et la mise à jour du schéma • Ecrire et lire dans la base de données Maîtriser Android 5 et Android 4 alphorm.com™©
  • 201. L’intérêt de la base de données • Un stockage structuré Tables, colonnes, typées • Des requêtes utilisant le langage SQL • Des volumes importants accessibles dans des temps raisonnables Maîtriser Android 5 et Android 4 alphorm.com™©
  • 202. La création et la mise à jour du schéma • Utiliser SQLiteOpenHelper • Sous classer cette classe, qui contient toute la mécanique • Redéfinir les méthodes permettant de créer et de mettre à jour Maîtriser Android 5 et Android 4 alphorm.com™©
  • 203. Ecrire et lire • Obtenir une SQLiteDatabase • Par appel de getWritableDatabase ou de getReadableDatabase • Executer du SQL : execSQL ou query • Récupération des données via un Cursor Maîtriser Android 5 et Android 4 alphorm.com™© • L’outil sqlite3 permet d’accéder à une base de données via un terminal
  • 204. Ce qu’on a couvert • L’intérêt de la base de données • La création et la mise à jour du schéma • Ecrire et lire dans la base de données Maîtriser Android 5 et Android 4 alphorm.com™©
  • 205. Une interface pour les Stocker les informations Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Une interface pour les préférences Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 206. Plan • Un type d’activité dédié : PreferenceActivity • Les écrans de préférence Maîtriser Android 5 et Android 4 alphorm.com™©
  • 207. Un type d’activité dédié • Construire une activité dédiée aux préférences • Dériver l’activité de PreferenceActivity • Préparer les fragments correspondants à chaque catégorie de préférences • Le stockage est automatique, puis utiliser Maîtriser Android 5 et Android 4 alphorm.com™© • Le stockage est automatique, puis utiliser PreferenceManager.getDefaultSharedPreference() pour le relire
  • 208. Les écrans de préférence • Chaque catégorie de préférence correspond à un « PreferenceScreen » Maîtriser Android 5 et Android 4 alphorm.com™©
  • 209. Ce qu’on a couvert • Un type d’activité dédié : PreferenceActivity • Les écrans de préférence Maîtriser Android 5 et Android 4 alphorm.com™©
  • 210. Prendre des photos Gérer le multimédia Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Prendre des photos Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 211. Plan • L’accès à l’appareil photo • Récupérer l’image obtenue • Stocker l’image dans un fichier • Contrôler directement l’appareil photo Maîtriser Android 5 et Android 4 alphorm.com™©
  • 212. L’accès à l’appareil photo • Penser à déclarer l’usage de l’appareil photo Requis ou non Maîtriser Android 5 et Android 4 alphorm.com™© • S’il n’est pas requis, il faudra tester la disponibilité de l’appareil photo
  • 213. Récupérer l’image obtenue • L’image peut-être récupérée sous la forme d’un bitmap Maîtriser Android 5 et Android 4 alphorm.com™©
  • 214. Stocker l’image dans un fichier • Une image stockée dans un fichier externe Créer le fichier (File) • Fournir une Uri l’Intent • putExtra(MediaStore.EXTRA_OUTPUT,Uri) Possible aussi de rajouter la photo dans la gallerie Maîtriser Android 5 et Android 4 alphorm.com™© • Possible aussi de rajouter la photo dans la gallerie
  • 215. Contrôler directement l’appareil photo • Utiliser l’objet Camera, représentant l’appareil photo • L’appareil photo doit être ouvert en pensant au temps long La fermeture doit être envisagée aussi • Possible de gérer une pré-visualisation Maîtriser Android 5 et Android 4 alphorm.com™© • Le paramétrage de l’appareil photo est représenté par Camera.Parameters
  • 216. Ce qu’on a couvert • L’accès à l’appareil photo • Récupérer l’image obtenue • Stocker l’image dans un fichier • Contrôler directement l’appareil photo Maîtriser Android 5 et Android 4 alphorm.com™© Impossible d'afficher l'image. Votre ordinateur manque peut-être de mémoire pour ouvrir l'image ou l'image est endommagée. Redémarrez l'ordinateur, puis ouvrez à nouveau le fichier. Si le x rouge est toujours affiché, vous devrez peut-être supprimer l'image avant de la réinsérer.
  • 217. Enregistrer des vidéos Gérer le multimédia Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Enregistrer des vidéos Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 218. Plan • Les permissions nécessaires • L’enregistrement d’une vidéo • Visualiser la vidéo Maîtriser Android 5 et Android 4 alphorm.com™©
  • 219. Les permissions nécessaires • Dans le manifest, <uses-feature> • Demander android.hardware.camera2 • Exigence ou non de la vidéo pour l’application Si non, tester sa présence avant Maîtriser Android 5 et Android 4 alphorm.com™©
  • 220. L’enregistrement d’une vidéo • Passer par une Intent • Le nom de l’intent est MediaStore.ACTION_VIDEO_CAPTURE • Lancer la vidéo Maîtriser Android 5 et Android 4 alphorm.com™©
  • 221. Visualiser la vidéo • Avec un contrôle VideoView • Accéder au résultat de l’Intent Maîtriser Android 5 et Android 4 alphorm.com™©
  • 222. Ce qu’on a couvert • Les permissions nécessaires • L’enregistrement d’une vidéo • Visualiser la vidéo Maîtriser Android 5 et Android 4 alphorm.com™©
  • 223. Imprimer des documents Gérer le multimédia Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Imprimer des documents Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 224. Plan • Les impressions sous Android • Imprimer une photo • Imprimer un document Maîtriser Android 5 et Android 4 alphorm.com™©
  • 225. Les impressions sous Android • Google Cloud Print Maîtriser Android 5 et Android 4 alphorm.com™© Impression dans Google Drive possible • Impression en PDF • Certaines imprimantes conncectées
  • 226. Imprimer une photo • Utiliser PrintHelper Positionner le layout avec setScaleMode Maîtriser Android 5 et Android 4 alphorm.com™©
  • 227. Imprimer un document • Créer sa propre sous-classe de PrintDocumentHelper et invoquer ce code Maîtriser Android 5 et Android 4 alphorm.com™©
  • 228. Imprimer un document • Le format du document est complètement défini dans votre classe héritant de PrintDocumentHelper Maîtriser Android 5 et Android 4 alphorm.com™© • Il faut implémenter 2 méthodes au moins La méthode onLayout, qui rend le nombre de pages La méthode onWrite, qui gère l’impression elle-même
  • 229. Ce qu’on a couvert • Les impressions sous Android • Imprimer une photo • Imprimer un document Maîtriser Android 5 et Android 4 alphorm.com™©
  • 230. Manipuler un document XML et HTTP Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Manipuler un document XML Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 231. Plan • L’interface XmlPullParser • Exemple de code utilisant XmlPullParser Maîtriser Android 5 et Android 4 alphorm.com™©
  • 232. L’interface XmlPullParser • Permet le parcours d’un document XML • La méthode next() retourne l’événement rencontré La valeur XmlPullParser.END_DOCUMENT représente la fin du document • START_DOCUMENT / END_DOCUMENT Maîtriser Android 5 et Android 4 alphorm.com™© • START_TAG / END_TAG • TEXT • La méthode nextToken() est plus bas niveau
  • 233. Exemple de code • Parcours du document en réagissant sur les événements • Un buffer Maîtriser Android 5 et Android 4 alphorm.com™©
  • 234. Ce qu’on a couvert • L’interface XmlPullParser • Exemple de code utilisant XmlPullParser Maîtriser Android 5 et Android 4 alphorm.com™©
  • 235. Se connecter avec HTTP XML et HTTP Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Se connecter avec HTTP Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 236. Plan • Le client HTTP • L’exécution asynchrone Maîtriser Android 5 et Android 4 alphorm.com™©
  • 237. Le client HTTP • Pour accéder au protocole HTTP • La classe HttpClient • Les requêtes sont représentées par des classes HttpGet, HttpPost, HttpPut… Maîtriser Android 5 et Android 4 alphorm.com™© • Ne pas oublier les permissions INTERNET
  • 238. L’exécution asynchrone • Ne pas bloquer le thread ihm par l’attente de la réponse web • Utiliser AsyncTask<Paramètres, Progression, Resultat> Maîtriser Android 5 et Android 4 alphorm.com™©
  • 239. Ce qu’on a couvert • Le client HTTP • L’exécution asynchrone Maîtriser Android 5 et Android 4 alphorm.com™©
  • 240. Solliciter un WebService XML et HTTP Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Solliciter un WebService RESTful Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 241. Plan • Définition des services REST • Lire une entité Maîtriser Android 5 et Android 4 alphorm.com™©
  • 242. Définition des services REST • Les webservices sont soit basés sur SOAP, soient utilisent simplement le protocole HTTP • Une service RESTful utilise les commandes HTTP GET pour récupérer une ressource DELETE pour supprimer une ressource Maîtriser Android 5 et Android 4 alphorm.com™© DELETE pour supprimer une ressource POST pour créer une ressource PUT pour mettre à jour une ressource • Les URL sont choisies pour identifier les ressources
  • 243. Lire une entité • Un objet peut être reconstruit à partir des données récupérées Format XML Format JSON Maîtriser Android 5 et Android 4 alphorm.com™©
  • 244. Ce qu’on a couvert • Définition des services REST • Lire une entité Maîtriser Android 5 et Android 4 alphorm.com™©
  • 245. Récupérer les infos de Gérer les infos utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Récupérer les infos de contacts Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 246. Plan • Les permissions • La liste des contacts • Le chargement des données Maîtriser Android 5 et Android 4 alphorm.com™©
  • 247. Les permissions • Modifier le manifest • Ajouter une balise pour accéder aux contacts Maîtriser Android 5 et Android 4 alphorm.com™©
  • 248. La liste des contacts • Une ListView dans le layout Maîtriser Android 5 et Android 4 alphorm.com™© • Connexion entre liste et curseur
  • 249. Le chargement des données • Implémentation • Méthode de chargement Maîtriser Android 5 et Android 4 alphorm.com™©
  • 250. Ce qu’on a couvert • Les permissions • La liste des contacts • Le chargement des données Maîtriser Android 5 et Android 4 alphorm.com™©
  • 251. Modifier les contacts par Gérer les infos utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Modifier les contacts par les Intents Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 252. Plan • Accéder aux contacts via les Intents • Ajouter un contact dans la liste Maîtriser Android 5 et Android 4 alphorm.com™©
  • 253. Ajouter via les Intents • Chercher l’application qui insère dans les contacts Maîtriser Android 5 et Android 4 alphorm.com™© • Possibilités de fournir des infos sur le contact en cours d’insertion
  • 254. Ajouter, Editer • Pour ajouter, démarrer l’activité simplement après avoir fourni les informations • Pour éditer un contact spécifique, positionner setDataAndType(…) • En fournissant l’URI sur le contact préalablement sélectionné Maîtriser Android 5 et Android 4 alphorm.com™© • Il existe une action qui laisse le choix à l’utilisateur ACTION_INSERT_OR_EDIT Lancer l’intent correspondant
  • 255. Ce qu’on a couvert • Accéder aux contacts via les Intents • Ajouter un contact dans la liste Maîtriser Android 5 et Android 4 alphorm.com™©
  • 256. Utiliser les localisations Gérer les infos utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Utiliser les localisations Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 257. Plan • Les permissions et les installations • Créer un GoogleApiClient • Réagir sur les callbacks Maîtriser Android 5 et Android 4 alphorm.com™©
  • 258. Les permissions et les installations • Le plus simple est d’utiliser les services Google Installer par le DSK manager Déclarer dans le script Gradle Déclarer dans le manifest Maîtriser Android 5 et Android 4 alphorm.com™© • Permissions
  • 259. Créer un GoogleApiClient • GoogleApiClient est un point d’entrée dans les divers services google • Positionner lors de la création de cet objet les services attendus Maîtriser Android 5 et Android 4 alphorm.com™©
  • 260. Réagir sur les callbacks • Lors de la connexion, les infos sont récupérées • La connexion doit être démarrée et arrêtée Maîtriser Android 5 et Android 4 alphorm.com™© • La callback exploite les données
  • 261. Ce qu’on a couvert • Les permissions et les installations • Créer un GoogleApiClient • Réagir sur les callbacks Maîtriser Android 5 et Android 4 alphorm.com™©
  • 262. Localisation et adresse Gérer les infos utilisateur Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Localisation et adresse Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 263. Plan • Utilisation de Geocoder • Préparation d’un receveur • Lancement d’un service Maîtriser Android 5 et Android 4 alphorm.com™©
  • 264. Utilisation d’un Geocoder • Classe android.location.Geocoder • Récupère des noms de localisation à partir de coordonnées Maîtriser Android 5 et Android 4 alphorm.com™©
  • 265. Préparation d’un receveur • Un receveur est une classe dont les méthodes seront rappelées • Il faudra mettre à jour l’ihm dans le thread UI Maîtriser Android 5 et Android 4 alphorm.com™©
  • 266. Lancement d’un service • Un service fonctionne en arrière-plan Idéal pour la connexion à la récupération des noms d’adresses Maîtriser Android 5 et Android 4 alphorm.com™©
  • 267. Lancement d’un service • Utiliser startService(…) Maîtriser Android 5 et Android 4 alphorm.com™© • Déclarer le service dans le manifest
  • 268. Accéder au thread UI à partir d’un autre • Il est interdit de modifier l’ihm à partir d’un autre thread Maîtriser Android 5 et Android 4 alphorm.com™©
  • 269. Ce qu’on a couvert • Utilisation de Geocoder • Préparation d’un receiver • Lancement d’un service Maîtriser Android 5 et Android 4 alphorm.com™©
  • 270. Créer des notifications Android wear Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Créer des notifications Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 271. Plan • Préparation pour des notifications • Lancer une notification Maîtriser Android 5 et Android 4 alphorm.com™©
  • 272. Préparations pour des notifications • Modifier le script Gradle • Rajouter la dépendance à la bibliothèque v4-support Maîtriser Android 5 et Android 4 alphorm.com™©
  • 273. Lancer une notification • Lancement de la notification à la fois sur l’appareil principal et la montre connectée Maîtriser Android 5 et Android 4 alphorm.com™©
  • 274. Ce qu’on a couvert • Préparation pour des notifications • Lancer une notification Maîtriser Android 5 et Android 4 alphorm.com™©
  • 275. Créer une application Android wear Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Créer une application wearable Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 276. Plan • Prérequis • Exécution dans un AVD spécifique Maîtriser Android 5 et Android 4 alphorm.com™©
  • 277. Prérequis • Une application wearable tourne sur l’appareil connecté, mais indépendamment du mobile • Mais il faut une application mobile pour installer l’application wearable sur la montre connectée • Mises à jour nécessaires Maîtriser Android 5 et Android 4 alphorm.com™© Les SDK Tools ne version 23 mini S