SlideShare uma empresa Scribd logo
1 de 143
Baixar para ler offline
31/12/2015
1
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation
Android Avancé
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
2
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Présentation de votre formateur
• Qu’est ce que Android ?
• Présentation de votre formation
• Le plan de la formation
• Public concerné
• Prérequis de la formation
31/12/2015
2
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Présentation de votre formateur
• Qu’est ce que Android ?
• Présentation de votre formation
• Le plan de la formation
• Public concerné
• Prérequis de la formation
31/12/2015
4
Formation Développement avancé sous Android 5 alphorm.com™©
Mes formations sur alphorm
31/12/2015
5
Formation Développement avancé sous Android 5 alphorm.com™©
Qu’est-ce que Android ?
• Plateforme mobile dominante
• Ouverte, liée à Java
• Riche de bibliothèques
• Il est possible de programmer autrement qu’en Java
31/12/2015
6
Formation Développement avancé sous Android 5 alphorm.com™©
Plan de la formation
• Les capteurs embarqués
• L’accès aux données
• Les détails sur les Intents
• L’interface graphique
• Divers plateforme
31/12/2015
7
Formation Développement avancé sous Android 5 alphorm.com™©
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
31/12/2015
8
Formation Développement avancé sous Android 5 alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Et … du courage comme toujours !
• Avoir vu la formation précédente : http://www.alphorm.com/tutoriel/formation-en-ligne-
android-5
31/12/2015
9
Formation Développement avancé sous Android 5 alphorm.com™©
Les autres formations dév sur Alphorm
31/12/2015
10
Formation Développement avancé sous Android 5 alphorm.com™©
Are you ready ? ☺
31/12/2015
11
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le GPS
Les capteurs embarqués
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
12
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Package et classes
• Obtenir la position
• Savoir utiliser la position
• Déterminer l’intérêt d’une position
• Simuler une position
31/12/2015
13
Formation Développement avancé sous Android 5 alphorm.com™©
Package et classes
• Package android.location
• Ne pas confondre avec Google Location Services API
• La classe LocationManager : détermine la position et accède au matériel
• Possibilités de
Récupérer les anciennes positions
Suivre les mises à jour périodiques de la position
Enregistrer une alerte à l’approche d’un point
31/12/2015
14
Formation Développement avancé sous Android 5 alphorm.com™©
Obtenir la position
• Les sources d’information sont variées : GPS, cellulaire, wifi
• Utiliser le gestionnaire de position
Classe android.location.Location
• S’abonner aux changements de positions
Classe android.location.LocationListener
31/12/2015
15
Formation Développement avancé sous Android 5 alphorm.com™©
Savoir utiliser la position
• L’accès à la position doit être déclaré dans le manifest
android.permission.ACCESS_COARSE_LOCATION et ACCESS_FINE_LOCATION
• Il faut trouver à quel moment activer la recherche de position
• Eviter de bloquer l’utilisateur
• Penser à arrêter la recherche
• Penser à la batterie
Réduire la fréquence de mise à jour de la position
Réduire les fournisseurs
31/12/2015
16
Formation Développement avancé sous Android 5 alphorm.com™©
Déterminer l’intérêt d’une position
• Lorsqu’on acquiert une nouvelle position
Est-elle vraiment plus récente ?
Est-elle vraiment plus précise ?
D’où vient cette nouvelle information ?
31/12/2015
17
Formation Développement avancé sous Android 5 alphorm.com™©
Simuler une position
• Par l’émulateur, sélectionner la position
• En utilisant DDMS
• Par la console de l’émulateur
Utiliser geo fix <geoloc>
31/12/2015
18
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Package et classes
• Obtenir la position
• Savoir utiliser la position
• Déterminer l’intérêt d’une position
• Simuler une position
31/12/2015
19
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le NFC
Les capteurs embarqués
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
20
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• La technologie NFC avec Android
• L’analyse des messages NDEF
• Le manifeste pour NFC
• La lecture des messages
• L’écriture des messages
• Android Beam
31/12/2015
21
Formation Développement avancé sous Android 5 alphorm.com™©
La technologie NFC avec Android
• NFC permet d’échanger de petits volumes de données
• Les modes de fonctionnement sont
Reader/writer : lecture / écriture sur un tag
P2P : échange entre 2 matériels
Emulation de carte : le matériel sert comme une carte (de paiement)
• Les données NFC sont fournies sous la forme de messages
• La lecture des données utilise le système de répartition de tag
• Android Beam permet de pousser un message NDEF
31/12/2015
22
Formation Développement avancé sous Android 5 alphorm.com™©
L’analyse des messages NDEF
• Bien que plusieurs formats soient possibles, il sera plus simple d’utiliser
ce format standard
• Les messages sont gérés par le « Tag Message System » qui analyse les
tags et démarre une application intéressée
• Une application doit donc déclarer un filtre « intent » et gérer les
données
• Un messages NDEF est NdefMessage contient des NdefRecord
• Un NdefRecord contient : TNF, type, id, données
• Les infos Type Name Format et type vont correspondre aux types MIME
et URI
31/12/2015
23
Formation Développement avancé sous Android 5 alphorm.com™©
Analyse des messages
• Si le système réussit à découvrir le type MIMI ou l’URI, alors l’intent
utilisé est ACTION_NDEF_DISCOVERED (avec les données associées)
• Sinon l’intent est ACTION_TECH_DISCOVERED
• Il y a 7 TNF prédéfinis
• Pour le TNF TNF_WELL_KNOWN, il y a 7 RTD (Record type definition)
prédéfinis
• Le système recherche ensuite les applications qui savent répondre à :
ACTION_NDEF_DISCOVERED, ACTION_TECH_DISCOVERED,
ACTION_TAG_DISCOVERED
31/12/2015
24
Formation Développement avancé sous Android 5 alphorm.com™©
Le manifeste pour NFC
• Il faut déclarer dans le manifeste l’utilisation de NFC
Permission : android.permission.NFC
• Il y a des limitations en fonction du niveau du sdk
API9 a seulement un support limité, les autres niveaux importants sont API10,
API14
• Il faudra aussi limité la présentation dans Google Play
Il est aussi possible de tester runtime la présence du NFC
31/12/2015
3
Formation Développement avancé sous Android 5 alphorm.com™©
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
• 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/
Mon profil Alphorm : http://www.alphorm.com/formateur/fabien-brissonneau
31/12/2015
26
Formation Développement avancé sous Android 5 alphorm.com™©
L’écriture des messages
• Le protocole NDEF est simple car bien implémenté sous Android
• 3 méthodes sont disponibles : createUri(), createExternal(), createMime()
• TNF_WELL_KNOWN et RTD_TEXT
• TNF_WELL_KNOWN et RTD_URI
31/12/2015
27
Formation Développement avancé sous Android 5 alphorm.com™©
Android Beam
• Echanges P2P entre deux machines Android
• Méthodes setNdefPushMessage et stNdefPushMessageCallback
• L’envoi de message se fait lorsque les appareils sont proches
31/12/2015
28
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• La technologie NFC avec Android
• L’analyse des messages NDEF
• Le manifeste pour NFC
• La lecture des messages
• L’écriture des messages
• Android Beam
31/12/2015
29
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
La caméra
Les capteurs embarqués
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
30
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• La capture d’images
• Enregistrer la caméra
• La capture de vidéos
• Visualiser une vidéo
31/12/2015
31
Formation Développement avancé sous Android 5 alphorm.com™©
La capture d’images
• Mettre à jour le manifeste afin qu’il utilise la caméra
Permission android.permission.camera
Fonctionnalité android.hardware.camera
• Le plus simple est de déclencher la caméra native par Intent
• L’image sera récupérée à l’issue de la saisie par la caméra
31/12/2015
32
Formation Développement avancé sous Android 5 alphorm.com™©
Enregistrer la caméra
• Il est possible de prendre la photo et de la sauvegarder dans la foulée
• L’image est enregistrée dans la gallerie
• Elle reste publique en utilisant getExternalStoragePublicDirectory()
• Il est possible de la garder privée avec getExternalFilesDir ()
31/12/2015
33
Formation Développement avancé sous Android 5 alphorm.com™©
La capture de vidéos
• Un contrôle est proposé VideoView
• Beaucoup de fonctionnalités
• Intent à utiliser MediaStore.ACTION_VIDEO_CAPTURE
• Il est possible de capturer et de visualiser la vidéo
31/12/2015
34
Formation Développement avancé sous Android 5 alphorm.com™©
Visualiser une vidéo
• Avec videoView.setVideoURI(…)
• Trouver la ressource avec Uri.parse(« … »)
• Les fichiers supportés (formats conteneur) sont
.webm : format ouvert web VP8/Vorbis
.3gp : version simplifiée du mp4
.mp4 :
.mkv : format ouvert Matroska
31/12/2015
35
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• La capture d’images
• Enregistrer la caméra
• La capture de vidéos
• Visualiser une vidéo
31/12/2015
36
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le micro
Les capteurs embarqués
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
37
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• La capture audio
• La sauvegarde de l’enregistrement
• La lecture d’un fichier audio
31/12/2015
38
Formation Développement avancé sous Android 5 alphorm.com™©
La capture audio
• La classe android.media.MediaRecorder
• Le micro est MediaRecorder.AudioSource.MIC
• Il faut positionner la source audio sur le MediaRecorder
• Puis on démarre et on stoppe l’enregistrement avec start et stop
31/12/2015
39
Formation Développement avancé sous Android 5 alphorm.com™©
La sauvegarde de l’enregistrement
• La sauvegarde dans un fichier
• Fournir les informations suivantes
Quel fichier ?
Quel format ?
Quel encodage ?
31/12/2015
40
Formation Développement avancé sous Android 5 alphorm.com™©
La lecture d’un fichier audio
• Utiliser le MediaPlayer
• Fournir un fichier contenant le son à jouer
• Utiliser encore start et stop
31/12/2015
41
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• La capture audio
• La sauvegarde de l’enregistrement
• La lecture d’un fichier audio
31/12/2015
42
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le wifi
Les capteurs embarqués
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
43
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Le package android.net.wifi
• La recherche des réseaux
• Le WifiP2P
31/12/2015
44
Formation Développement avancé sous Android 5 alphorm.com™©
Le package android.net.wifi
• WifiConfiguration : représentation d’un réseau Wifi
• ScanResult : les informations d’un point d’accès
• WifiManager : le premier point d’entrée dans l’API
• Nécessite les permissions suivantes
ACCESS_WIFI_STATE
CHANGE_WIFI_STATE
CHANGE_WIFI_MULTICAST_STATE
• Il y a aussi un feature à déclarer éventuelleme
31/12/2015
45
Formation Développement avancé sous Android 5 alphorm.com™©
La recherche des réseaux
• Instance récupérée : Context.getSystemService(Context.WIFI_SERVICE)
• Permet de lister les réseaux configurés
• Fournit le réseau actuel
• Scanne les points d’accès
• Définit les Intent nécessaire
31/12/2015
46
Formation Développement avancé sous Android 5 alphorm.com™©
Le WifiP2P
• Connection directe entre 2 appareils sans point d’accès
• La classe essentielle est WifiP2pManager
• Des Listeners permettent de gérer les événements
• Des Intents pour réagir sur des événements spécifiques
Connexion abandonnée
Pair connecté
• Sdk minimum 14
• Permissions ACCESS_NETWORK_STATE, CHANGE_NETWORK_STATE et
INTERNET
31/12/2015
47
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Le package android.net.wifi
• La recherche des réseaux
• Le WifiP2P
31/12/2015
48
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le Bluetooth
Les capteurs embarqués
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
49
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Le package android.bluetooth
• La mise en oeuvre
• La recherche des matériels
• L’établissement de connexions
31/12/2015
50
Formation Développement avancé sous Android 5 alphorm.com™©
Le package android.bluetooth
• BluetoothAdapter est le point d’entrée principal, permet de découvrir le
matériel
• BluetoothDevice représente un matériel, à utiliser pour solliciter une
communication
• BluetoothSocket est la connexion, utilisée via des Input/Output Stream
• BluetoothServerSocket est la connexion côté serveur
• BluetoothClass représente les possibilités d’un matériel
31/12/2015
51
Formation Développement avancé sous Android 5 alphorm.com™©
La mise en oeuvre
• Ne pas oublier la permission android.permission.BLUETOOTH
• Utiliser BluetoothAdapter pour avoir un accès
• Possibilité d’activer le Bluetooth
31/12/2015
52
Formation Développement avancé sous Android 5 alphorm.com™©
La recherche de matériels
• Recherche de matériels appariés
• Liste des appareils
• Pour découvrir les appareils
31/12/2015
53
Formation Développement avancé sous Android 5 alphorm.com™©
L’établissement de connexions
• Il faut un serveur et un client
• La connexion en tant que serveur : BluetoothServerSocket
• On accept() la connexion et on close()
• Du côté client, on utilise un BluetoothSocket
• Initialise la connexion avec connect()
• Les échanges sont réalisés via getInputStream() et getOutputStream()
31/12/2015
54
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Le package android.bluetooth
• La mise en oeuvre
• La recherche des matériels
• L’établissement de connexions
31/12/2015
55
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Utiliser SQLite
L’accès aux données
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
56
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Les bases de données SQLite
• Les classes
• Exemple complet de code
31/12/2015
57
Formation Développement avancé sous Android 5 alphorm.com™©
Les bases de données SQLite
• Une des options de stockage
• La base ainsi créée sera accessible de toute classe de l’application
• La base sera privée
• Permet l’exécution de SQL
• Android n’impose rien au-delà des concepts SQLite standards
Il est néanmoins préférable de créer un champ id autoincrémenté
L’utilisation d’un Content Provider nécessite un id unique
• On peut déboguer la base de données à distance
31/12/2015
58
Formation Développement avancé sous Android 5 alphorm.com™©
Les classes
• La classe SQLiteOpenHelper est en général dérivée
• La classe SQLiteDatabase représente la database et fournit les
méthodes pour les opérations SQL
• Si la requête SQL est complexe, on peut utiliser SQLiteQueryBuilder
• Les requêtes retournent un itérateur Cursor
31/12/2015
59
Formation Développement avancé sous Android 5 alphorm.com™©
Exemple complet de code
• Un SQLiteOpenHelper
• Pour insérer
• Pour récupérer
31/12/2015
60
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Les bases de données SQLite
• Les classes
• Exemple complet de code
31/12/2015
61
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les Content Provider
L’accès aux données
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
62
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Définition
• Créer et utiliser un Content Provider
• Utiliser Contacts Provider
• Utiliser Calendar Provider
31/12/2015
63
Formation Développement avancé sous Android 5 alphorm.com™©
Définition
• Gestion des accès à des données structurées
• Un Content Provider encapsule les données
• C’est donc le moyen standard pour un processus d’accéder à des
données dans un autre processus
• ContentResolver pour obtenir un accès en tant que client
• ContentProvider pour servir de point d’entrée vers les données
• Le package android.provider référence des fournisseurs standards
31/12/2015
64
Formation Développement avancé sous Android 5 alphorm.com™©
Créer un Content Provider
• Des données, une classe concrète, les URIs, les autorisations
• Les URIs pointent vers les données (nom, table, id)
• Il faut implémenter les méthodes
31/12/2015
65
Formation Développement avancé sous Android 5 alphorm.com™©
Utiliser un Content Provider
• Récupérer un ContentResolver : getContentResolver()
• Faire la requête avec la bonne URL…
• Ne pas oublier les permissions éventuelles
• Le mieux est de disposer de classes définissant les constantes
Les « contrats »
31/12/2015
66
Formation Développement avancé sous Android 5 alphorm.com™©
Utiliser Contacts Provider
• Les tables accessibles sont Contacts, RawContacts et Data
• Permissions nécessaires READ_CONTACTS/WRITE_CONTACTS
• Dans ces tables de contrats, les constantes…
31/12/2015
67
Formation Développement avancé sous Android 5 alphorm.com™©
Utiliser Calendar Provider
• La classe CalendarContract
• Contient les calendriers, les événements, ….
• Exemple avec Events
31/12/2015
68
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Définition
• Créer et utiliser un Content Provider
• Utiliser Contacts Provider
• Utiliser Calendar Provider
31/12/2015
69
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Explicite et implicite
Détails sur les Intents
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
70
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Les cas d’usage
• Les types d’Intents
• Le contenu d’un Intent
• Les <intent_filter>
• Quelques Intents
31/12/2015
71
Formation Développement avancé sous Android 5 alphorm.com™©
Les cas d’usage
• 3 cas d’usage principaux
• Pour démarrer une activité
Passer un Intent à startActivity. L’Intent décrit l’activité et les paramètres
Possible d’attendre un résultat avec startActivityForResult / onActivityResult
• Pour démarrer un service
Avec startService, démarrerun service (application sans ihm)
• Pour faire un broadcast
Un broadcast est un message que toute application peut recevoir
Utiliser sendBroadcast, sendOrderedBroadcast ou sendStickyBroadcast
31/12/2015
72
Formation Développement avancé sous Android 5 alphorm.com™©
Les types d’Intent
• Intent implicite
Donner le nom d’une action générale
Un composant d’une autre application va traiter le sujet
Le système trouve la bonne application en utilisant les intent-filters déclarés
dans les « manifest »
• Intent explicite
Fournir le nom de la classe de l’activité à démarrer
Typiquement à l’intérieur de la même application
31/12/2015
73
Formation Développement avancé sous Android 5 alphorm.com™©
Contenu d’un Intent
• Nom du composant
Si présent, l’Intent est explicite, sinon implicite
• Action
Chaîne de caractères donnant l’action à réaliser, comme ACTION_VIEW, ACTION_SEND
• Données
Un URI qui référence les données (fichier à ouvrir,…) souvent type MIME
• Catégorie
Info additionnelle, comme CATEGORY_BROWSABLE, CATEGORY_LAUNCHER
• Extras
Paires clé-valeur fournissant de l’information pour exécuter la tâche
• Flags
Métadonnées sur l’Intent (pour le système Android)
31/12/2015
74
Formation Développement avancé sous Android 5 alphorm.com™©
Les <intent-filter>
• Pour répondre à un Intent implicite, spécifié dans le manifest
• <action> : chaîne littérale pour l’action à traiter
• <category> : doit contenir DEFAULT pour un Intent implicite
• <data> : spécifie un URI et ou un type MIME
31/12/2015
4
Formation Développement avancé sous Android 5 alphorm.com™©
Mes formations sur alphorm
31/12/2015
4
Formation Développement avancé sous Android 5 alphorm.com™©
Mes formations sur alphorm
31/12/2015
4
Formation Développement avancé sous Android 5 alphorm.com™©
Mes formations sur alphorm
31/12/2015
4
Formation Développement avancé sous Android 5 alphorm.com™©
Mes formations sur alphorm
31/12/2015
4
Formation Développement avancé sous Android 5 alphorm.com™©
Mes formations sur alphorm
31/12/2015
4
Formation Développement avancé sous Android 5 alphorm.com™©
Mes formations sur alphorm
31/12/2015
81
Formation Développement avancé sous Android 5 alphorm.com™©
Les Catégories
• Un Intent doit passer au moins une catégorie spécifiée
• La catégorie DEFAULT est automatiquement appliquée par le système
pour tout Intent implicite
Il faut donc ajouter cette catégorie systématiquement au filtre afin de
recevoir les Intents implicites
31/12/2015
82
Formation Développement avancé sous Android 5 alphorm.com™©
Les Données
• Chaque donnée peut spécifier un URI et un Type
• L’URI est constitué
• L’URI sert à sélectionner un Intent.
31/12/2015
83
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• La résolution des Intents
• Les Actions
• Les Catégories
• Les Données
31/12/2015
84
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Intent vs PendingIntent
Détails sur les Intents
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
85
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Définition
• Cas d’utilisation
• Mise en oeuvre
31/12/2015
86
Formation Développement avancé sous Android 5 alphorm.com™©
Définition
• Un PendingIntent est créé sur un Intent
• Fournir un PendingIntent à une autre application
Pour que l’autre ait les mêmes droits
Faire attention à la façon dont l’Intent est défini (nom de composant)
• Instances créées par getActivity, getActivities, getBroadcast et
getService
• Suivant les arguments, cela peut créer un nouvel objet ou bien modifier
un objet existant
31/12/2015
87
Formation Développement avancé sous Android 5 alphorm.com™©
Cas d’utilisation
• Démarrer une activité
On fournit : le contexte, un « request code », l’Intent qui est spécifié, un flag
• Générer un broadcast
• Démarrer un service
31/12/2015
88
Formation Développement avancé sous Android 5 alphorm.com™©
Mise en oeuvre
• Exemple pour utilisation dans un Widget
• Un Widget fonctionne dans un hôte
Mais est généré par une autre application
• Le Widget typiquement démarre un Intent
Qui appartient à l’autre application
31/12/2015
89
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Définition
• Cas d’utilisation
• Mise en oeuvre
31/12/2015
90
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les notifications
Détails sur les Intents
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
91
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Définition
• Créer une notification
• Notification et Intent
31/12/2015
92
Formation Développement avancé sous Android 5 alphorm.com™©
Définition
• Une notification est un message qui peut être affiché en dehors de
l’interface utilisateur de l’application
• Dans un premier temps, dans l’aire des notifications
• Pour l’utilisateur ouvrira le dessinateur de notifications
31/12/2015
93
Formation Développement avancé sous Android 5 alphorm.com™©
Créer une notification
• Utiliser NotificationCompat.Builder (ou Notification.Builder)
• Créer la notification avec l’appel à build()
• Passer l’objet notification à NotificationManager.notify()
• Eléments indispensables :
Une icône petite ‘setSmallIcon(..)’
Un titre ‘setContentTitle()’
Un texte ‘setContentText()’
31/12/2015
94
Formation Développement avancé sous Android 5 alphorm.com™©
Notification et Intent
• Créer un PendingIntent
• Utiliser setContentIntent(…) sur le builder
• Faire attention à reconstituer une pile des activités
• Notifier
31/12/2015
95
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Définition
• Créer une notification
• Notification et Intent
31/12/2015
96
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les receveurs broadcast
Détails sur les Intents
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
97
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Définitions
• Réception de broadcast
• Emission d’un broadcast
31/12/2015
98
Formation Développement avancé sous Android 5 alphorm.com™©
Définitions
• Un receveur de broadcast est un composant enregistré pour recevoir
des événements systèmes ou applicatifs
• Un receveur peut être enregistré
Statiquement dans le manifest
Dynamiquement avec Context.registerReceiver(…)
• Il faut dériver BroadcastReceiver
• Et redéfinir onReceive(…)
31/12/2015
99
Formation Développement avancé sous Android 5 alphorm.com™©
Réception de broadcast
• Définition d’un receiver
<receiver android:name="MyBroadcastReceiver" > </receiver>
• Sélection d’un receiver pour suivre l’état des appels téléphone
<receiver android:name="MyPhoneReceiver" >
• <intent-filter>
- <action android:name="android.intent.action.PHONE_STATE" > </action>
• </intent-filter>
</receiver>
31/12/2015
5
Formation Développement avancé sous Android 5 alphorm.com™©
Qu’est-ce que Android ?
• Plateforme mobile dominante
• Ouverte, liée à Java
• Riche de bibliothèques
• Il est possible de programmer autrement qu’en Java
31/12/2015
5
Formation Développement avancé sous Android 5 alphorm.com™©
Qu’est-ce que Android ?
• Plateforme mobile dominante
• Ouverte, liée à Java
• Riche de bibliothèques
• Il est possible de programmer autrement qu’en Java
31/12/2015
5
Formation Développement avancé sous Android 5 alphorm.com™©
Qu’est-ce que Android ?
• Plateforme mobile dominante
• Ouverte, liée à Java
• Riche de bibliothèques
• Il est possible de programmer autrement qu’en Java
31/12/2015
5
Formation Développement avancé sous Android 5 alphorm.com™©
Qu’est-ce que Android ?
• Plateforme mobile dominante
• Ouverte, liée à Java
• Riche de bibliothèques
• Il est possible de programmer autrement qu’en Java
31/12/2015
5
Formation Développement avancé sous Android 5 alphorm.com™©
Qu’est-ce que Android ?
• Plateforme mobile dominante
• Ouverte, liée à Java
• Riche de bibliothèques
• Il est possible de programmer autrement qu’en Java
31/12/2015
5
Formation Développement avancé sous Android 5 alphorm.com™©
Qu’est-ce que Android ?
• Plateforme mobile dominante
• Ouverte, liée à Java
• Riche de bibliothèques
• Il est possible de programmer autrement qu’en Java
31/12/2015
106
Formation Développement avancé sous Android 5 alphorm.com™©
Initialisation
• Pour constituer le drawer, il faut le remplir avec des éléments
• Si le drawer est représenté par une liste
• Chaque item peut être un élément complexe, typiquement un TextView
31/12/2015
107
Formation Développement avancé sous Android 5 alphorm.com™©
Navigation
• Réagir sur le clic d’un item, repéré par sa position
• Choisir la page en fonction de l’item
31/12/2015
108
Formation Développement avancé sous Android 5 alphorm.com™©
Améliorer le drawer
• Placer un entête : fournir un layout spécifique, avec images, …
• Placer des icônes : chaque item est donc bien plus qu’un TextView
• Nécessite de créer son propre adaptateur de vue pour que la liste
accepte des items plus complexes que du texte
• Il est possible d’utilise des bibliothèques tierces qui fournissent des
moyens simples de construire ce menu
31/12/2015
109
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Utilisations
• Mise en place
• Initialisation
• Navigation
• Améliorer le Drawer
31/12/2015
110
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le Floating Action
Button
L’interface graphique
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
111
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Utilisations
• Création de la forme
• Conception de l’interface
• Initialisation et réaction
31/12/2015
112
Formation Développement avancé sous Android 5 alphorm.com™©
Utilisations
• A utiliser pour une action mise en avant
• Une icône flottante sur l’interface
• Possède des comportements de déplacement
• Taille 24x24 dans un cercle 56x56
• Le bouton FAB a une couleur rose lors du tap
• Un seul bouton FAB par écran, une action positive, forme ronde, mais
pas de 3D
31/12/2015
113
Formation Développement avancé sous Android 5 alphorm.com™©
Création de la forme
• Le bouton doit être placé dans un cercle
• Définir un « drawable » qui donne la structure au bouton
• L’image elle-même est en rapport avec l’action à lancer
31/12/2015
114
Formation Développement avancé sous Android 5 alphorm.com™©
Conception de l’interface
• En général, en bas à droite
• Positionner le bouton par gravité
• Possibilité de le placer où on le souhaite
31/12/2015
6
Formation Développement avancé sous Android 5 alphorm.com™©
Plan de la formation
• Les capteurs embarqués
• L’accès aux données
• Les détails sur les Intents
• L’interface graphique
• Divers plateforme
31/12/2015
116
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Utilisations
• Création de la forme
• Conception de l’interface
• Initialisation et réaction
31/12/2015
117
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Toast et Snackbar
L’interface graphique
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
118
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Généralités
• Usages
• Mise en œuvre de Snackbar
• Toast
31/12/2015
119
Formation Développement avancé sous Android 5 alphorm.com™©
Généralités
• Snackbar permet d’afficher des messages brefs en bas d’écran
• Snackbar peut être lié à une action
• Snackbar peut être glissé en dehors de l’écran
• Toast est semblable mais
Ne peut pas être lié à une action
Ne peut pas être glissé
Correspond plutôt à des messages systèmes
31/12/2015
120
Formation Développement avancé sous Android 5 alphorm.com™©
Usages
• Un seul Snackbar peut apparaître à la fois
• Disposé en bas de l’écran, au niveau du FAB
• Ne bloquent pas la saisie
• Disparaissent lorsqu’on les glisse sur le côté ou bien time-out
• Message textuel très court
• Contient ou pas une action
• Taille variante en fonction de l’appareil
Sur mobile, 48 ou 80dp, police Roboto Regular 14sp
31/12/2015
121
Formation Développement avancé sous Android 5 alphorm.com™©
Mise en oeuvre
• Snackbar
Visualise le message, avec un CoordinatorLayout, déplace le FAB
Possibilité de lier une action
31/12/2015
122
Formation Développement avancé sous Android 5 alphorm.com™©
Toast
• Plutôt messages systèmes
31/12/2015
123
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Généralités
• Usages
• Mise en œuvre de Snackbar
• Toast
31/12/2015
124
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Gérer le copier-coller
Divers plateforme
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
125
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Le framework
• Les classes du presse-papier
• Mise en œuvre de la copie
• Mise en œuvre du collage
31/12/2015
126
Formation Développement avancé sous Android 5 alphorm.com™©
Le framework
• Pour copier-coller, on sélectionne un objet que l’on place dans le
presse-papier
• Le format de l’objet copié peut être :
Du texte : une simple chaîne est copiée
Un URI : représente une information complexe, comme un accès à un data
provider
Un Intent
• Un seul objet existe à un moment donné dans le presse-papier
31/12/2015
127
Formation Développement avancé sous Android 5 alphorm.com™©
Les classes du presse papier
• ClipboardManager, obtenu via un appel à getSystemService
getSystemService(CLIPBOARD_SERVICE)
• ClipData contient
plusieurs ClipData.Item : un CharSequence, un Uri, ou un Intent
Et 1 seule ClipDescription : métadonnées (sous forme de type MIME)
• Plusieurs Item dans un ClipData signifie copie de plusieurs sélections à
la fois
• Méthodes utiles de ClipData : newPlainText, newUri, newIntent,
Item.coerceToText
31/12/2015
128
Formation Développement avancé sous Android 5 alphorm.com™©
Mise en œuvre de la copie
• Trouver le manager
• Créer un « clip »
31/12/2015
129
Formation Développement avancé sous Android 5 alphorm.com™©
Mise en œuvre du collage
• Trouver le manager
• Déterminer si le presse-papier contient des données
• Si les données sont d’un type que je sais traiter
31/12/2015
130
Formation Développement avancé sous Android 5 alphorm.com™©
Ce qu’on a couvert
• Le framework
• Les classes du presse-papier
• Mise en œuvre de la copie
• Mise en œuvre du collage
31/12/2015
131
Formation Développement avancé sous Android 5 alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les animations
Divers plateforme
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
31/12/2015
132
Formation Développement avancé sous Android 5 alphorm.com™©
Plan
• Définition
• Animation dans une vue
• Animation entre vues
• Animations entre bornes
31/12/2015
133
Formation Développement avancé sous Android 5 alphorm.com™©
Définition
• Une animation est un changement de caractéristiques d’un élément
visuel au cours du temps
• Une animation peut être gérée par un composant
• Une animation peut être introduite entre des vues
• Une animation peut être le résultat d’une interpolation entre des bornes
31/12/2015
134
Formation Développement avancé sous Android 5 alphorm.com™©
Animation dans une vue
• Ajouter des items dans une vue peut automatiquement déclencher une
animation
• Exemple avec LinearLayout
31/12/2015
135
Formation Développement avancé sous Android 5 alphorm.com™©
Animation entre vues
• Pour aménager le passage d’une vue à l’autre
• Par exemple, disparition progressive d’une vue remplacée par une autre
31/12/2015
136
Formation Développement avancé sous Android 5 alphorm.com™©
Animation interpolée
• L’animation peut être définie dans un fichier XML
• Appliquée dynamiquement
• Applicable sur n’importe quel élément graphique
31/12/2015
7
Formation Développement avancé sous Android 5 alphorm.com™©
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
31/12/2015
7
Formation Développement avancé sous Android 5 alphorm.com™©
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
31/12/2015
7
Formation Développement avancé sous Android 5 alphorm.com™©
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
31/12/2015
7
Formation Développement avancé sous Android 5 alphorm.com™©
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
31/12/2015
7
Formation Développement avancé sous Android 5 alphorm.com™©
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
31/12/2015
7
Formation Développement avancé sous Android 5 alphorm.com™©
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
31/12/2015
7
Formation Développement avancé sous Android 5 alphorm.com™©
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

