27/02/2016
1
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Présentation
Android expert
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
2
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Présentation du formateur
• Pourquoi Android Expert?
• Présentation de votre formation
• Le plan de la formation
• Publics concernés
• Prérequis de la formation
27/02/2016
2
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Présentation du formateur
• Pourquoi Android Expert?
• Présentation de votre formation
• Le plan de la formation
• Publics concernés
• Prérequis de la formation
27/02/2016
4
Formation Android 6, niveau Expert alphorm.com™©
Mes formations sur alphorm
27/02/2016
5
Formation Android 6, niveau Expert alphorm.com™©
Pourquoi Android Expert ?
• Android est une plateforme vaste
• De nombreux usages, de nombreuses APIs
• Nous centrons notre formation sur des aspects exotiques
• L’usage du C pour créer des applications
• Les besoins en performances
• Les objets connectés
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
7
Formation Android 6, niveau Expert 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
• La connaissance du C ou C++ est souhaitable
• Nous ne reviendrons pas sur les concepts des langages
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
9
Formation Android 6, niveau Expert alphorm.com™©
Les outils nécessaires
• L’IDE principal est Android Studio 1.5.x
• Nous utilisons aussi Android Studio 2.0
• La présentation sera faite sous Windows 10
27/02/2016
10
Formation Android 6, niveau Expert alphorm.com™©
Les autres formations dév sur Alphorm
27/02/2016
11
Formation Android 6, niveau Expert alphorm.com™©
Are you ready ? ☺
27/02/2016
12
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Généralités
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
13
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Package et classes
• Mode de fonctionnement
• Mise en œuvre
• Etablissement de la connexion
• Communiquer
• Les authentifications
27/02/2016
14
Formation Android 6, niveau Expert alphorm.com™©
Package et classes
• Les packages com.google.android.gms
• La classe com.google.android.gms.common.api.GoogleApiClient
• Chaque API est représentée par un package
27/02/2016
15
Formation Android 6, niveau Expert alphorm.com™©
Mode fonctionnement
• Architecture
Un proxy côté client va servir la communication
Nécessite le « Google Play Services SDK »
• Pour accéder aux services Google non concernés par le SDK
Utiliser la classe GoogleAuthUtil
Permet la manipulation d’un jeton OAuth2.0
27/02/2016
16
Formation Android 6, niveau Expert alphorm.com™©
Mise en oeuvre
• Configurer le projet(fichier Gradle sous Android Studio)
• GoogleApiClient est la classe à utiliser
• Avec le builder associé, afin de faciliter la configuration
• Possibilités de gérer les exceptions liées
27/02/2016
17
Formation Android 6, niveau Expert alphorm.com™©
Etablissement de la connexion
• Etablir la connexion pour communiquer
• GoogleApiClient servira de proxy
• Bonnes pratiques pour établir/couper la connexion
• Ignorer ou non les erreurs de connexion
• Accéder à différentes APIs, cas particulier de Wearable
27/02/2016
18
Formation Android 6, niveau Expert alphorm.com™©
Communiquer
• Les accès aux services peuvent nécessiter des paramètres
supplémentaires
Un certificat récupérable sur la console
• La communication peut être synchrone ou non synchrone
27/02/2016
19
Formation Android 6, niveau Expert alphorm.com™©
Les authentifications
• Pour les services qui nécessitent une authentification
Authentifier l’utilisateur de l’application
• Définit un ensemble de droits
Certifier l’application elle-même
• Il faut enregistrer l’application
• Le token obtenu sera fourni dans l’entête HTTP
API REST
27/02/2016
20
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Package et classes
• Mode de fonctionnement
• Mise en œuvre
• Etablissement de la connexion
• Communiquer
• Les authentifications
27/02/2016
21
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
La console
développeur
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
22
Formation Android 6, niveau Expert alphorm.com™©
Plan
• L’accès à la console
• Comptes de service
• Les identifiants
• La configuration
27/02/2016
23
Formation Android 6, niveau Expert alphorm.com™©
L’accès à la console
• Url : https://console.developers.google.com
• Gérer les projets
• Associer les APIs google
27/02/2016
24
Formation Android 6, niveau Expert alphorm.com™©
Comptes de service
• Les comptes de service permettent d’identifier les utilisateurs autorisés
à modifier les projets
27/02/2016
25
Formation Android 6, niveau Expert alphorm.com™©
Les identifiants
• Pour donner accès aux services google
Identifier votre appli
Demander une autorisation
Accéder au Cloud
27/02/2016
3
Formation Android 6, niveau Expert 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/
27/02/2016
27
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• L’accès à la console
• Comptes de service
• Les identifiants
• La configuration
27/02/2016
28
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Location
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
29
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Package et classes
• La dernière localisation connue
• Suivre la localisation
• Trouver une adresse
• La détection de zones
27/02/2016
30
Formation Android 6, niveau Expert alphorm.com™©
Package et classes
• Package com.google.android.gms.location
• Location
• FusedLocationApi
• LocationRequest
• LocationListener
• GeoCoder
• GeoFence
• Et ne pas oublier les permissions dans AndroidManifest.xml
27/02/2016
31
Formation Android 6, niveau Expert alphorm.com™©
La dernière localisation connue
• Le proxy
• La localisation
27/02/2016
32
Formation Android 6, niveau Expert alphorm.com™©
Suivre la localisation
• Utiliser un LocationListener
• Abonner
• Implémenter
27/02/2016
33
Formation Android 6, niveau Expert alphorm.com™©
Trouver une adresse
• Geocoder retrouve une adresse à partir de ses cordonnées
• Les accès sont longs, donc penser à des appels asynchrones
• Il faut aussi que la recherche continue même si l’application est arrêtée
27/02/2016
34
Formation Android 6, niveau Expert alphorm.com™©
La détection de zones
• Créer des objets Geofence
• Utiliser Geofence.Builder
• Passer la liste des Geofence à une GeofenceRequest
• Les transitions déclencheront l’Intent enregistré
GEOFENCE_TRANSITION_EXIT
GEOFENCE_TRANSITION_ENTER
GEOFENCE_TRANSITION_DWELL
27/02/2016
35
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Package et classes
• La dernière localisation connue
• Suivre la localisation
• Trouver une adresse
• La détection de zones
27/02/2016
36
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Google SignIn
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
37
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Mise en place du projet
• Démarrer Google SignIn
• Exploiter Google SignIn
• Récupérer les informations
27/02/2016
38
Formation Android 6, niveau Expert alphorm.com™©
Mise en place du projet
• Récupérer le hash SHA1 du certificat que vous utilisez pour signer votre
projet
• Utiliser Google Developer Console
Fournir le nom du projet, le package et le hash
Générer le fichier de configuration
Copier le fichier de configuration
• Répertoire /app
• Attention à la compatibilité entre versions
27/02/2016
39
Formation Android 6, niveau Expert alphorm.com™©
Démarrer Google SignIn
• La méthode concernée est onCreate
• Spécifier les options d’accès aux infos de l’utilisateur
Avec : GoogleSignInOptions
Infos de base : DEFAULT_SIGN_IN
La méthode requestEmail permet la récupération de l’email
La méthode requestScopes permet l’accès aux Google Apis
• Créer le GoogleApiClient nécessaire
com.google.android.gms.auth.api.signin.GoogleSignInOptions
27/02/2016
40
Formation Android 6, niveau Expert alphorm.com™©
Exploiter Google SignIn
• Utilisez un bouton de type SignInButton
• Réagir sur le clic bouton
• Démarrer l’activité pour engager le SignIn
27/02/2016
41
Formation Android 6, niveau Expert alphorm.com™©
Récupérer les informations
• Le nom de l’utilisateur
27/02/2016
42
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Mise en place du projet
• Démarrer Google SignIn
• Exploiter Google SignIn
• Récupérer les informations
27/02/2016
43
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Google Fit
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
44
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Généralités
• Les senseurs
• L’enregistrement
• L’historique
• Les sessions
27/02/2016
45
Formation Android 6, niveau Expert alphorm.com™©
Généralités
• Google Fit est composées de plusieurs APIs
Les senseurs : accès aux capteurs du mobile et des wearables
L’enregistrement : enregistrement automatique des données
L’historique : accès aux historiques de données
Les sessions : gestion des intervalles de temps
La gestion du Bluetooth Low Energy : gestion des périphériques BLE
• Google Fit doit être activée
27/02/2016
46
Formation Android 6, niveau Expert alphorm.com™©
Activation de Google Fit
• Il faut utiliser la console développeur
Nécessite un compte google
• Activer Google Fit
• Créer un identifiant client OAuth 2.0
• Enregistrer le certificat public
27/02/2016
47
Formation Android 6, niveau Expert alphorm.com™©
Les senseurs
• Fonctionnalités :
Lister les sources de données disponibles
Abonner des observateurs aux capteurs
Désabonner
• Les données lues ne sont pas enregistrées
• Ne persistent pas
27/02/2016
48
Formation Android 6, niveau Expert alphorm.com™©
L’enregistrement
• Permet d’enregistrer automatiquement des données des capteurs
• Une souscription correspond à une application, une source de données,
un type de données
• Les enregistrements sont réalisés même lorsque l’application est arrêtée
• Ces données alimentent l’historique
27/02/2016
49
Formation Android 6, niveau Expert alphorm.com™©
L’historique
• Pour visualiser et traiter des données enregistrées préalablement
• Pour importer des données
• Pour supprimer des données
27/02/2016
50
Formation Android 6, niveau Expert alphorm.com™©
Les sessions
• Une session est un intervalle de temps dans lequel sont enregistrés des
données
• Une session peut être temps réel ou bien créée a posteriori
27/02/2016
51
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Généralités
• Les senseurs
• L’enregistrement
• L’historique
• Les sessions
27/02/2016
52
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Google Analytics
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
53
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Créer le projet
• Suivre l’utilisateur
• Consulter les résultats
• Autres indicateurs
27/02/2016
54
Formation Android 6, niveau Expert alphorm.com™©
Créer le projet
• Modifier le AndroidManifest.xml, afin d’introduire les permissions
INTERNET et ACCESS_NETWORK_STATE
• Modifier le script Gradle niveau projet afin d’utiliser google-services et
le plugin google
• Modifier le script Gradle niveau application afin d’ajouter la dépendance
de compilation vers google-services
• Récupérer un fichier de configuration json utilisé par le plugin
27/02/2016
55
Formation Android 6, niveau Expert alphorm.com™©
Suivre l’utilisateur
• Le suivi de base décrit ici concerne le suivi des écrans que l’utilisateur va
parcourir
• Modifier l’Application pour fournir un accès au « tracker »
Dériver la classe Application
• Pour chaque activité, créer un accès au « tracker »
Méthode onCreate
• Invoquer le « tracker » lorsque la page change
Méthode onResume
27/02/2016
56
Formation Android 6, niveau Expert alphorm.com™©
Consulter les résultats
• Accéder au site : https://www.google.com/analytics/web
• Nécessite de se créer un compte,
et des codes de suivi
• Obtention des rapports
27/02/2016
57
Formation Android 6, niveau Expert alphorm.com™©
Autres indicateurs
• Connaître quel lien a mené au chargement de l’application
• Suivre les exceptions gérées ou non
• Créer ses propres indicateurs, relevés par Google Analytics
• Connaître les publicités utilisées
• Mesures des actions liées au e-commerce
• Suivre les événements liés aux actions de l’utilisateur
• Gestion de sessions pour regrouper les métriques
• Interactions avec les réseaux sociaux (quel réseau, quelle action…)
• Mesure du temps (pour charger une ressource…)
• Identifier l’utilisateur à travers plusieurs applications
27/02/2016
58
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Créer le projet
• Suivre l’utilisateur
• Consulter les résultats
• Autres indicateurs
27/02/2016
59
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Google+
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
60
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Ajouter Google SignIn
• Activer Google+ API
• Créer des posts
• Gérer les applications
• Récupérer des informations sur les utilisateurs
27/02/2016
61
Formation Android 6, niveau Expert alphorm.com™©
Ajouter Google SignIn
• Récupérer le hash SHA1 du certificat que vous utilisez pour signer votre
projet
• Utiliser Google Developer Console
Fournir le nom du projet, le package et le hash
Générer le fichier de configuration
Copier le fichier de configuration
• Répertoire /app
• Attention à la compatibilité entre versions
27/02/2016
62
Formation Android 6, niveau Expert alphorm.com™©
Activer Google+
• Utiliser la console développeurs
27/02/2016
63
Formation Android 6, niveau Expert alphorm.com™©
Créer des posts
• Utiliser PlusShare
27/02/2016
64
Formation Android 6, niveau Expert alphorm.com™©
Gérer les applications
• Ecrire une activité d’application
Inscrire que l’utilisateur fait usage d’une application
Utiliser MomentsApi
• Lister les activités d’applications
• Supprimer une activité
27/02/2016
65
Formation Android 6, niveau Expert alphorm.com™©
Récupérer des informations
• Récupérer la liste des personnes du cercle de l’utilisateur
Plus.PeopleApi
• Récupérer des informations de profil
• Récupérer email et adresse
Attention aux permissions
Plus.AccountApi
27/02/2016
66
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Ajouter Google SignIn
• Activer Google+ API
• Créer des posts
• Gérer les applications
• Récupérer des informations sur les utilisateurs
27/02/2016
67
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Google Maps
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
68
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Obtenir une clé
• MapsActivity
• L’objet Map
27/02/2016
69
Formation Android 6, niveau Expert alphorm.com™©
Obtenir une clé
• Récupérer une clé d’accès auprès de Google
27/02/2016
70
Formation Android 6, niveau Expert alphorm.com™©
MapsActivity
• Activité préparée pour accueillir une carte
• Méthode onCreate pour déclencher le chargement asynchrone
• Traiter la carte lorsqu’on la récupère
27/02/2016
71
Formation Android 6, niveau Expert alphorm.com™©
L’objet Map
• La classe GoogleMap
• Connexion aux services de cartes
• Chargement des tuiles
• Affichage des titres
• Contrôles supplémentaires
• Réponse standard zoom
27/02/2016
72
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Obtenir une clé
• MapsActivity
• L’objet Map
27/02/2016
73
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Google Drive
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
74
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Enregistrer un certificat
• Accéder à Google Drive
• Exemples d’opérations
27/02/2016
75
Formation Android 6, niveau Expert alphorm.com™©
Enregistrer un certificat
• Utilisation de google play services sdk
• Sur la console developer
https://console.developers.google.com/flows/enableapi?apiid=drive&credent
ial=client_key
• Le certificat Oauth 2.0 est nécessaire
• Pour des niveaux d’accès autres que drive.file et drive.appfolder, il faut
utiliser l’API REST
27/02/2016
76
Formation Android 6, niveau Expert alphorm.com™©
Accéder à Google Drive
• Créer un client (proxy) pour accéder aux services
• Gérer les connexions et déconnexions
27/02/2016
77
Formation Android 6, niveau Expert alphorm.com™©
Exemples d’opérations
• Lire des fichiers, répertoires…
• Créer des fichiers, des répertoires
• Faire des recherche de fichiers…
• Supprimer fichiers et répertoires
• Etre à l’écoute des modifications
27/02/2016
78
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Installation du projet
• Enregistrer un certificat
• Accéder à Google Drive
• Exemples d’opérations
27/02/2016
79
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Google Mobile Ads
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
80
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Déclarer les permissions
• Les identifiants de publicité
• Insérer une vue publicitaire
27/02/2016
81
Formation Android 6, niveau Expert alphorm.com™©
Déclarer les permissions
• Modifier le AndroidManifest.xml le cas échéant
• Modifier le script Gradle du module pour ajouter la dépendance vers les
services Google, spécialement ads
27/02/2016
82
Formation Android 6, niveau Expert alphorm.com™©
Les identifiants
• Créer un bloc d’annonce et suivant les instructions
• Le lien https://support.google.com/admob/answer/3052638
27/02/2016
4
Formation Android 6, niveau Expert alphorm.com™©
Mes formations sur alphorm
27/02/2016
4
Formation Android 6, niveau Expert alphorm.com™©
Mes formations sur alphorm
27/02/2016
85
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Déclarer les permissions
• Les identifiants de publicité
• Insérer une vue publicitaire
27/02/2016
86
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Google Pay
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
87
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Obtenir l’identifiant client Oauth 2.0
• La classe WalletFragment
• La clé à fournir
27/02/2016
88
Formation Android 6, niveau Expert alphorm.com™©
Obtenir l’identifiant Oauth 2.0
• Enregistrer l’application et obtenir un certificat
• Permet de s’authentifier tout en demandant l’autorisation auprès de
l’utilisateur proprétaire
27/02/2016
89
Formation Android 6, niveau Expert alphorm.com™©
La classe WalletFragment
• Prise en charge du flux d’achat
• Les acheteurs permettent aux vendeurs d’accéder à leurs infos de
paiement
• L’application récupère un objet MaskedWallet : carte bancaire partielle,
infos adresses…
• Puis requête de FullWallet : toutes les infos nécessaires pour valider le
paiement
27/02/2016
90
Formation Android 6, niveau Expert alphorm.com™©
La clé publique à fournir
• Format Elliptic Curve Integrated
• Utiliser OpenSSL pour l’obtenir
27/02/2016
91
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Obtenir l’identifiant client Oauth 2.0
• La classe WalletFragment
• La clé publique à fournir
27/02/2016
92
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Google Wear
Google Play Services
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
93
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Packages et classes
• MessageApi
• Data Layer Api
27/02/2016
94
Formation Android 6, niveau Expert alphorm.com™©
Package et classes
• CapabilityApi : propose une API pour découvre les possibilités des
wearables
• DataApi : propose une API pour gérer les accès aux données
• MessageApi : propose une API pour envoyer des messages
• NodeApi : propose une API pour parcourir et découvrir les nœuds des
wearables
27/02/2016
95
Formation Android 6, niveau Expert alphorm.com™©
MessageApi
• Obtenir une connexion
• Savoir où envoyer ce message
• Envoyer le message
• Il est possible de recevoir les messages
27/02/2016
96
Formation Android 6, niveau Expert alphorm.com™©
DataLayer Api
• Obtention d’une connexion
• Objectif de synchronisation de données entre mobile et wearable
• Créer un objet de type PutDataRequest
• Ou mieux PuDataMapRequest, paires clés –valeurs
Sérialisation simple et efficace
27/02/2016
5
Formation Android 6, niveau Expert alphorm.com™©
Pourquoi Android Expert ?
• Android est une plateforme vaste
• De nombreux usages, de nombreuses APIs
• Nous centrons notre formation sur des aspects exotiques
• L’usage du C pour créer des applications
• Les besoins en performances
• Les objets connectés
27/02/2016
5
Formation Android 6, niveau Expert alphorm.com™©
Pourquoi Android Expert ?
• Android est une plateforme vaste
• De nombreux usages, de nombreuses APIs
• Nous centrons notre formation sur des aspects exotiques
• L’usage du C pour créer des applications
• Les besoins en performances
• Les objets connectés
27/02/2016
5
Formation Android 6, niveau Expert alphorm.com™©
Pourquoi Android Expert ?
• Android est une plateforme vaste
• De nombreux usages, de nombreuses APIs
• Nous centrons notre formation sur des aspects exotiques
• L’usage du C pour créer des applications
• Les besoins en performances
• Les objets connectés
27/02/2016
5
Formation Android 6, niveau Expert alphorm.com™©
Pourquoi Android Expert ?
• Android est une plateforme vaste
• De nombreux usages, de nombreuses APIs
• Nous centrons notre formation sur des aspects exotiques
• L’usage du C pour créer des applications
• Les besoins en performances
• Les objets connectés
27/02/2016
101
Formation Android 6, niveau Expert alphorm.com™©
Le contrôle WebView
• Le contrôle WebView permet d’inclure un accès web dans une activité
• Interface spécifique
• Support normal du HTML et du Javascript
• Possibilités d’interactions avec l’application locale
• Nécessité de déclarer les permissions
27/02/2016
102
Formation Android 6, niveau Expert alphorm.com™©
L’accès aux Webservices
• Il est possible d’accéder aux serveur web par le protocole HTTP
• Google propose une API dite REST pour ses applications
27/02/2016
103
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Avec le navigateur Android
• Le contrôle Webview
• L’accès aux webservices
27/02/2016
104
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Le packaging
Web et Android
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
105
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Le problème de la compression
• Trouver une solution de déploiement
• Le transfert de l’application
27/02/2016
106
Formation Android 6, niveau Expert alphorm.com™©
Le problème de la compression
• Il peut être nécessaire de compresser les infos à télécharger
• Utiliser un fichier jar
• L’outil yuicompressor permet de compresser les js
27/02/2016
107
Formation Android 6, niveau Expert alphorm.com™©
Trouver une solution de déploiement
• Combien de domaines j’obtiens ?
• Quelle réactivité du support ?
• Quels outils de gestion ?
• Que se passe-t-il quand je dépasse mes plans ?
• Y a-t-il un accès CRON ?
27/02/2016
108
Formation Android 6, niveau Expert alphorm.com™©
Le transfert de l’application
• Réalisée en général via FTP
• Besoin de transfert sécurisé, SFTP
• L’outil Filezilla par exemple
27/02/2016
109
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Le problème de la compression
• Trouver une solution de déploiement
• Le transfert de l’application
27/02/2016
110
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Les résolutions
Web et Android
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
111
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Le problème des résolutions
• La solution avec CSS
27/02/2016
112
Formation Android 6, niveau Expert alphorm.com™©
Le problème des résolutions
• Les résolutions sont très différentes d’un appareil à l’autre
• Sans compter les ordinateurs de bureau
27/02/2016
113
Formation Android 6, niveau Expert alphorm.com™©
La solution avec CSS
• Réorganiser les pages en fonctions de la résolution
• Les javascript media queries
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
6
Formation Android 6, niveau Expert alphorm.com™©
Le plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
134
Formation Android 6, niveau Expert alphorm.com™©
Accéder à une collection d’élements
• Faire une requête avec GET en fournissant l’URI
• Penser à l’asynchrone …
27/02/2016
135
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Principe
• Créer un élément par REST
• Accéder à une collection d’éléments
27/02/2016
136
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Webservice REST et JSON
Web et Android
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
137
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Le format JSON
• Créer un élément par REST
• Accéder à une collection d’éléments
27/02/2016
138
Formation Android 6, niveau Expert alphorm.com™©
Le format JSON
• JavaScript Object Notation
• Format d’échange standard
27/02/2016
139
Formation Android 6, niveau Expert alphorm.com™©
Les méthodes
• L’application android utilise les méthodes :
GET pour récupérer
POST pour créer
PUT pour modifier
DELETE pour supprimer
• Les autres méthodes peuvent avoir d’autres usages
• Pas de gestion d’états sur le serveur
27/02/2016
140
Formation Android 6, niveau Expert alphorm.com™©
Créer un élément par REST
• Faire un accès avec POST
27/02/2016
141
Formation Android 6, niveau Expert alphorm.com™©
Accéder à une collection d’élements
• Faire une requête avec GET en fournissant l’URI
• Désérialiser
27/02/2016
142
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Le format JSON
• Créer un élément par REST
• Accéder à une collection d’éléments
27/02/2016
143
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Création packaging
Android natif
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
144
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Le NDK dans Android Studio
• Le projet et Gradle
• Intégrer du C
27/02/2016
145
Formation Android 6, niveau Expert alphorm.com™©
Le NDK dans Android Studio
• Sur le projet en cours …
Open Module Settings -> SDK Location
27/02/2016
146
Formation Android 6, niveau Expert alphorm.com™©
Le projet et Gradle
• Modifier la version de Gradle
• Adapter le script
27/02/2016
7
Formation Android 6, niveau Expert 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
• La connaissance du C ou C++ est souhaitable
• Nous ne reviendrons pas sur les concepts des langages
27/02/2016
7
Formation Android 6, niveau Expert 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
• La connaissance du C ou C++ est souhaitable
• Nous ne reviendrons pas sur les concepts des langages
27/02/2016
7
Formation Android 6, niveau Expert 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
• La connaissance du C ou C++ est souhaitable
• Nous ne reviendrons pas sur les concepts des langages
27/02/2016
7
Formation Android 6, niveau Expert 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
• La connaissance du C ou C++ est souhaitable
• Nous ne reviendrons pas sur les concepts des langages
27/02/2016
7
Formation Android 6, niveau Expert 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
• La connaissance du C ou C++ est souhaitable
• Nous ne reviendrons pas sur les concepts des langages
27/02/2016
152
Formation Android 6, niveau Expert alphorm.com™©
Les types de données
• Gérer la correspondance entre types Java et C
27/02/2016
153
Formation Android 6, niveau Expert alphorm.com™©
Le contenu du NDK
• Un ensemble d’outils pour encapsuler du C et C++ dans vos
applications
• Un outil pour charger, compiler : ndk-build
• Les bibliothèques natives partagées ou statiques
• Un outil de debug
• Un manifest pour déclarer les dépendances
27/02/2016
154
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Appeler du C à partir de Java
• Les types de données
• Le contenu du NDK
27/02/2016
155
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Découverte
Renderscript
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
156
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Présentation
• Créer le script
• Initialiser le script
• Intégrer le script dans une vue
27/02/2016
157
Formation Android 6, niveau Expert alphorm.com™©
Présentation
• Renderscript est un langage de script à haute performance
Syntaxe du C99
• Orienté rendu graphique et calculs rapides
• Sera compilé en code natif plus tard par le système
• Dispose d’une API
27/02/2016
158
Formation Android 6, niveau Expert alphorm.com™©
Créer le script
• Il faut écrire un « kernel », fichier de script qui doit être placé sous src
• Peut contenir :
Des fonctions qui seront invoquées
Des variables globales
Des fonctions parallèles (sur itération dans des Allocations)
Eventuellement une fonction init(), invoquée lors du démarrage du script
• Utiliser les APIs Renderscript « android.renderscript »
27/02/2016
159
Formation Android 6, niveau Expert alphorm.com™©
Configuration
• Modifier le script Gradle pour référencer Renderscipt
27/02/2016
160
Formation Android 6, niveau Expert alphorm.com™©
Primitives
• Des primitives sont disponibles sous la forme de ScriptIntrinsics
• Grosses économies de temps
27/02/2016
161
Formation Android 6, niveau Expert alphorm.com™©
Initialiser le script
• Créer un objet RenderScript : contexte d’utilisation des scripts, unique
dans l’application
• Créer d’Allocation : mémoire en entrée et en sortie, utilisée par le script
Créée par createFromBitmap et createTyped
• et instancier le script généré
Script_<nom>
• Fournir les données via des setter
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
8
Formation Android 6, niveau Expert alphorm.com™©
Prérequis de la formation
• Savoir lire du code Java
• Avoir des rudiments sur les interfaces graphiques
• Avoir des notions de pointeurs
• Et … du courage comme toujours !
27/02/2016
174
Formation Android 6, niveau Expert alphorm.com™©
Notification avec action
• Prévoir un Intent pour représenter l’action à déclencher
• Utiliser setContentIntent pour positionner l’Intent sur la notification
• Pour lancer des activités sur le Wearable, il faut positionner l’action sur
WearableExtender
27/02/2016
175
Formation Android 6, niveau Expert alphorm.com™©
Les notifications multipages
• Préparer une liste de notifications
• Créer un WearableExtender
• Positionner ce WearableExtender sur la notification réelle
27/02/2016
176
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Les classes pour la notification
• Les textes longs
• Notification avec action
• Les notifications multipages
27/02/2016
177
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Utiliser les capteurs
Google Wear
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
178
Formation Android 6, niveau Expert alphorm.com™©
Plan
• La configuration du projet
• Les capteurs
• La capture du pouls
• Répondre aux événements
27/02/2016
179
Formation Android 6, niveau Expert alphorm.com™©
La configuration du projet
• Le manifest doit comporter les permissions
• Accéder au gestionnaire
SensorManager
• Accéder au capteur que l’on souhaite utiliser
27/02/2016
180
Formation Android 6, niveau Expert alphorm.com™©
Les capteurs
27/02/2016
181
Formation Android 6, niveau Expert alphorm.com™©
La capture du pouls
• Enregistrer le listener
27/02/2016
182
Formation Android 6, niveau Expert alphorm.com™©
Répondre aux événements
• Implémenter onSensorChanged
• SensorEvent en paramètre
27/02/2016
183
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• La configuration du projet
• Les capteurs
• La capture du pouls
• Répondre aux événements
27/02/2016
184
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Gérer la voix
Google Wear
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
185
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Utiliser les événements voix prédéfinis
• La classe RemoteInput
• Usage du BroadcastReceiver
27/02/2016
186
Formation Android 6, niveau Expert alphorm.com™©
Les événements voix prédéfinis
• Les événements voix sont déjà identifiés
• Possible de faire répondre votre application
27/02/2016
187
Formation Android 6, niveau Expert alphorm.com™©
La classe RemoteInput
• Pour récupérer une entrée vocale de l’utilisateur
• Va lancer une PendingIntent, qui contient (l’Intent qui contient) les
entrées de l’utilisateur
27/02/2016
188
Formation Android 6, niveau Expert alphorm.com™©
Usage du BroadcastReceiver
• Un BroadcastReceiver permet de récupérer sur le mobile la réponse
• Il doit être enregistré
27/02/2016
189
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Utiliser les événements voix prédéfinis
• La classe RemoteInput
• Usage du BroadCastReceiver
27/02/2016
190
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Gérer la
communication
Google Wear
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
191
Formation Android 6, niveau Expert alphorm.com™©
Plan
• Emettre des données vers le wearable
• Sur le wearable
27/02/2016
192
Formation Android 6, niveau Expert alphorm.com™©
Emettre des données vers le wearable
• PutDataMapRequest permet d’accéder aux données partagées
• Identifier la zone de données
• L’écoute se fait sur un WearableListenerService
27/02/2016
9
Formation Android 6, niveau Expert alphorm.com™©
Les outils nécessaires
• L’IDE principal est Android Studio 1.5.x
• Nous utilisons aussi Android Studio 2.0
• La présentation sera faite sous Windows 10
27/02/2016
194
Formation Android 6, niveau Expert alphorm.com™©
Ce qu’on a couvert
• Emettre des données vers le wearable
• Sur le wearable
27/02/2016
195
Formation Android 6, niveau Expert alphorm.com™©
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Conclusion
Android expert
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
27/02/2016
196
Formation Android 6, niveau Expert alphorm.com™©
Plan de la formation
• Les services Google Play Services
• Les applications Web et Android
• Android Natif, introduction à NDK
• RenderScript
• Google Wear
27/02/2016
197
Formation Android 6, niveau Expert alphorm.com™©
Les autres formations dév sur Alphorm
27/02/2016
198
Formation Android 6, niveau Expert alphorm.com™©
Pour continuer …
• La formation Java fondamentaux …
• La formation Java avancée …
• La formation Android …
27/02/2016
199
Formation Android 6, niveau Expert alphorm.com™©
Merci d’avoir suivi cette formation,
rendez-vous pour la suite !