Mais conteúdo relacionado

Mais procurados

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-ssAlphorm
 
Alphorm.com Support de la Formation Windows 10 Troubleshooting avancé
Alphorm.com Support de la Formation Windows 10 Troubleshooting avancéAlphorm.com Support de la Formation Windows 10 Troubleshooting avancé
Alphorm.com Support de la Formation Windows 10 Troubleshooting avancé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 VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm
 
alphorm.com - Formation XenSources
alphorm.com - Formation XenSourcesalphorm.com - Formation XenSources
alphorm.com - Formation XenSourcesAlphorm
 
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ésAlphorm
 
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 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 Windows 10 Troubleshootings partie 1
Alphorm.com Support de la Formation Windows 10 Troubleshootings partie 1Alphorm.com Support de la Formation Windows 10 Troubleshootings partie 1
Alphorm.com Support de la Formation Windows 10 Troubleshootings partie 1Alphorm
 
Alphorm.com Support de la formation NodeJS , avancé
Alphorm.com Support de la formation NodeJS , avancé Alphorm.com Support de la formation NodeJS , avancé
Alphorm.com Support de la formation NodeJS , avancé Alphorm
 
Alphorm.com Support de la Formation LPIC-1 version 4 ss
Alphorm.com Support de la Formation LPIC-1 version 4 ssAlphorm.com Support de la Formation LPIC-1 version 4 ss
Alphorm.com Support de la Formation LPIC-1 version 4 ssAlphorm
 
Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux 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, ExpertAlphorm
 
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockage
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockageAlphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockage
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockageAlphorm
 
Alphorm.com support-formation-v mware-v-center-6-ss
Alphorm.com support-formation-v mware-v-center-6-ssAlphorm.com support-formation-v mware-v-center-6-ss
Alphorm.com support-formation-v mware-v-center-6-ssAlphorm
 
Alphorm.com Support de la Formation JavaScript , avancé
Alphorm.com Support de la Formation JavaScript , avancéAlphorm.com Support de la Formation JavaScript , avancé
Alphorm.com Support de la Formation JavaScript , avancéAlphorm
 
Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4 Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4 Alphorm
 
Alphorm.com Formation SCCM 2012 R2
Alphorm.com Formation SCCM 2012 R2Alphorm.com Formation SCCM 2012 R2
Alphorm.com Formation SCCM 2012 R2Alphorm
 
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
 
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ssAlphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ssAlphorm
 

Mais procurados (20)

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 Windows 10 Troubleshooting avancé
Alphorm.com Support de la Formation Windows 10 Troubleshooting avancéAlphorm.com Support de la Formation Windows 10 Troubleshooting avancé
Alphorm.com Support de la Formation Windows 10 Troubleshooting avancé
 
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 VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11
 
alphorm.com - Formation XenSources
alphorm.com - Formation XenSourcesalphorm.com - Formation XenSources
alphorm.com - Formation XenSources
 
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 Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement Alphorm.com Formation Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement
 
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 Windows 10 Troubleshootings partie 1
Alphorm.com Support de la Formation Windows 10 Troubleshootings partie 1Alphorm.com Support de la Formation Windows 10 Troubleshootings partie 1
Alphorm.com Support de la Formation Windows 10 Troubleshootings partie 1
 