Alphorm.com Support Formation Android 6, Expert

  • 1.
    27/02/2016 1 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Présentation Android expert Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 2.
    27/02/2016 2 Formation Android 6,niveau Expert alphorm.com™© Plan • Présentation du formateur • Pourquoi Android Expert? • Présentation de votre formation • Le plan de la formation • Publics concernés • Prérequis de la formation
  • 3.
    27/02/2016 2 Formation Android 6,niveau Expert alphorm.com™© Plan • Présentation du formateur • Pourquoi Android Expert? • Présentation de votre formation • Le plan de la formation • Publics concernés • Prérequis de la formation
  • 4.
    27/02/2016 4 Formation Android 6,niveau Expert alphorm.com™© Mes formations sur alphorm
  • 5.
    27/02/2016 5 Formation Android 6,niveau Expert alphorm.com™© Pourquoi Android Expert ? • Android est une plateforme vaste • De nombreux usages, de nombreuses APIs • Nous centrons notre formation sur des aspects exotiques • L’usage du C pour créer des applications • Les besoins en performances • Les objets connectés
  • 6.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 7.
    27/02/2016 7 Formation Android 6,niveau Expert 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 • La connaissance du C ou C++ est souhaitable • Nous ne reviendrons pas sur les concepts des langages
  • 8.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 9.
    27/02/2016 9 Formation Android 6,niveau Expert alphorm.com™© Les outils nécessaires • L’IDE principal est Android Studio 1.5.x • Nous utilisons aussi Android Studio 2.0 • La présentation sera faite sous Windows 10
  • 10.
    27/02/2016 10 Formation Android 6,niveau Expert alphorm.com™© Les autres formations dév sur Alphorm
  • 11.
    27/02/2016 11 Formation Android 6,niveau Expert alphorm.com™© Are you ready ? ☺
  • 12.
    27/02/2016 12 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Généralités Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 13.
    27/02/2016 13 Formation Android 6,niveau Expert alphorm.com™© Plan • Package et classes • Mode de fonctionnement • Mise en œuvre • Etablissement de la connexion • Communiquer • Les authentifications
  • 14.
    27/02/2016 14 Formation Android 6,niveau Expert alphorm.com™© Package et classes • Les packages com.google.android.gms • La classe com.google.android.gms.common.api.GoogleApiClient • Chaque API est représentée par un package
  • 15.
    27/02/2016 15 Formation Android 6,niveau Expert alphorm.com™© Mode fonctionnement • Architecture Un proxy côté client va servir la communication Nécessite le « Google Play Services SDK » • Pour accéder aux services Google non concernés par le SDK Utiliser la classe GoogleAuthUtil Permet la manipulation d’un jeton OAuth2.0
  • 16.
    27/02/2016 16 Formation Android 6,niveau Expert alphorm.com™© Mise en oeuvre • Configurer le projet(fichier Gradle sous Android Studio) • GoogleApiClient est la classe à utiliser • Avec le builder associé, afin de faciliter la configuration • Possibilités de gérer les exceptions liées
  • 17.
    27/02/2016 17 Formation Android 6,niveau Expert alphorm.com™© Etablissement de la connexion • Etablir la connexion pour communiquer • GoogleApiClient servira de proxy • Bonnes pratiques pour établir/couper la connexion • Ignorer ou non les erreurs de connexion • Accéder à différentes APIs, cas particulier de Wearable
  • 18.
    27/02/2016 18 Formation Android 6,niveau Expert alphorm.com™© Communiquer • Les accès aux services peuvent nécessiter des paramètres supplémentaires Un certificat récupérable sur la console • La communication peut être synchrone ou non synchrone
  • 19.
    27/02/2016 19 Formation Android 6,niveau Expert alphorm.com™© Les authentifications • Pour les services qui nécessitent une authentification Authentifier l’utilisateur de l’application • Définit un ensemble de droits Certifier l’application elle-même • Il faut enregistrer l’application • Le token obtenu sera fourni dans l’entête HTTP API REST
  • 20.
    27/02/2016 20 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Package et classes • Mode de fonctionnement • Mise en œuvre • Etablissement de la connexion • Communiquer • Les authentifications
  • 21.
    27/02/2016 21 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog La console développeur Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 22.
    27/02/2016 22 Formation Android 6,niveau Expert alphorm.com™© Plan • L’accès à la console • Comptes de service • Les identifiants • La configuration
  • 23.
    27/02/2016 23 Formation Android 6,niveau Expert alphorm.com™© L’accès à la console • Url : https://console.developers.google.com • Gérer les projets • Associer les APIs google
  • 24.
    27/02/2016 24 Formation Android 6,niveau Expert alphorm.com™© Comptes de service • Les comptes de service permettent d’identifier les utilisateurs autorisés à modifier les projets
  • 25.
    27/02/2016 25 Formation Android 6,niveau Expert alphorm.com™© Les identifiants • Pour donner accès aux services google Identifier votre appli Demander une autorisation Accéder au Cloud
  • 26.
    27/02/2016 3 Formation Android 6,niveau Expert 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/
  • 27.
    27/02/2016 27 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • L’accès à la console • Comptes de service • Les identifiants • La configuration
  • 28.
    27/02/2016 28 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Location Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 29.
    27/02/2016 29 Formation Android 6,niveau Expert alphorm.com™© Plan • Package et classes • La dernière localisation connue • Suivre la localisation • Trouver une adresse • La détection de zones
  • 30.
    27/02/2016 30 Formation Android 6,niveau Expert alphorm.com™© Package et classes • Package com.google.android.gms.location • Location • FusedLocationApi • LocationRequest • LocationListener • GeoCoder • GeoFence • Et ne pas oublier les permissions dans AndroidManifest.xml
  • 31.
    27/02/2016 31 Formation Android 6,niveau Expert alphorm.com™© La dernière localisation connue • Le proxy • La localisation
  • 32.
    27/02/2016 32 Formation Android 6,niveau Expert alphorm.com™© Suivre la localisation • Utiliser un LocationListener • Abonner • Implémenter
  • 33.
    27/02/2016 33 Formation Android 6,niveau Expert alphorm.com™© Trouver une adresse • Geocoder retrouve une adresse à partir de ses cordonnées • Les accès sont longs, donc penser à des appels asynchrones • Il faut aussi que la recherche continue même si l’application est arrêtée
  • 34.
    27/02/2016 34 Formation Android 6,niveau Expert alphorm.com™© La détection de zones • Créer des objets Geofence • Utiliser Geofence.Builder • Passer la liste des Geofence à une GeofenceRequest • Les transitions déclencheront l’Intent enregistré GEOFENCE_TRANSITION_EXIT GEOFENCE_TRANSITION_ENTER GEOFENCE_TRANSITION_DWELL
  • 35.
    27/02/2016 35 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Package et classes • La dernière localisation connue • Suivre la localisation • Trouver une adresse • La détection de zones
  • 36.
    27/02/2016 36 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Google SignIn Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 37.
    27/02/2016 37 Formation Android 6,niveau Expert alphorm.com™© Plan • Mise en place du projet • Démarrer Google SignIn • Exploiter Google SignIn • Récupérer les informations
  • 38.
    27/02/2016 38 Formation Android 6,niveau Expert alphorm.com™© Mise en place du projet • Récupérer le hash SHA1 du certificat que vous utilisez pour signer votre projet • Utiliser Google Developer Console Fournir le nom du projet, le package et le hash Générer le fichier de configuration Copier le fichier de configuration • Répertoire /app • Attention à la compatibilité entre versions
  • 39.
    27/02/2016 39 Formation Android 6,niveau Expert alphorm.com™© Démarrer Google SignIn • La méthode concernée est onCreate • Spécifier les options d’accès aux infos de l’utilisateur Avec : GoogleSignInOptions Infos de base : DEFAULT_SIGN_IN La méthode requestEmail permet la récupération de l’email La méthode requestScopes permet l’accès aux Google Apis • Créer le GoogleApiClient nécessaire com.google.android.gms.auth.api.signin.GoogleSignInOptions
  • 40.
    27/02/2016 40 Formation Android 6,niveau Expert alphorm.com™© Exploiter Google SignIn • Utilisez un bouton de type SignInButton • Réagir sur le clic bouton • Démarrer l’activité pour engager le SignIn
  • 41.
    27/02/2016 41 Formation Android 6,niveau Expert alphorm.com™© Récupérer les informations • Le nom de l’utilisateur
  • 42.
    27/02/2016 42 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Mise en place du projet • Démarrer Google SignIn • Exploiter Google SignIn • Récupérer les informations
  • 43.
    27/02/2016 43 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Google Fit Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 44.
    27/02/2016 44 Formation Android 6,niveau Expert alphorm.com™© Plan • Généralités • Les senseurs • L’enregistrement • L’historique • Les sessions
  • 45.
    27/02/2016 45 Formation Android 6,niveau Expert alphorm.com™© Généralités • Google Fit est composées de plusieurs APIs Les senseurs : accès aux capteurs du mobile et des wearables L’enregistrement : enregistrement automatique des données L’historique : accès aux historiques de données Les sessions : gestion des intervalles de temps La gestion du Bluetooth Low Energy : gestion des périphériques BLE • Google Fit doit être activée
  • 46.
    27/02/2016 46 Formation Android 6,niveau Expert alphorm.com™© Activation de Google Fit • Il faut utiliser la console développeur Nécessite un compte google • Activer Google Fit • Créer un identifiant client OAuth 2.0 • Enregistrer le certificat public
  • 47.
    27/02/2016 47 Formation Android 6,niveau Expert alphorm.com™© Les senseurs • Fonctionnalités : Lister les sources de données disponibles Abonner des observateurs aux capteurs Désabonner • Les données lues ne sont pas enregistrées • Ne persistent pas
  • 48.
    27/02/2016 48 Formation Android 6,niveau Expert alphorm.com™© L’enregistrement • Permet d’enregistrer automatiquement des données des capteurs • Une souscription correspond à une application, une source de données, un type de données • Les enregistrements sont réalisés même lorsque l’application est arrêtée • Ces données alimentent l’historique
  • 49.
    27/02/2016 49 Formation Android 6,niveau Expert alphorm.com™© L’historique • Pour visualiser et traiter des données enregistrées préalablement • Pour importer des données • Pour supprimer des données
  • 50.
    27/02/2016 50 Formation Android 6,niveau Expert alphorm.com™© Les sessions • Une session est un intervalle de temps dans lequel sont enregistrés des données • Une session peut être temps réel ou bien créée a posteriori
  • 51.
    27/02/2016 51 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Généralités • Les senseurs • L’enregistrement • L’historique • Les sessions
  • 52.
    27/02/2016 52 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Google Analytics Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 53.
    27/02/2016 53 Formation Android 6,niveau Expert alphorm.com™© Plan • Créer le projet • Suivre l’utilisateur • Consulter les résultats • Autres indicateurs
  • 54.
    27/02/2016 54 Formation Android 6,niveau Expert alphorm.com™© Créer le projet • Modifier le AndroidManifest.xml, afin d’introduire les permissions INTERNET et ACCESS_NETWORK_STATE • Modifier le script Gradle niveau projet afin d’utiliser google-services et le plugin google • Modifier le script Gradle niveau application afin d’ajouter la dépendance de compilation vers google-services • Récupérer un fichier de configuration json utilisé par le plugin
  • 55.
    27/02/2016 55 Formation Android 6,niveau Expert alphorm.com™© Suivre l’utilisateur • Le suivi de base décrit ici concerne le suivi des écrans que l’utilisateur va parcourir • Modifier l’Application pour fournir un accès au « tracker » Dériver la classe Application • Pour chaque activité, créer un accès au « tracker » Méthode onCreate • Invoquer le « tracker » lorsque la page change Méthode onResume
  • 56.
    27/02/2016 56 Formation Android 6,niveau Expert alphorm.com™© Consulter les résultats • Accéder au site : https://www.google.com/analytics/web • Nécessite de se créer un compte, et des codes de suivi • Obtention des rapports
  • 57.
    27/02/2016 57 Formation Android 6,niveau Expert alphorm.com™© Autres indicateurs • Connaître quel lien a mené au chargement de l’application • Suivre les exceptions gérées ou non • Créer ses propres indicateurs, relevés par Google Analytics • Connaître les publicités utilisées • Mesures des actions liées au e-commerce • Suivre les événements liés aux actions de l’utilisateur • Gestion de sessions pour regrouper les métriques • Interactions avec les réseaux sociaux (quel réseau, quelle action…) • Mesure du temps (pour charger une ressource…) • Identifier l’utilisateur à travers plusieurs applications
  • 58.
    27/02/2016 58 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Créer le projet • Suivre l’utilisateur • Consulter les résultats • Autres indicateurs
  • 59.
    27/02/2016 59 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Google+ Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 60.
    27/02/2016 60 Formation Android 6,niveau Expert alphorm.com™© Plan • Ajouter Google SignIn • Activer Google+ API • Créer des posts • Gérer les applications • Récupérer des informations sur les utilisateurs
  • 61.
    27/02/2016 61 Formation Android 6,niveau Expert alphorm.com™© Ajouter Google SignIn • Récupérer le hash SHA1 du certificat que vous utilisez pour signer votre projet • Utiliser Google Developer Console Fournir le nom du projet, le package et le hash Générer le fichier de configuration Copier le fichier de configuration • Répertoire /app • Attention à la compatibilité entre versions
  • 62.
    27/02/2016 62 Formation Android 6,niveau Expert alphorm.com™© Activer Google+ • Utiliser la console développeurs
  • 63.
    27/02/2016 63 Formation Android 6,niveau Expert alphorm.com™© Créer des posts • Utiliser PlusShare
  • 64.
    27/02/2016 64 Formation Android 6,niveau Expert alphorm.com™© Gérer les applications • Ecrire une activité d’application Inscrire que l’utilisateur fait usage d’une application Utiliser MomentsApi • Lister les activités d’applications • Supprimer une activité
  • 65.
    27/02/2016 65 Formation Android 6,niveau Expert alphorm.com™© Récupérer des informations • Récupérer la liste des personnes du cercle de l’utilisateur Plus.PeopleApi • Récupérer des informations de profil • Récupérer email et adresse Attention aux permissions Plus.AccountApi
  • 66.
    27/02/2016 66 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Ajouter Google SignIn • Activer Google+ API • Créer des posts • Gérer les applications • Récupérer des informations sur les utilisateurs
  • 67.
    27/02/2016 67 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Google Maps Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 68.
    27/02/2016 68 Formation Android 6,niveau Expert alphorm.com™© Plan • Obtenir une clé • MapsActivity • L’objet Map
  • 69.
    27/02/2016 69 Formation Android 6,niveau Expert alphorm.com™© Obtenir une clé • Récupérer une clé d’accès auprès de Google
  • 70.
    27/02/2016 70 Formation Android 6,niveau Expert alphorm.com™© MapsActivity • Activité préparée pour accueillir une carte • Méthode onCreate pour déclencher le chargement asynchrone • Traiter la carte lorsqu’on la récupère
  • 71.
    27/02/2016 71 Formation Android 6,niveau Expert alphorm.com™© L’objet Map • La classe GoogleMap • Connexion aux services de cartes • Chargement des tuiles • Affichage des titres • Contrôles supplémentaires • Réponse standard zoom
  • 72.
    27/02/2016 72 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Obtenir une clé • MapsActivity • L’objet Map
  • 73.
    27/02/2016 73 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Google Drive Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 74.
    27/02/2016 74 Formation Android 6,niveau Expert alphorm.com™© Plan • Enregistrer un certificat • Accéder à Google Drive • Exemples d’opérations
  • 75.
    27/02/2016 75 Formation Android 6,niveau Expert alphorm.com™© Enregistrer un certificat • Utilisation de google play services sdk • Sur la console developer https://console.developers.google.com/flows/enableapi?apiid=drive&credent ial=client_key • Le certificat Oauth 2.0 est nécessaire • Pour des niveaux d’accès autres que drive.file et drive.appfolder, il faut utiliser l’API REST
  • 76.
    27/02/2016 76 Formation Android 6,niveau Expert alphorm.com™© Accéder à Google Drive • Créer un client (proxy) pour accéder aux services • Gérer les connexions et déconnexions
  • 77.
    27/02/2016 77 Formation Android 6,niveau Expert alphorm.com™© Exemples d’opérations • Lire des fichiers, répertoires… • Créer des fichiers, des répertoires • Faire des recherche de fichiers… • Supprimer fichiers et répertoires • Etre à l’écoute des modifications
  • 78.
    27/02/2016 78 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Installation du projet • Enregistrer un certificat • Accéder à Google Drive • Exemples d’opérations
  • 79.
    27/02/2016 79 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Google Mobile Ads Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 80.
    27/02/2016 80 Formation Android 6,niveau Expert alphorm.com™© Plan • Déclarer les permissions • Les identifiants de publicité • Insérer une vue publicitaire
  • 81.
    27/02/2016 81 Formation Android 6,niveau Expert alphorm.com™© Déclarer les permissions • Modifier le AndroidManifest.xml le cas échéant • Modifier le script Gradle du module pour ajouter la dépendance vers les services Google, spécialement ads
  • 82.
    27/02/2016 82 Formation Android 6,niveau Expert alphorm.com™© Les identifiants • Créer un bloc d’annonce et suivant les instructions • Le lien https://support.google.com/admob/answer/3052638
  • 83.
    27/02/2016 4 Formation Android 6,niveau Expert alphorm.com™© Mes formations sur alphorm
  • 84.
    27/02/2016 4 Formation Android 6,niveau Expert alphorm.com™© Mes formations sur alphorm
  • 85.
    27/02/2016 85 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Déclarer les permissions • Les identifiants de publicité • Insérer une vue publicitaire
  • 86.
    27/02/2016 86 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Google Pay Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 87.
    27/02/2016 87 Formation Android 6,niveau Expert alphorm.com™© Plan • Obtenir l’identifiant client Oauth 2.0 • La classe WalletFragment • La clé à fournir
  • 88.
    27/02/2016 88 Formation Android 6,niveau Expert alphorm.com™© Obtenir l’identifiant Oauth 2.0 • Enregistrer l’application et obtenir un certificat • Permet de s’authentifier tout en demandant l’autorisation auprès de l’utilisateur proprétaire
  • 89.
    27/02/2016 89 Formation Android 6,niveau Expert alphorm.com™© La classe WalletFragment • Prise en charge du flux d’achat • Les acheteurs permettent aux vendeurs d’accéder à leurs infos de paiement • L’application récupère un objet MaskedWallet : carte bancaire partielle, infos adresses… • Puis requête de FullWallet : toutes les infos nécessaires pour valider le paiement
  • 90.
    27/02/2016 90 Formation Android 6,niveau Expert alphorm.com™© La clé publique à fournir • Format Elliptic Curve Integrated • Utiliser OpenSSL pour l’obtenir
  • 91.
    27/02/2016 91 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Obtenir l’identifiant client Oauth 2.0 • La classe WalletFragment • La clé publique à fournir
  • 92.
    27/02/2016 92 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Google Wear Google Play Services Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 93.
    27/02/2016 93 Formation Android 6,niveau Expert alphorm.com™© Plan • Packages et classes • MessageApi • Data Layer Api
  • 94.
    27/02/2016 94 Formation Android 6,niveau Expert alphorm.com™© Package et classes • CapabilityApi : propose une API pour découvre les possibilités des wearables • DataApi : propose une API pour gérer les accès aux données • MessageApi : propose une API pour envoyer des messages • NodeApi : propose une API pour parcourir et découvrir les nœuds des wearables
  • 95.
    27/02/2016 95 Formation Android 6,niveau Expert alphorm.com™© MessageApi • Obtenir une connexion • Savoir où envoyer ce message • Envoyer le message • Il est possible de recevoir les messages
  • 96.
    27/02/2016 96 Formation Android 6,niveau Expert alphorm.com™© DataLayer Api • Obtention d’une connexion • Objectif de synchronisation de données entre mobile et wearable • Créer un objet de type PutDataRequest • Ou mieux PuDataMapRequest, paires clés –valeurs Sérialisation simple et efficace
  • 97.
    27/02/2016 5 Formation Android 6,niveau Expert alphorm.com™© Pourquoi Android Expert ? • Android est une plateforme vaste • De nombreux usages, de nombreuses APIs • Nous centrons notre formation sur des aspects exotiques • L’usage du C pour créer des applications • Les besoins en performances • Les objets connectés
  • 98.
    27/02/2016 5 Formation Android 6,niveau Expert alphorm.com™© Pourquoi Android Expert ? • Android est une plateforme vaste • De nombreux usages, de nombreuses APIs • Nous centrons notre formation sur des aspects exotiques • L’usage du C pour créer des applications • Les besoins en performances • Les objets connectés
  • 99.
    27/02/2016 5 Formation Android 6,niveau Expert alphorm.com™© Pourquoi Android Expert ? • Android est une plateforme vaste • De nombreux usages, de nombreuses APIs • Nous centrons notre formation sur des aspects exotiques • L’usage du C pour créer des applications • Les besoins en performances • Les objets connectés
  • 100.
    27/02/2016 5 Formation Android 6,niveau Expert alphorm.com™© Pourquoi Android Expert ? • Android est une plateforme vaste • De nombreux usages, de nombreuses APIs • Nous centrons notre formation sur des aspects exotiques • L’usage du C pour créer des applications • Les besoins en performances • Les objets connectés
  • 101.
    27/02/2016 101 Formation Android 6,niveau Expert alphorm.com™© Le contrôle WebView • Le contrôle WebView permet d’inclure un accès web dans une activité • Interface spécifique • Support normal du HTML et du Javascript • Possibilités d’interactions avec l’application locale • Nécessité de déclarer les permissions
  • 102.
    27/02/2016 102 Formation Android 6,niveau Expert alphorm.com™© L’accès aux Webservices • Il est possible d’accéder aux serveur web par le protocole HTTP • Google propose une API dite REST pour ses applications
  • 103.
    27/02/2016 103 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Avec le navigateur Android • Le contrôle Webview • L’accès aux webservices
  • 104.
    27/02/2016 104 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Le packaging Web et Android Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 105.
    27/02/2016 105 Formation Android 6,niveau Expert alphorm.com™© Plan • Le problème de la compression • Trouver une solution de déploiement • Le transfert de l’application
  • 106.
    27/02/2016 106 Formation Android 6,niveau Expert alphorm.com™© Le problème de la compression • Il peut être nécessaire de compresser les infos à télécharger • Utiliser un fichier jar • L’outil yuicompressor permet de compresser les js
  • 107.
    27/02/2016 107 Formation Android 6,niveau Expert alphorm.com™© Trouver une solution de déploiement • Combien de domaines j’obtiens ? • Quelle réactivité du support ? • Quels outils de gestion ? • Que se passe-t-il quand je dépasse mes plans ? • Y a-t-il un accès CRON ?
  • 108.
    27/02/2016 108 Formation Android 6,niveau Expert alphorm.com™© Le transfert de l’application • Réalisée en général via FTP • Besoin de transfert sécurisé, SFTP • L’outil Filezilla par exemple
  • 109.
    27/02/2016 109 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Le problème de la compression • Trouver une solution de déploiement • Le transfert de l’application
  • 110.
    27/02/2016 110 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Les résolutions Web et Android Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 111.
    27/02/2016 111 Formation Android 6,niveau Expert alphorm.com™© Plan • Le problème des résolutions • La solution avec CSS
  • 112.
    27/02/2016 112 Formation Android 6,niveau Expert alphorm.com™© Le problème des résolutions • Les résolutions sont très différentes d’un appareil à l’autre • Sans compter les ordinateurs de bureau
  • 113.
    27/02/2016 113 Formation Android 6,niveau Expert alphorm.com™© La solution avec CSS • Réorganiser les pages en fonctions de la résolution • Les javascript media queries
  • 114.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 115.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 116.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 117.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 118.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 119.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 120.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 121.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 122.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 123.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 124.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 125.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 126.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 127.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 128.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 129.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 130.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 131.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 132.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 133.
    27/02/2016 6 Formation Android 6,niveau Expert alphorm.com™© Le plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 134.
    27/02/2016 134 Formation Android 6,niveau Expert alphorm.com™© Accéder à une collection d’élements • Faire une requête avec GET en fournissant l’URI • Penser à l’asynchrone …
  • 135.
    27/02/2016 135 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Principe • Créer un élément par REST • Accéder à une collection d’éléments
  • 136.
    27/02/2016 136 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Webservice REST et JSON Web et Android Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 137.
    27/02/2016 137 Formation Android 6,niveau Expert alphorm.com™© Plan • Le format JSON • Créer un élément par REST • Accéder à une collection d’éléments
  • 138.
    27/02/2016 138 Formation Android 6,niveau Expert alphorm.com™© Le format JSON • JavaScript Object Notation • Format d’échange standard
  • 139.
    27/02/2016 139 Formation Android 6,niveau Expert alphorm.com™© Les méthodes • L’application android utilise les méthodes : GET pour récupérer POST pour créer PUT pour modifier DELETE pour supprimer • Les autres méthodes peuvent avoir d’autres usages • Pas de gestion d’états sur le serveur
  • 140.
    27/02/2016 140 Formation Android 6,niveau Expert alphorm.com™© Créer un élément par REST • Faire un accès avec POST
  • 141.
    27/02/2016 141 Formation Android 6,niveau Expert alphorm.com™© Accéder à une collection d’élements • Faire une requête avec GET en fournissant l’URI • Désérialiser
  • 142.
    27/02/2016 142 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Le format JSON • Créer un élément par REST • Accéder à une collection d’éléments
  • 143.
    27/02/2016 143 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Création packaging Android natif Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 144.
    27/02/2016 144 Formation Android 6,niveau Expert alphorm.com™© Plan • Le NDK dans Android Studio • Le projet et Gradle • Intégrer du C
  • 145.
    27/02/2016 145 Formation Android 6,niveau Expert alphorm.com™© Le NDK dans Android Studio • Sur le projet en cours … Open Module Settings -> SDK Location
  • 146.
    27/02/2016 146 Formation Android 6,niveau Expert alphorm.com™© Le projet et Gradle • Modifier la version de Gradle • Adapter le script
  • 147.
    27/02/2016 7 Formation Android 6,niveau Expert 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 • La connaissance du C ou C++ est souhaitable • Nous ne reviendrons pas sur les concepts des langages
  • 148.
    27/02/2016 7 Formation Android 6,niveau Expert 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 • La connaissance du C ou C++ est souhaitable • Nous ne reviendrons pas sur les concepts des langages
  • 149.
    27/02/2016 7 Formation Android 6,niveau Expert 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 • La connaissance du C ou C++ est souhaitable • Nous ne reviendrons pas sur les concepts des langages
  • 150.
    27/02/2016 7 Formation Android 6,niveau Expert 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 • La connaissance du C ou C++ est souhaitable • Nous ne reviendrons pas sur les concepts des langages
  • 151.
    27/02/2016 7 Formation Android 6,niveau Expert 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 • La connaissance du C ou C++ est souhaitable • Nous ne reviendrons pas sur les concepts des langages
  • 152.
    27/02/2016 152 Formation Android 6,niveau Expert alphorm.com™© Les types de données • Gérer la correspondance entre types Java et C
  • 153.
    27/02/2016 153 Formation Android 6,niveau Expert alphorm.com™© Le contenu du NDK • Un ensemble d’outils pour encapsuler du C et C++ dans vos applications • Un outil pour charger, compiler : ndk-build • Les bibliothèques natives partagées ou statiques • Un outil de debug • Un manifest pour déclarer les dépendances
  • 154.
    27/02/2016 154 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Appeler du C à partir de Java • Les types de données • Le contenu du NDK
  • 155.
    27/02/2016 155 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Découverte Renderscript Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 156.
    27/02/2016 156 Formation Android 6,niveau Expert alphorm.com™© Plan • Présentation • Créer le script • Initialiser le script • Intégrer le script dans une vue
  • 157.
    27/02/2016 157 Formation Android 6,niveau Expert alphorm.com™© Présentation • Renderscript est un langage de script à haute performance Syntaxe du C99 • Orienté rendu graphique et calculs rapides • Sera compilé en code natif plus tard par le système • Dispose d’une API
  • 158.
    27/02/2016 158 Formation Android 6,niveau Expert alphorm.com™© Créer le script • Il faut écrire un « kernel », fichier de script qui doit être placé sous src • Peut contenir : Des fonctions qui seront invoquées Des variables globales Des fonctions parallèles (sur itération dans des Allocations) Eventuellement une fonction init(), invoquée lors du démarrage du script • Utiliser les APIs Renderscript « android.renderscript »
  • 159.
    27/02/2016 159 Formation Android 6,niveau Expert alphorm.com™© Configuration • Modifier le script Gradle pour référencer Renderscipt
  • 160.
    27/02/2016 160 Formation Android 6,niveau Expert alphorm.com™© Primitives • Des primitives sont disponibles sous la forme de ScriptIntrinsics • Grosses économies de temps
  • 161.
    27/02/2016 161 Formation Android 6,niveau Expert alphorm.com™© Initialiser le script • Créer un objet RenderScript : contexte d’utilisation des scripts, unique dans l’application • Créer d’Allocation : mémoire en entrée et en sortie, utilisée par le script Créée par createFromBitmap et createTyped • et instancier le script généré Script_<nom> • Fournir les données via des setter
  • 162.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 163.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 164.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 165.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 166.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 167.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 168.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 169.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 170.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 171.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 172.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 173.
    27/02/2016 8 Formation Android 6,niveau Expert alphorm.com™© Prérequis de la formation • Savoir lire du code Java • Avoir des rudiments sur les interfaces graphiques • Avoir des notions de pointeurs • Et … du courage comme toujours !
  • 174.
    27/02/2016 174 Formation Android 6,niveau Expert alphorm.com™© Notification avec action • Prévoir un Intent pour représenter l’action à déclencher • Utiliser setContentIntent pour positionner l’Intent sur la notification • Pour lancer des activités sur le Wearable, il faut positionner l’action sur WearableExtender
  • 175.
    27/02/2016 175 Formation Android 6,niveau Expert alphorm.com™© Les notifications multipages • Préparer une liste de notifications • Créer un WearableExtender • Positionner ce WearableExtender sur la notification réelle
  • 176.
    27/02/2016 176 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Les classes pour la notification • Les textes longs • Notification avec action • Les notifications multipages
  • 177.
    27/02/2016 177 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Utiliser les capteurs Google Wear Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 178.
    27/02/2016 178 Formation Android 6,niveau Expert alphorm.com™© Plan • La configuration du projet • Les capteurs • La capture du pouls • Répondre aux événements
  • 179.
    27/02/2016 179 Formation Android 6,niveau Expert alphorm.com™© La configuration du projet • Le manifest doit comporter les permissions • Accéder au gestionnaire SensorManager • Accéder au capteur que l’on souhaite utiliser
  • 180.
    27/02/2016 180 Formation Android 6,niveau Expert alphorm.com™© Les capteurs
  • 181.
    27/02/2016 181 Formation Android 6,niveau Expert alphorm.com™© La capture du pouls • Enregistrer le listener
  • 182.
    27/02/2016 182 Formation Android 6,niveau Expert alphorm.com™© Répondre aux événements • Implémenter onSensorChanged • SensorEvent en paramètre
  • 183.
    27/02/2016 183 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • La configuration du projet • Les capteurs • La capture du pouls • Répondre aux événements
  • 184.
    27/02/2016 184 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Gérer la voix Google Wear Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 185.
    27/02/2016 185 Formation Android 6,niveau Expert alphorm.com™© Plan • Utiliser les événements voix prédéfinis • La classe RemoteInput • Usage du BroadcastReceiver
  • 186.
    27/02/2016 186 Formation Android 6,niveau Expert alphorm.com™© Les événements voix prédéfinis • Les événements voix sont déjà identifiés • Possible de faire répondre votre application
  • 187.
    27/02/2016 187 Formation Android 6,niveau Expert alphorm.com™© La classe RemoteInput • Pour récupérer une entrée vocale de l’utilisateur • Va lancer une PendingIntent, qui contient (l’Intent qui contient) les entrées de l’utilisateur
  • 188.
    27/02/2016 188 Formation Android 6,niveau Expert alphorm.com™© Usage du BroadcastReceiver • Un BroadcastReceiver permet de récupérer sur le mobile la réponse • Il doit être enregistré
  • 189.
    27/02/2016 189 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Utiliser les événements voix prédéfinis • La classe RemoteInput • Usage du BroadCastReceiver
  • 190.
    27/02/2016 190 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Gérer la communication Google Wear Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 191.
    27/02/2016 191 Formation Android 6,niveau Expert alphorm.com™© Plan • Emettre des données vers le wearable • Sur le wearable
  • 192.
    27/02/2016 192 Formation Android 6,niveau Expert alphorm.com™© Emettre des données vers le wearable • PutDataMapRequest permet d’accéder aux données partagées • Identifier la zone de données • L’écoute se fait sur un WearableListenerService
  • 193.
    27/02/2016 9 Formation Android 6,niveau Expert alphorm.com™© Les outils nécessaires • L’IDE principal est Android Studio 1.5.x • Nous utilisons aussi Android Studio 2.0 • La présentation sera faite sous Windows 10
  • 194.
    27/02/2016 194 Formation Android 6,niveau Expert alphorm.com™© Ce qu’on a couvert • Emettre des données vers le wearable • Sur le wearable
  • 195.
    27/02/2016 195 Formation Android 6,niveau Expert alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Conclusion Android expert Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 196.
    27/02/2016 196 Formation Android 6,niveau Expert alphorm.com™© Plan de la formation • Les services Google Play Services • Les applications Web et Android • Android Natif, introduction à NDK • RenderScript • Google Wear
  • 197.
    27/02/2016 197 Formation Android 6,niveau Expert alphorm.com™© Les autres formations dév sur Alphorm
  • 198.
    27/02/2016 198 Formation Android 6,niveau Expert alphorm.com™© Pour continuer … • La formation Java fondamentaux … • La formation Java avancée … • La formation Android …
  • 199.
    27/02/2016 199 Formation Android 6,niveau Expert alphorm.com™© Merci d’avoir suivi cette formation, rendez-vous pour la suite !