Alphorm.com Support de la formation NodeJS , avancé
Alphorm.com Support de la formation NodeJS , avancé Alphorm.com Support de la formation NodeJS , avancé
Alphorm.com Support de la formation NodeJS , avancé
 
Alphorm.com Support de la Formation LPIC-1 version 4 ss
Alphorm.com Support de la Formation LPIC-1 version 4 ssAlphorm.com Support de la Formation LPIC-1 version 4 ss
Alphorm.com Support de la Formation LPIC-1 version 4 ss
 
Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux
 
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 Support de la Formation VMmware vSphere 6, La gestion du stockage
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockageAlphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockage
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockage
 
Alphorm.com support-formation-v mware-v-center-6-ss
Alphorm.com support-formation-v mware-v-center-6-ssAlphorm.com support-formation-v mware-v-center-6-ss
Alphorm.com support-formation-v mware-v-center-6-ss
 
Alphorm.com Support de la Formation JavaScript , avancé
Alphorm.com Support de la Formation JavaScript , avancéAlphorm.com Support de la Formation JavaScript , avancé
Alphorm.com Support de la Formation JavaScript , avancé
 
Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4 Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4
 
Alphorm.com Formation SCCM 2012 R2
Alphorm.com Formation SCCM 2012 R2Alphorm.com Formation SCCM 2012 R2
Alphorm.com Formation SCCM 2012 R2
 
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.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ssAlphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
 

Destaque

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, AndroidAlphorm
 
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 Outlook 2016 Initiation
Alphorm.com  Support de la Formation Outlook 2016 Initiation Alphorm.com  Support de la Formation Outlook 2016 Initiation
Alphorm.com Support de la Formation Outlook 2016 Initiation Alphorm
 
Alphorm.com support de la formation Access 2016 Initiation
Alphorm.com support de la formation Access 2016 InitiationAlphorm.com support de la formation Access 2016 Initiation
Alphorm.com support de la formation Access 2016 InitiationAlphorm
 
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 - UtilisateurAlphorm
 
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ôleAlphorm
 
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 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 21Alphorm
 
Alphorm.com Formation MOS Access 2013 (77-424)
Alphorm.com Formation MOS Access 2013 (77-424)Alphorm.com Formation MOS Access 2013 (77-424)
Alphorm.com Formation MOS Access 2013 (77-424)Alphorm
 
Alphorm.com Support de la formation EXCEL 2016 initiation ,Organiser et saisi...
Alphorm.com Support de la formation EXCEL 2016 initiation ,Organiser et saisi...Alphorm.com Support de la formation EXCEL 2016 initiation ,Organiser et saisi...
Alphorm.com Support de la formation EXCEL 2016 initiation ,Organiser et saisi...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 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 InitiationAlphorm
 
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 - 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 Formation Excel 2013 TCD
Alphorm.com Formation Excel 2013 TCDAlphorm.com Formation Excel 2013 TCD
Alphorm.com Formation Excel 2013 TCDAlphorm
 
Alphorm.com Formation Windev Mobile 20 iOS
Alphorm.com Formation Windev Mobile 20 iOSAlphorm.com Formation Windev Mobile 20 iOS
Alphorm.com Formation Windev Mobile 20 iOSAlphorm
 
Alphorm.com Formation JavaFX
Alphorm.com Formation JavaFXAlphorm.com Formation JavaFX
Alphorm.com Formation JavaFXAlphorm
 
Alphorm.com Formation Java,avancé OCP (1Z0-804)
Alphorm.com Formation Java,avancé OCP (1Z0-804)Alphorm.com Formation Java,avancé OCP (1Z0-804)
Alphorm.com Formation Java,avancé OCP (1Z0-804)Alphorm
 
Alphorm.com Formation Excel 2016 Expert I - partie 1
Alphorm.com Formation Excel 2016 Expert I - partie 1Alphorm.com Formation Excel 2016 Expert I - partie 1
Alphorm.com Formation Excel 2016 Expert I - partie 1Alphorm
 
Alphorm.com support Formation OneNote 2016 Prise de notes professionnelles
Alphorm.com support Formation OneNote 2016 Prise de notes professionnellesAlphorm.com support Formation OneNote 2016 Prise de notes professionnelles
Alphorm.com support Formation OneNote 2016 Prise de notes professionnellesAlphorm
 

Destaque (20)

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-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 Outlook 2016 Initiation
Alphorm.com  Support de la Formation Outlook 2016 Initiation Alphorm.com  Support de la Formation Outlook 2016 Initiation
Alphorm.com Support de la Formation Outlook 2016 Initiation
 
Alphorm.com support de la formation Access 2016 Initiation
Alphorm.com support de la formation Access 2016 InitiationAlphorm.com support de la formation Access 2016 Initiation
Alphorm.com support de la formation Access 2016 Initiation
 
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 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 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 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 Formation MOS Access 2013 (77-424)
Alphorm.com Formation MOS Access 2013 (77-424)Alphorm.com Formation MOS Access 2013 (77-424)
Alphorm.com Formation MOS Access 2013 (77-424)
 
Alphorm.com Support de la formation EXCEL 2016 initiation ,Organiser et saisi...
Alphorm.com Support de la formation EXCEL 2016 initiation ,Organiser et saisi...Alphorm.com Support de la formation EXCEL 2016 initiation ,Organiser et saisi...
Alphorm.com Support de la formation EXCEL 2016 initiation ,Organiser et saisi...
 
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 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 Formation Le Language C
Alphorm.com  Formation Le Language C Alphorm.com  Formation Le Language C
Alphorm.com Formation Le Language C
 
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 Formation Excel 2013 TCD
Alphorm.com Formation Excel 2013 TCDAlphorm.com Formation Excel 2013 TCD
Alphorm.com Formation Excel 2013 TCD
 
Alphorm.com Formation Windev Mobile 20 iOS
Alphorm.com Formation Windev Mobile 20 iOSAlphorm.com Formation Windev Mobile 20 iOS
Alphorm.com Formation Windev Mobile 20 iOS
 
Alphorm.com Formation JavaFX
Alphorm.com Formation JavaFXAlphorm.com Formation JavaFX
Alphorm.com Formation JavaFX
 
Alphorm.com Formation Java,avancé OCP (1Z0-804)
Alphorm.com Formation Java,avancé OCP (1Z0-804)Alphorm.com Formation Java,avancé OCP (1Z0-804)
Alphorm.com Formation Java,avancé OCP (1Z0-804)
 
Alphorm.com Formation Excel 2016 Expert I - partie 1
Alphorm.com Formation Excel 2016 Expert I - partie 1Alphorm.com Formation Excel 2016 Expert I - partie 1
Alphorm.com Formation Excel 2016 Expert I - partie 1
 
Alphorm.com support Formation OneNote 2016 Prise de notes professionnelles
Alphorm.com support Formation OneNote 2016 Prise de notes professionnellesAlphorm.com support Formation OneNote 2016 Prise de notes professionnelles
Alphorm.com support Formation OneNote 2016 Prise de notes professionnelles
 

Semelhante a Support de la formation Android 5 , Avancé

Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm
 
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.1SmartnSkilled
 
Presentation sim pim
Presentation sim pimPresentation sim pim
Presentation sim pimSalma Sayah
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
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 mobilesMichael Laguerre
 
📝 ✅ La checklist ultime pour rendre vos applications cloud native
📝 ✅ La checklist ultime pour rendre vos applications cloud native 📝 ✅ La checklist ultime pour rendre vos applications cloud native
📝 ✅ La checklist ultime pour rendre vos applications cloud native KatiaHIMEUR1
 
Webinaire Isogeo - Répondre à la directive INSPIRE : exemple de la plateforme...
Webinaire Isogeo - Répondre à la directive INSPIRE : exemple de la plateforme...Webinaire Isogeo - Répondre à la directive INSPIRE : exemple de la plateforme...
Webinaire Isogeo - Répondre à la directive INSPIRE : exemple de la plateforme...Isogeo
 
Alphorm.com Support de la Formation Windows Containers
Alphorm.com Support de la Formation Windows ContainersAlphorm.com Support de la Formation Windows Containers
Alphorm.com Support de la Formation Windows ContainersAlphorm
 
Alphorm.com Support de la Formation MDT 2013 Update 2 : Maîtrisez le déploiem...
Alphorm.com Support de la Formation MDT 2013 Update 2 : Maîtrisez le déploiem...Alphorm.com Support de la Formation MDT 2013 Update 2 : Maîtrisez le déploiem...
Alphorm.com Support de la Formation MDT 2013 Update 2 : Maîtrisez le déploiem...Alphorm
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdfmed_univ78
 
XebiCon'16 : Air France KLM - Le Big Data au service de la relation client pe...
XebiCon'16 : Air France KLM - Le Big Data au service de la relation client pe...XebiCon'16 : Air France KLM - Le Big Data au service de la relation client pe...
XebiCon'16 : Air France KLM - Le Big Data au service de la relation client pe...Publicis Sapient Engineering
 
Prérequis au développement google android
Prérequis au développement google androidPrérequis au développement google android
Prérequis au développement google androidThierry Gayet
 
présentation sur la gestion des projets.pdf
présentation sur la gestion des projets.pdfprésentation sur la gestion des projets.pdf
présentation sur la gestion des projets.pdfghiz-
 
Competitic Le potentiel des logiciels libres
Competitic Le potentiel des logiciels libresCompetitic Le potentiel des logiciels libres
Competitic Le potentiel des logiciels libresCOMPETITIC
 
Gestion de projet avec iphone et android
Gestion de projet avec iphone et androidGestion de projet avec iphone et android
Gestion de projet avec iphone et androiderichassid
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le designChristophe Villeneuve
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)LaNetscouade
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Hadina RIMTIC
 

Semelhante a Support de la formation Android 5 , Avancé (20)

Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm.com formation-GNS3
Alphorm.com formation-GNS3
 
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
 
Presentation sim pim
Presentation sim pimPresentation sim pim
Presentation sim pim
 
Plateforme claro amel
Plateforme  claro amelPlateforme  claro amel
Plateforme claro amel
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
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
 
📝 ✅ La checklist ultime pour rendre vos applications cloud native
📝 ✅ La checklist ultime pour rendre vos applications cloud native 📝 ✅ La checklist ultime pour rendre vos applications cloud native
📝 ✅ La checklist ultime pour rendre vos applications cloud native
 
Webinaire Isogeo - Répondre à la directive INSPIRE : exemple de la plateforme...
Webinaire Isogeo - Répondre à la directive INSPIRE : exemple de la plateforme...Webinaire Isogeo - Répondre à la directive INSPIRE : exemple de la plateforme...
Webinaire Isogeo - Répondre à la directive INSPIRE : exemple de la plateforme...
 
Alphorm.com Support de la Formation Windows Containers
Alphorm.com Support de la Formation Windows ContainersAlphorm.com Support de la Formation Windows Containers
Alphorm.com Support de la Formation Windows Containers
 
Alphorm.com Support de la Formation MDT 2013 Update 2 : Maîtrisez le déploiem...
Alphorm.com Support de la Formation MDT 2013 Update 2 : Maîtrisez le déploiem...Alphorm.com Support de la Formation MDT 2013 Update 2 : Maîtrisez le déploiem...
Alphorm.com Support de la Formation MDT 2013 Update 2 : Maîtrisez le déploiem...
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
XebiCon'16 : Air France KLM - Le Big Data au service de la relation client pe...
XebiCon'16 : Air France KLM - Le Big Data au service de la relation client pe...XebiCon'16 : Air France KLM - Le Big Data au service de la relation client pe...
XebiCon'16 : Air France KLM - Le Big Data au service de la relation client pe...
 
Apple - WWDC 2018
Apple - WWDC 2018Apple - WWDC 2018
Apple - WWDC 2018
 
Prérequis au développement google android
Prérequis au développement google androidPrérequis au développement google android
Prérequis au développement google android
 
présentation sur la gestion des projets.pdf
présentation sur la gestion des projets.pdfprésentation sur la gestion des projets.pdf
présentation sur la gestion des projets.pdf
 
Competitic Le potentiel des logiciels libres
Competitic Le potentiel des logiciels libresCompetitic Le potentiel des logiciels libres
Competitic Le potentiel des logiciels libres
 
Gestion de projet avec iphone et android
Gestion de projet avec iphone et androidGestion de projet avec iphone et android
Gestion de projet avec iphone et android
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le design
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
 

Mais 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 à ZAlphorm
 
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'ArchitecturesAlphorm
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm
 
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é objetAlphorm
 
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 InteractifAlphorm
 
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étriqueAlphorm
 
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 à NiveauAlphorm
 
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 MobilesAlphorm
 
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 POOAlphorm
 
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 SpringBootAlphorm
 
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 ServicesAlphorm
 
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 APIAlphorm
 

Mais 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
 

Support de la formation Android 5 , Avancé

  • 1. 31/12/2015 1 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Formation Android Avancé Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 2. 31/12/2015 2 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Présentation de votre formateur • Qu’est ce que Android ? • Présentation de votre formation • Le plan de la formation • Public concerné • Prérequis de la formation
  • 3. 31/12/2015 2 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Présentation de votre formateur • Qu’est ce que Android ? • Présentation de votre formation • Le plan de la formation • Public concerné • Prérequis de la formation
  • 4. 31/12/2015 4 Formation Développement avancé sous Android 5 alphorm.com™© Mes formations sur alphorm
  • 5. 31/12/2015 5 Formation Développement avancé sous Android 5 alphorm.com™© Qu’est-ce que Android ? • Plateforme mobile dominante • Ouverte, liée à Java • Riche de bibliothèques • Il est possible de programmer autrement qu’en Java
  • 6. 31/12/2015 6 Formation Développement avancé sous Android 5 alphorm.com™© Plan de la formation • Les capteurs embarqués • L’accès aux données • Les détails sur les Intents • L’interface graphique • Divers plateforme
  • 7. 31/12/2015 7 Formation Développement avancé sous Android 5 alphorm.com™© 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
  • 8. 31/12/2015 8 Formation Développement avancé sous Android 5 alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Et … du courage comme toujours ! • Avoir vu la formation précédente : http://www.alphorm.com/tutoriel/formation-en-ligne- android-5
  • 9. 31/12/2015 9 Formation Développement avancé sous Android 5 alphorm.com™© Les autres formations dév sur Alphorm
  • 10. 31/12/2015 10 Formation Développement avancé sous Android 5 alphorm.com™© Are you ready ? ☺
  • 11. 31/12/2015 11 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le GPS Les capteurs embarqués Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 12. 31/12/2015 12 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Package et classes • Obtenir la position • Savoir utiliser la position • Déterminer l’intérêt d’une position • Simuler une position
  • 13. 31/12/2015 13 Formation Développement avancé sous Android 5 alphorm.com™© Package et classes • Package android.location • Ne pas confondre avec Google Location Services API • La classe LocationManager : détermine la position et accède au matériel • Possibilités de Récupérer les anciennes positions Suivre les mises à jour périodiques de la position Enregistrer une alerte à l’approche d’un point
  • 14. 31/12/2015 14 Formation Développement avancé sous Android 5 alphorm.com™© Obtenir la position • Les sources d’information sont variées : GPS, cellulaire, wifi • Utiliser le gestionnaire de position Classe android.location.Location • S’abonner aux changements de positions Classe android.location.LocationListener
  • 15. 31/12/2015 15 Formation Développement avancé sous Android 5 alphorm.com™© Savoir utiliser la position • L’accès à la position doit être déclaré dans le manifest android.permission.ACCESS_COARSE_LOCATION et ACCESS_FINE_LOCATION • Il faut trouver à quel moment activer la recherche de position • Eviter de bloquer l’utilisateur • Penser à arrêter la recherche • Penser à la batterie Réduire la fréquence de mise à jour de la position Réduire les fournisseurs
  • 16. 31/12/2015 16 Formation Développement avancé sous Android 5 alphorm.com™© Déterminer l’intérêt d’une position • Lorsqu’on acquiert une nouvelle position Est-elle vraiment plus récente ? Est-elle vraiment plus précise ? D’où vient cette nouvelle information ?
  • 17. 31/12/2015 17 Formation Développement avancé sous Android 5 alphorm.com™© Simuler une position • Par l’émulateur, sélectionner la position • En utilisant DDMS • Par la console de l’émulateur Utiliser geo fix <geoloc>
  • 18. 31/12/2015 18 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Package et classes • Obtenir la position • Savoir utiliser la position • Déterminer l’intérêt d’une position • Simuler une position
  • 19. 31/12/2015 19 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le NFC Les capteurs embarqués Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 20. 31/12/2015 20 Formation Développement avancé sous Android 5 alphorm.com™© Plan • La technologie NFC avec Android • L’analyse des messages NDEF • Le manifeste pour NFC • La lecture des messages • L’écriture des messages • Android Beam
  • 21. 31/12/2015 21 Formation Développement avancé sous Android 5 alphorm.com™© La technologie NFC avec Android • NFC permet d’échanger de petits volumes de données • Les modes de fonctionnement sont Reader/writer : lecture / écriture sur un tag P2P : échange entre 2 matériels Emulation de carte : le matériel sert comme une carte (de paiement) • Les données NFC sont fournies sous la forme de messages • La lecture des données utilise le système de répartition de tag • Android Beam permet de pousser un message NDEF
  • 22. 31/12/2015 22 Formation Développement avancé sous Android 5 alphorm.com™© L’analyse des messages NDEF • Bien que plusieurs formats soient possibles, il sera plus simple d’utiliser ce format standard • Les messages sont gérés par le « Tag Message System » qui analyse les tags et démarre une application intéressée • Une application doit donc déclarer un filtre « intent » et gérer les données • Un messages NDEF est NdefMessage contient des NdefRecord • Un NdefRecord contient : TNF, type, id, données • Les infos Type Name Format et type vont correspondre aux types MIME et URI
  • 23. 31/12/2015 23 Formation Développement avancé sous Android 5 alphorm.com™© Analyse des messages • Si le système réussit à découvrir le type MIMI ou l’URI, alors l’intent utilisé est ACTION_NDEF_DISCOVERED (avec les données associées) • Sinon l’intent est ACTION_TECH_DISCOVERED • Il y a 7 TNF prédéfinis • Pour le TNF TNF_WELL_KNOWN, il y a 7 RTD (Record type definition) prédéfinis • Le système recherche ensuite les applications qui savent répondre à : ACTION_NDEF_DISCOVERED, ACTION_TECH_DISCOVERED, ACTION_TAG_DISCOVERED
  • 24. 31/12/2015 24 Formation Développement avancé sous Android 5 alphorm.com™© Le manifeste pour NFC • Il faut déclarer dans le manifeste l’utilisation de NFC Permission : android.permission.NFC • Il y a des limitations en fonction du niveau du sdk API9 a seulement un support limité, les autres niveaux importants sont API10, API14 • Il faudra aussi limité la présentation dans Google Play Il est aussi possible de tester runtime la présence du NFC
  • 25. 31/12/2015 3 Formation Développement avancé sous Android 5 alphorm.com™© 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 • 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/ Mon profil Alphorm : http://www.alphorm.com/formateur/fabien-brissonneau
  • 26. 31/12/2015 26 Formation Développement avancé sous Android 5 alphorm.com™© L’écriture des messages • Le protocole NDEF est simple car bien implémenté sous Android • 3 méthodes sont disponibles : createUri(), createExternal(), createMime() • TNF_WELL_KNOWN et RTD_TEXT • TNF_WELL_KNOWN et RTD_URI
  • 27. 31/12/2015 27 Formation Développement avancé sous Android 5 alphorm.com™© Android Beam • Echanges P2P entre deux machines Android • Méthodes setNdefPushMessage et stNdefPushMessageCallback • L’envoi de message se fait lorsque les appareils sont proches
  • 28. 31/12/2015 28 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • La technologie NFC avec Android • L’analyse des messages NDEF • Le manifeste pour NFC • La lecture des messages • L’écriture des messages • Android Beam
  • 29. 31/12/2015 29 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum La caméra Les capteurs embarqués Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 30. 31/12/2015 30 Formation Développement avancé sous Android 5 alphorm.com™© Plan • La capture d’images • Enregistrer la caméra • La capture de vidéos • Visualiser une vidéo
  • 31. 31/12/2015 31 Formation Développement avancé sous Android 5 alphorm.com™© La capture d’images • Mettre à jour le manifeste afin qu’il utilise la caméra Permission android.permission.camera Fonctionnalité android.hardware.camera • Le plus simple est de déclencher la caméra native par Intent • L’image sera récupérée à l’issue de la saisie par la caméra
  • 32. 31/12/2015 32 Formation Développement avancé sous Android 5 alphorm.com™© Enregistrer la caméra • Il est possible de prendre la photo et de la sauvegarder dans la foulée • L’image est enregistrée dans la gallerie • Elle reste publique en utilisant getExternalStoragePublicDirectory() • Il est possible de la garder privée avec getExternalFilesDir ()
  • 33. 31/12/2015 33 Formation Développement avancé sous Android 5 alphorm.com™© La capture de vidéos • Un contrôle est proposé VideoView • Beaucoup de fonctionnalités • Intent à utiliser MediaStore.ACTION_VIDEO_CAPTURE • Il est possible de capturer et de visualiser la vidéo
  • 34. 31/12/2015 34 Formation Développement avancé sous Android 5 alphorm.com™© Visualiser une vidéo • Avec videoView.setVideoURI(…) • Trouver la ressource avec Uri.parse(« … ») • Les fichiers supportés (formats conteneur) sont .webm : format ouvert web VP8/Vorbis .3gp : version simplifiée du mp4 .mp4 : .mkv : format ouvert Matroska
  • 35. 31/12/2015 35 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • La capture d’images • Enregistrer la caméra • La capture de vidéos • Visualiser une vidéo
  • 36. 31/12/2015 36 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le micro Les capteurs embarqués Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 37. 31/12/2015 37 Formation Développement avancé sous Android 5 alphorm.com™© Plan • La capture audio • La sauvegarde de l’enregistrement • La lecture d’un fichier audio
  • 38. 31/12/2015 38 Formation Développement avancé sous Android 5 alphorm.com™© La capture audio • La classe android.media.MediaRecorder • Le micro est MediaRecorder.AudioSource.MIC • Il faut positionner la source audio sur le MediaRecorder • Puis on démarre et on stoppe l’enregistrement avec start et stop
  • 39. 31/12/2015 39 Formation Développement avancé sous Android 5 alphorm.com™© La sauvegarde de l’enregistrement • La sauvegarde dans un fichier • Fournir les informations suivantes Quel fichier ? Quel format ? Quel encodage ?
  • 40. 31/12/2015 40 Formation Développement avancé sous Android 5 alphorm.com™© La lecture d’un fichier audio • Utiliser le MediaPlayer • Fournir un fichier contenant le son à jouer • Utiliser encore start et stop
  • 41. 31/12/2015 41 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • La capture audio • La sauvegarde de l’enregistrement • La lecture d’un fichier audio
  • 42. 31/12/2015 42 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le wifi Les capteurs embarqués Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 43. 31/12/2015 43 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Le package android.net.wifi • La recherche des réseaux • Le WifiP2P
  • 44. 31/12/2015 44 Formation Développement avancé sous Android 5 alphorm.com™© Le package android.net.wifi • WifiConfiguration : représentation d’un réseau Wifi • ScanResult : les informations d’un point d’accès • WifiManager : le premier point d’entrée dans l’API • Nécessite les permissions suivantes ACCESS_WIFI_STATE CHANGE_WIFI_STATE CHANGE_WIFI_MULTICAST_STATE • Il y a aussi un feature à déclarer éventuelleme
  • 45. 31/12/2015 45 Formation Développement avancé sous Android 5 alphorm.com™© La recherche des réseaux • Instance récupérée : Context.getSystemService(Context.WIFI_SERVICE) • Permet de lister les réseaux configurés • Fournit le réseau actuel • Scanne les points d’accès • Définit les Intent nécessaire
  • 46. 31/12/2015 46 Formation Développement avancé sous Android 5 alphorm.com™© Le WifiP2P • Connection directe entre 2 appareils sans point d’accès • La classe essentielle est WifiP2pManager • Des Listeners permettent de gérer les événements • Des Intents pour réagir sur des événements spécifiques Connexion abandonnée Pair connecté • Sdk minimum 14 • Permissions ACCESS_NETWORK_STATE, CHANGE_NETWORK_STATE et INTERNET
  • 47. 31/12/2015 47 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Le package android.net.wifi • La recherche des réseaux • Le WifiP2P
  • 48. 31/12/2015 48 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le Bluetooth Les capteurs embarqués Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 49. 31/12/2015 49 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Le package android.bluetooth • La mise en oeuvre • La recherche des matériels • L’établissement de connexions
  • 50. 31/12/2015 50 Formation Développement avancé sous Android 5 alphorm.com™© Le package android.bluetooth • BluetoothAdapter est le point d’entrée principal, permet de découvrir le matériel • BluetoothDevice représente un matériel, à utiliser pour solliciter une communication • BluetoothSocket est la connexion, utilisée via des Input/Output Stream • BluetoothServerSocket est la connexion côté serveur • BluetoothClass représente les possibilités d’un matériel
  • 51. 31/12/2015 51 Formation Développement avancé sous Android 5 alphorm.com™© La mise en oeuvre • Ne pas oublier la permission android.permission.BLUETOOTH • Utiliser BluetoothAdapter pour avoir un accès • Possibilité d’activer le Bluetooth
  • 52. 31/12/2015 52 Formation Développement avancé sous Android 5 alphorm.com™© La recherche de matériels • Recherche de matériels appariés • Liste des appareils • Pour découvrir les appareils
  • 53. 31/12/2015 53 Formation Développement avancé sous Android 5 alphorm.com™© L’établissement de connexions • Il faut un serveur et un client • La connexion en tant que serveur : BluetoothServerSocket • On accept() la connexion et on close() • Du côté client, on utilise un BluetoothSocket • Initialise la connexion avec connect() • Les échanges sont réalisés via getInputStream() et getOutputStream()
  • 54. 31/12/2015 54 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Le package android.bluetooth • La mise en oeuvre • La recherche des matériels • L’établissement de connexions
  • 55. 31/12/2015 55 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Utiliser SQLite L’accès aux données Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 56. 31/12/2015 56 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Les bases de données SQLite • Les classes • Exemple complet de code
  • 57. 31/12/2015 57 Formation Développement avancé sous Android 5 alphorm.com™© Les bases de données SQLite • Une des options de stockage • La base ainsi créée sera accessible de toute classe de l’application • La base sera privée • Permet l’exécution de SQL • Android n’impose rien au-delà des concepts SQLite standards Il est néanmoins préférable de créer un champ id autoincrémenté L’utilisation d’un Content Provider nécessite un id unique • On peut déboguer la base de données à distance
  • 58. 31/12/2015 58 Formation Développement avancé sous Android 5 alphorm.com™© Les classes • La classe SQLiteOpenHelper est en général dérivée • La classe SQLiteDatabase représente la database et fournit les méthodes pour les opérations SQL • Si la requête SQL est complexe, on peut utiliser SQLiteQueryBuilder • Les requêtes retournent un itérateur Cursor
  • 59. 31/12/2015 59 Formation Développement avancé sous Android 5 alphorm.com™© Exemple complet de code • Un SQLiteOpenHelper • Pour insérer • Pour récupérer
  • 60. 31/12/2015 60 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Les bases de données SQLite • Les classes • Exemple complet de code
  • 61. 31/12/2015 61 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Les Content Provider L’accès aux données Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 62. 31/12/2015 62 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Définition • Créer et utiliser un Content Provider • Utiliser Contacts Provider • Utiliser Calendar Provider
  • 63. 31/12/2015 63 Formation Développement avancé sous Android 5 alphorm.com™© Définition • Gestion des accès à des données structurées • Un Content Provider encapsule les données • C’est donc le moyen standard pour un processus d’accéder à des données dans un autre processus • ContentResolver pour obtenir un accès en tant que client • ContentProvider pour servir de point d’entrée vers les données • Le package android.provider référence des fournisseurs standards
  • 64. 31/12/2015 64 Formation Développement avancé sous Android 5 alphorm.com™© Créer un Content Provider • Des données, une classe concrète, les URIs, les autorisations • Les URIs pointent vers les données (nom, table, id) • Il faut implémenter les méthodes
  • 65. 31/12/2015 65 Formation Développement avancé sous Android 5 alphorm.com™© Utiliser un Content Provider • Récupérer un ContentResolver : getContentResolver() • Faire la requête avec la bonne URL… • Ne pas oublier les permissions éventuelles • Le mieux est de disposer de classes définissant les constantes Les « contrats »
  • 66. 31/12/2015 66 Formation Développement avancé sous Android 5 alphorm.com™© Utiliser Contacts Provider • Les tables accessibles sont Contacts, RawContacts et Data • Permissions nécessaires READ_CONTACTS/WRITE_CONTACTS • Dans ces tables de contrats, les constantes…
  • 67. 31/12/2015 67 Formation Développement avancé sous Android 5 alphorm.com™© Utiliser Calendar Provider • La classe CalendarContract • Contient les calendriers, les événements, …. • Exemple avec Events
  • 68. 31/12/2015 68 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Définition • Créer et utiliser un Content Provider • Utiliser Contacts Provider • Utiliser Calendar Provider
  • 69. 31/12/2015 69 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Explicite et implicite Détails sur les Intents Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 70. 31/12/2015 70 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Les cas d’usage • Les types d’Intents • Le contenu d’un Intent • Les <intent_filter> • Quelques Intents
  • 71. 31/12/2015 71 Formation Développement avancé sous Android 5 alphorm.com™© Les cas d’usage • 3 cas d’usage principaux • Pour démarrer une activité Passer un Intent à startActivity. L’Intent décrit l’activité et les paramètres Possible d’attendre un résultat avec startActivityForResult / onActivityResult • Pour démarrer un service Avec startService, démarrerun service (application sans ihm) • Pour faire un broadcast Un broadcast est un message que toute application peut recevoir Utiliser sendBroadcast, sendOrderedBroadcast ou sendStickyBroadcast
  • 72. 31/12/2015 72 Formation Développement avancé sous Android 5 alphorm.com™© Les types d’Intent • Intent implicite Donner le nom d’une action générale Un composant d’une autre application va traiter le sujet Le système trouve la bonne application en utilisant les intent-filters déclarés dans les « manifest » • Intent explicite Fournir le nom de la classe de l’activité à démarrer Typiquement à l’intérieur de la même application
  • 73. 31/12/2015 73 Formation Développement avancé sous Android 5 alphorm.com™© Contenu d’un Intent • Nom du composant Si présent, l’Intent est explicite, sinon implicite • Action Chaîne de caractères donnant l’action à réaliser, comme ACTION_VIEW, ACTION_SEND • Données Un URI qui référence les données (fichier à ouvrir,…) souvent type MIME • Catégorie Info additionnelle, comme CATEGORY_BROWSABLE, CATEGORY_LAUNCHER • Extras Paires clé-valeur fournissant de l’information pour exécuter la tâche • Flags Métadonnées sur l’Intent (pour le système Android)
  • 74. 31/12/2015 74 Formation Développement avancé sous Android 5 alphorm.com™© Les <intent-filter> • Pour répondre à un Intent implicite, spécifié dans le manifest • <action> : chaîne littérale pour l’action à traiter • <category> : doit contenir DEFAULT pour un Intent implicite • <data> : spécifie un URI et ou un type MIME
  • 75. 31/12/2015 4 Formation Développement avancé sous Android 5 alphorm.com™© Mes formations sur alphorm
  • 76. 31/12/2015 4 Formation Développement avancé sous Android 5 alphorm.com™© Mes formations sur alphorm
  • 77. 31/12/2015 4 Formation Développement avancé sous Android 5 alphorm.com™© Mes formations sur alphorm
  • 78. 31/12/2015 4 Formation Développement avancé sous Android 5 alphorm.com™© Mes formations sur alphorm
  • 79. 31/12/2015 4 Formation Développement avancé sous Android 5 alphorm.com™© Mes formations sur alphorm
  • 80. 31/12/2015 4 Formation Développement avancé sous Android 5 alphorm.com™© Mes formations sur alphorm
  • 81. 31/12/2015 81 Formation Développement avancé sous Android 5 alphorm.com™© Les Catégories • Un Intent doit passer au moins une catégorie spécifiée • La catégorie DEFAULT est automatiquement appliquée par le système pour tout Intent implicite Il faut donc ajouter cette catégorie systématiquement au filtre afin de recevoir les Intents implicites
  • 82. 31/12/2015 82 Formation Développement avancé sous Android 5 alphorm.com™© Les Données • Chaque donnée peut spécifier un URI et un Type • L’URI est constitué • L’URI sert à sélectionner un Intent.
  • 83. 31/12/2015 83 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • La résolution des Intents • Les Actions • Les Catégories • Les Données
  • 84. 31/12/2015 84 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Intent vs PendingIntent Détails sur les Intents Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 85. 31/12/2015 85 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Définition • Cas d’utilisation • Mise en oeuvre
  • 86. 31/12/2015 86 Formation Développement avancé sous Android 5 alphorm.com™© Définition • Un PendingIntent est créé sur un Intent • Fournir un PendingIntent à une autre application Pour que l’autre ait les mêmes droits Faire attention à la façon dont l’Intent est défini (nom de composant) • Instances créées par getActivity, getActivities, getBroadcast et getService • Suivant les arguments, cela peut créer un nouvel objet ou bien modifier un objet existant
  • 87. 31/12/2015 87 Formation Développement avancé sous Android 5 alphorm.com™© Cas d’utilisation • Démarrer une activité On fournit : le contexte, un « request code », l’Intent qui est spécifié, un flag • Générer un broadcast • Démarrer un service
  • 88. 31/12/2015 88 Formation Développement avancé sous Android 5 alphorm.com™© Mise en oeuvre • Exemple pour utilisation dans un Widget • Un Widget fonctionne dans un hôte Mais est généré par une autre application • Le Widget typiquement démarre un Intent Qui appartient à l’autre application
  • 89. 31/12/2015 89 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Définition • Cas d’utilisation • Mise en oeuvre
  • 90. 31/12/2015 90 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Les notifications Détails sur les Intents Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 91. 31/12/2015 91 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Définition • Créer une notification • Notification et Intent
  • 92. 31/12/2015 92 Formation Développement avancé sous Android 5 alphorm.com™© Définition • Une notification est un message qui peut être affiché en dehors de l’interface utilisateur de l’application • Dans un premier temps, dans l’aire des notifications • Pour l’utilisateur ouvrira le dessinateur de notifications
  • 93. 31/12/2015 93 Formation Développement avancé sous Android 5 alphorm.com™© Créer une notification • Utiliser NotificationCompat.Builder (ou Notification.Builder) • Créer la notification avec l’appel à build() • Passer l’objet notification à NotificationManager.notify() • Eléments indispensables : Une icône petite ‘setSmallIcon(..)’ Un titre ‘setContentTitle()’ Un texte ‘setContentText()’
  • 94. 31/12/2015 94 Formation Développement avancé sous Android 5 alphorm.com™© Notification et Intent • Créer un PendingIntent • Utiliser setContentIntent(…) sur le builder • Faire attention à reconstituer une pile des activités • Notifier
  • 95. 31/12/2015 95 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Définition • Créer une notification • Notification et Intent
  • 96. 31/12/2015 96 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Les receveurs broadcast Détails sur les Intents Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 97. 31/12/2015 97 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Définitions • Réception de broadcast • Emission d’un broadcast
  • 98. 31/12/2015 98 Formation Développement avancé sous Android 5 alphorm.com™© Définitions • Un receveur de broadcast est un composant enregistré pour recevoir des événements systèmes ou applicatifs • Un receveur peut être enregistré Statiquement dans le manifest Dynamiquement avec Context.registerReceiver(…) • Il faut dériver BroadcastReceiver • Et redéfinir onReceive(…)
  • 99. 31/12/2015 99 Formation Développement avancé sous Android 5 alphorm.com™© Réception de broadcast • Définition d’un receiver <receiver android:name="MyBroadcastReceiver" > </receiver> • Sélection d’un receiver pour suivre l’état des appels téléphone <receiver android:name="MyPhoneReceiver" > • <intent-filter> - <action android:name="android.intent.action.PHONE_STATE" > </action> • </intent-filter> </receiver>
  • 100. 31/12/2015 5 Formation Développement avancé sous Android 5 alphorm.com™© Qu’est-ce que Android ? • Plateforme mobile dominante • Ouverte, liée à Java • Riche de bibliothèques • Il est possible de programmer autrement qu’en Java
  • 101. 31/12/2015 5 Formation Développement avancé sous Android 5 alphorm.com™© Qu’est-ce que Android ? • Plateforme mobile dominante • Ouverte, liée à Java • Riche de bibliothèques • Il est possible de programmer autrement qu’en Java
  • 102. 31/12/2015 5 Formation Développement avancé sous Android 5 alphorm.com™© Qu’est-ce que Android ? • Plateforme mobile dominante • Ouverte, liée à Java • Riche de bibliothèques • Il est possible de programmer autrement qu’en Java
  • 103. 31/12/2015 5 Formation Développement avancé sous Android 5 alphorm.com™© Qu’est-ce que Android ? • Plateforme mobile dominante • Ouverte, liée à Java • Riche de bibliothèques • Il est possible de programmer autrement qu’en Java
  • 104. 31/12/2015 5 Formation Développement avancé sous Android 5 alphorm.com™© Qu’est-ce que Android ? • Plateforme mobile dominante • Ouverte, liée à Java • Riche de bibliothèques • Il est possible de programmer autrement qu’en Java
  • 105. 31/12/2015 5 Formation Développement avancé sous Android 5 alphorm.com™© Qu’est-ce que Android ? • Plateforme mobile dominante • Ouverte, liée à Java • Riche de bibliothèques • Il est possible de programmer autrement qu’en Java
  • 106. 31/12/2015 106 Formation Développement avancé sous Android 5 alphorm.com™© Initialisation • Pour constituer le drawer, il faut le remplir avec des éléments • Si le drawer est représenté par une liste • Chaque item peut être un élément complexe, typiquement un TextView
  • 107. 31/12/2015 107 Formation Développement avancé sous Android 5 alphorm.com™© Navigation • Réagir sur le clic d’un item, repéré par sa position • Choisir la page en fonction de l’item
  • 108. 31/12/2015 108 Formation Développement avancé sous Android 5 alphorm.com™© Améliorer le drawer • Placer un entête : fournir un layout spécifique, avec images, … • Placer des icônes : chaque item est donc bien plus qu’un TextView • Nécessite de créer son propre adaptateur de vue pour que la liste accepte des items plus complexes que du texte • Il est possible d’utilise des bibliothèques tierces qui fournissent des moyens simples de construire ce menu
  • 109. 31/12/2015 109 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Utilisations • Mise en place • Initialisation • Navigation • Améliorer le Drawer
  • 110. 31/12/2015 110 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Le Floating Action Button L’interface graphique Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 111. 31/12/2015 111 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Utilisations • Création de la forme • Conception de l’interface • Initialisation et réaction
  • 112. 31/12/2015 112 Formation Développement avancé sous Android 5 alphorm.com™© Utilisations • A utiliser pour une action mise en avant • Une icône flottante sur l’interface • Possède des comportements de déplacement • Taille 24x24 dans un cercle 56x56 • Le bouton FAB a une couleur rose lors du tap • Un seul bouton FAB par écran, une action positive, forme ronde, mais pas de 3D
  • 113. 31/12/2015 113 Formation Développement avancé sous Android 5 alphorm.com™© Création de la forme • Le bouton doit être placé dans un cercle • Définir un « drawable » qui donne la structure au bouton • L’image elle-même est en rapport avec l’action à lancer
  • 114. 31/12/2015 114 Formation Développement avancé sous Android 5 alphorm.com™© Conception de l’interface • En général, en bas à droite • Positionner le bouton par gravité • Possibilité de le placer où on le souhaite
  • 115. 31/12/2015 6 Formation Développement avancé sous Android 5 alphorm.com™© Plan de la formation • Les capteurs embarqués • L’accès aux données • Les détails sur les Intents • L’interface graphique • Divers plateforme
  • 116. 31/12/2015 116 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Utilisations • Création de la forme • Conception de l’interface • Initialisation et réaction
  • 117. 31/12/2015 117 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Toast et Snackbar L’interface graphique Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 118. 31/12/2015 118 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Généralités • Usages • Mise en œuvre de Snackbar • Toast
  • 119. 31/12/2015 119 Formation Développement avancé sous Android 5 alphorm.com™© Généralités • Snackbar permet d’afficher des messages brefs en bas d’écran • Snackbar peut être lié à une action • Snackbar peut être glissé en dehors de l’écran • Toast est semblable mais Ne peut pas être lié à une action Ne peut pas être glissé Correspond plutôt à des messages systèmes
  • 120. 31/12/2015 120 Formation Développement avancé sous Android 5 alphorm.com™© Usages • Un seul Snackbar peut apparaître à la fois • Disposé en bas de l’écran, au niveau du FAB • Ne bloquent pas la saisie • Disparaissent lorsqu’on les glisse sur le côté ou bien time-out • Message textuel très court • Contient ou pas une action • Taille variante en fonction de l’appareil Sur mobile, 48 ou 80dp, police Roboto Regular 14sp
  • 121. 31/12/2015 121 Formation Développement avancé sous Android 5 alphorm.com™© Mise en oeuvre • Snackbar Visualise le message, avec un CoordinatorLayout, déplace le FAB Possibilité de lier une action
  • 122. 31/12/2015 122 Formation Développement avancé sous Android 5 alphorm.com™© Toast • Plutôt messages systèmes
  • 123. 31/12/2015 123 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Généralités • Usages • Mise en œuvre de Snackbar • Toast
  • 124. 31/12/2015 124 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Gérer le copier-coller Divers plateforme Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 125. 31/12/2015 125 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Le framework • Les classes du presse-papier • Mise en œuvre de la copie • Mise en œuvre du collage
  • 126. 31/12/2015 126 Formation Développement avancé sous Android 5 alphorm.com™© Le framework • Pour copier-coller, on sélectionne un objet que l’on place dans le presse-papier • Le format de l’objet copié peut être : Du texte : une simple chaîne est copiée Un URI : représente une information complexe, comme un accès à un data provider Un Intent • Un seul objet existe à un moment donné dans le presse-papier
  • 127. 31/12/2015 127 Formation Développement avancé sous Android 5 alphorm.com™© Les classes du presse papier • ClipboardManager, obtenu via un appel à getSystemService getSystemService(CLIPBOARD_SERVICE) • ClipData contient plusieurs ClipData.Item : un CharSequence, un Uri, ou un Intent Et 1 seule ClipDescription : métadonnées (sous forme de type MIME) • Plusieurs Item dans un ClipData signifie copie de plusieurs sélections à la fois • Méthodes utiles de ClipData : newPlainText, newUri, newIntent, Item.coerceToText
  • 128. 31/12/2015 128 Formation Développement avancé sous Android 5 alphorm.com™© Mise en œuvre de la copie • Trouver le manager • Créer un « clip »
  • 129. 31/12/2015 129 Formation Développement avancé sous Android 5 alphorm.com™© Mise en œuvre du collage • Trouver le manager • Déterminer si le presse-papier contient des données • Si les données sont d’un type que je sais traiter
  • 130. 31/12/2015 130 Formation Développement avancé sous Android 5 alphorm.com™© Ce qu’on a couvert • Le framework • Les classes du presse-papier • Mise en œuvre de la copie • Mise en œuvre du collage
  • 131. 31/12/2015 131 Formation Développement avancé sous Android 5 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Les animations Divers plateforme Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 132. 31/12/2015 132 Formation Développement avancé sous Android 5 alphorm.com™© Plan • Définition • Animation dans une vue • Animation entre vues • Animations entre bornes
  • 133. 31/12/2015 133 Formation Développement avancé sous Android 5 alphorm.com™© Définition • Une animation est un changement de caractéristiques d’un élément visuel au cours du temps • Une animation peut être gérée par un composant • Une animation peut être introduite entre des vues • Une animation peut être le résultat d’une interpolation entre des bornes
  • 134. 31/12/2015 134 Formation Développement avancé sous Android 5 alphorm.com™© Animation dans une vue • Ajouter des items dans une vue peut automatiquement déclencher une animation • Exemple avec LinearLayout
  • 135. 31/12/2015 135 Formation Développement avancé sous Android 5 alphorm.com™© Animation entre vues • Pour aménager le passage d’une vue à l’autre • Par exemple, disparition progressive d’une vue remplacée par une autre
  • 136. 31/12/2015 136 Formation Développement avancé sous Android 5 alphorm.com™© Animation interpolée • L’animation peut être définie dans un fichier XML • Appliquée dynamiquement • Applicable sur n’importe quel élément graphique
  • 137. 31/12/2015 7 Formation Développement avancé sous Android 5 alphorm.com™© 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
  • 138. 31/12/2015 7 Formation Développement avancé sous Android 5 alphorm.com™© 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
  • 139. 31/12/2015 7 Formation Développement avancé sous Android 5 alphorm.com™© 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
  • 140. 31/12/2015 7 Formation Développement avancé sous Android 5 alphorm.com™© 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
  • 141. 31/12/2015 7 Formation Développement avancé sous Android 5 alphorm.com™© 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
  • 142. 31/12/2015 7 Formation Développement avancé sous Android 5 alphorm.com™© 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
  • 143. 31/12/2015 7 Formation Développement avancé sous Android 5 alphorm.com™© 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