Google Android :
l'empire contre-attaque
Olivier Penhoat
Consultant senior et formateur
11 février 2010
olivier [point] penhoat [at] valtech-training [point] fr
http://www.valtech-training.fr
DekGAD-1.0.0-Fr
© 2010 – Valtech Training
Utilisation de cette présentation
Vous êtes libre de reproduire, distribuer et communiquer cette création
au public
Selon les conditions suivantes :
•
Paternité. Vous devez citer le nom de l'auteur original (Olivier Penhoat,
Valtech Training) mais pas d'une manière qui suggérerait qu'il vous
soutient ou approuve votre utilisation de l'œuvre.
•
A chaque réutilisation ou distribution de cette création, vous devez faire
apparaître clairement au public les conditions contractuelles de sa mise à
disposition. La meilleure manière de les indiquer est un lien vers la page
web http://creativecommons.org/licenses/by/3.0/deed.fr
•
Chacune de ces conditions peut être levée si vous obtenez l'autorisation
du titulaire des droits sur cette œuvre.
•
Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur
ou des auteurs.
Introduction
Google Android : l'empire contre-attaque
DekGAD-1.0.0-Fr
© 2010 – Valtech Training
Bienvenue
Déroulement
Questions / réponses
Evaluation
4
Le groupe Valtech dans le monde
1 130 employés
8 pays
100,6 M€ de CA en 2008
Small enough to care, big enough to deliver
5
Les activités en France
Formations aux méthodes agiles et
Conseil en management
aux techniques innovantes de
• Création de nouveaux métiers,
développement logiciel :
• Evolution des organisations,
• Interentreprises
• Refonte des processus et des systèmes
• Intra-entreprises
d’information.
• Ingénierie de formation
• Adaptation de l’offre existante
• Développement spécifique
• Accompagnement
Conseil et projets en
Conseil et projets e-business
technologies
• Conseil stratégique en e-marketing et
• Pratiques agiles de pilotage et
communication
d’ingénierie
• Conception éditoriale
• Architecture Java EE et .Net
• Création, ergonomie, architecture
• Industrialisation
• interactive, Flash design…
• Organisation des tests
• Réalisation de projets e-business
• Urbanisation et intégration du SI
6
La formation au cœur de notre activité
Le dynamisme et la réactivité
• 11,87 %, de croissance du chiffre d’affaires entre
2007 et 2008
• 30 employés
• 5% du CA consacré à la R&D
Une capacité d’animation prouvée
• 6 522 personnes formées en 2008
• 503 sessions interentreprises
• 494 sessions intra-entreprises
Un savoir faire technique et pédagogique reconnu
• 90 formations sur un domaine spécialisé
• Un vivier de 67 consultants / formateurs
expérimentés
• Des techniques d’enseignement adaptées à l’adulte
7
Présentation d’Android
Google Android : l'empire contre-attaque
DekGAD-1.0.0-Fr
© 2010 – Valtech Training
Segment de marché visé
Téléphonie mobile en 2008
Android vise le marché
Autres 20%
Des téléphones mobiles :
Nokia 39%
• 3 milliards d’utilisateurs
Sony Ericsson
• Marché mature (90% d’équipés)
8%
LG 8%
Des smartphones :
• Windows mobile, Symbian,
Samsung 9%
Motorola 16%
Blackberry, et surtout iPhone
Smartphones en 2009
Des dispositifs mobiles :
Autres 13%
• Netbooks
Samsung 3%
• Solutions embarquées
HTC 7%
Nokia 39%
Solutions propriétaires
Peu de standard
Apple 17%
RIM 21%
9
Google et Internet
Une croissance permanente depuis 1998
Google a simplifié le Web :
• La recherche
• Les annonces
Avec un modèle :
• Financement par la publicité
Et des offensives : (souvent « bottom-up »)
• Des rachats dès 2001 : DejaNews, YouTube, DoubleClick,
FeedBurner
• Google Apps
• Application Google Maps sur iPhone
10
Enjeux autour d’Android
Profiter des innovations technologiques sur son téléphone mobile
ver
Ouvrir les possibilités des terminaux :
s
• Applications internes ou tierces : logées à même enseigne
u
• Personnalisation (bureau, préférences, widgets)
n
• Modération des applications à posteriori
é
• Pas d’IDE propriétaire
co
Rendre accessible toutes les fonctionnalités
sy
• Appels, SMS, caméra …
st
Réduire les coûts de R&D et de réalisation d’applications :
èm
• Faciliter le travail du développeur (SDK)
• S’appuyer sur des standards : Java / XML
e o
Promouvoir une expérience utilisateur plus riche
u
• Ecrans *VGA, rotation, interface tactile
ve
• Périphériques : boussole, accéléromètre …
r
• Multimédia : son, musique, vidéo
t
• Réseaux : 3G, Wifi, services en ligne, réseaux sociaux
11
Stratégie de Google
Réunir les acteurs majeurs :
• OHA : Open Handset Alliance
• Travailler avec les constructeurs et les opérateurs
(plutôt que les concurrencer)
Pas de GPhone, mais une
plateforme logicielle :
• Open Source
• Fondée sur un noyau Linux
• Propulsée par une machine virtuelle optimisée
• Basée sur le langage Java
« Plus significative et ambitieuse qu’un simple téléphone »
Les services Google :
• Tendance : des sites Web optimisés plutôt que des applications
12
Android pour qui ?
Technophiles
Constructeurs
hackers
Développeurs
Utilisateurs
leaders d’opinion
« early adopters »
Linux
C++
SDK
Interface :
• Fonctionnelle
• Intuitive
Open Source
• Evolutive
Java
Market
13
Architecture générale
Applications
(tierces ou internes)
Services
(framework, SDK)
API JSE 1.5
Machine
virtuelle
« custom »
• Android : OS + applications essentielles
Spécificités des
• SDK : outils + API
constructeurs
14
Machine virtuelle
Machine virtuelle « dégraissée » :
• Pas de compilation à la volée (JIT)
D
• Propre bytecode
al
• Table des constantes simplifiée (32 bits)
vik.e
Code Dalvik interprété : *.dex (outil dx)
qua
Exécution sur un noyau Linux 2.6
ls(J
Basée sur la notion de registre (pas de pile)
a
• Adaptée aux processeurs de mobiles
va
• Meilleures performances d’exécution
) ==
Empreinte mémoire minimisée :
f
• Meilleure gestion mémoire bas niveau
al
• Meilleur parallélisme des tâches
se
Une instance par processus
• Etanchéité des applications
15
Modèle économique
Android Market : téléchargement d’applications
• Lieux marchands : Australie, Autriche, France, Allemagne, Pays-Bas,
Espagne, Royaume-Uni, États-Unis
• Applications : jeux, par thèmes, gratuites ou payantes
• Prix des applications : 0,99 – 200 €
• Revenus :
• 70% pour le développeur
• 30% de frais de transaction
• Inscription : 25 $ (< 17 €)
Publicité mobile :
• Un projet à long terme
16
Faits marquants
08/2005 : Création de la start-up Android
11/2007 : Consortium OHA (http://www.openhandsetalliance.com)
•
34 compagnies : HTC, Google, T-Mobile, Qualcomm, Motorola…
•
s’engage à proposer des innovations pour les utilisateurs de mobiles du monde entier
12/2007 : 1ère version du SDK Android de Google
04/2008 : Clôture du « Developer Challenge » (ADC1)
08/2008 : Sortie de l’Android Market
09/2008 : T-Mobile sort le premier GPhone
10/2008 : Publication du code source d'Android
03/2009 : Sortie du premier GPhone en France
04/2009 : T-Mobile annonce plus d’un million de ventes, sortie de la 1.5 Cupcake
08/2009 : Google supprime 60 applications sur 6000
09/2009 : sortie de la 1.6 Donut
10/2009 : sortie de la 2.0 Eclair
11/2009 : lancement du Motorola Droid
12/2009 : dépôt de la marque « Nexus One »
17
Android en chiffres
T-Mobile G1 (HTC Dream) :
• 1,5M de ventes (04/09)
• 80% des utilisateurs :
• surfent quotidiennement
• téléchargent une application par semaine
• 50% utilisaient déjà un smartphone
Android Market :
• 22 000 applications (01/10) :
• 6 000 en juin
• 39% payantes
• 16% de jeux
• 4 000 nouvelles applications / mois (en juin : 1 600)
• 520 000 commentaires :
• 390 000 anglais / 45 000 allemands / 25 000 français
18
Un marché fragmenté
Plateforme Android
Répartition
1.1
0,3%
1.5
27,7%
1.6
54,2%
2.0
2,9%
2.0.1
14,8%
19
Conjectures…
Spéculations sur le GPhone :
• « Qui mieux que Google peut concurrencer le iPhone ? »
• « Google va sortir un téléphone permettant d'accéder aux services Google »
Gartner :
• « Microsoft va être coiffé au poteau par Google d'ici à 2012 »
phandroid :
• 126 millions d’appareils Android en 2013
• 94 millions ne seront pas des téléphones !
•
Tablettes PC, GPS, netbooks, lecteurs multimédias…
Google est-il le futur de Linux ?
• Chrome OS : arrivée mi 2010
• Une cible : Microsoft
• Ubuntu n’a pas véritablement réussi
Fusion de Chrome OS et Android
• Points communs : Linux et Webkit
20
Premier bilan 1/2
Chiffre d’affaire en dessous des attentes :
• En août : inférieur à 5 millions de $
• 200 millions de $ pour Apple
« l’Android Market est à des années
• Larva Labs (éditeur de jeux) :
lumières de l’App Store »
•
gagne 62 $ / jour, contre 4 000 $ / jour sur iPhone
Chiffres AdMob :
• 19% des utilisateurs achètent sur Android
• 50% sur iPhone
Interactions développeur - utilisateur :
• Moyens de l’utilisateur :
•
Notation / commentaires : anonyme, incomplet
•
Email du développeur : insuffisant
• Moyens du développeur :
•
Description de l’application : 325 caractères max (un SMS long…)
•
Initialement, pas de shoot d’écran : mais Google a écouté avec la 1.6
• Informations uniquement visibles par téléphone
•
Une console Web inefficace
•
Des sites Web relais : mais pas temps réel (androlib, cyrket HS …)
21
Premier bilan 2/2
Difficultés du développeur :
• Configuration des clients non connue (écran, capacités, …)
• Le framework :
•
Offre un cadre qui minimise les effets négatifs
•
Facile en façade, mais exigeant en réalité
• Des habitudes de développement à revoir :
•
Penser : « Java en environnement hostile »
Système de paiement imposé : Checkout
Annulation des achats sous 48h :
• A la base, un bon sentiment pour les consommateurs
• Mais problématique pour les éditeurs (cf. retrait de Gameloft : iPhone=400x)
Communiquer l’envie d’acheter des produits :
• Google pêcherait-il ? Un positionnement ambigu
Des succès conditionnés par les terminaux :
• Succès récent du Droid de Motorola : 250 000 ventes aux US le 1er week-end
• Arrivée en Europe fin 2009 sous le nom de « Milestone »
• Pourrait réconcilier les éditeurs de jeux
Bref, laisser du temps au temps…
22
Créer des applications
Google Android : l'empire contre-attaque
DekGAD-1.0.0-Fr
© 2010 – Valtech Training
Environnement et outillage
ADB : Android Debug Bridge
• Exécution de commandes (console) : émulateur ou via USB
• Exemples :
• Afficher les traces : adb logcat
• Déployer une application : adb install MyApp.apk
• Modifier une position gps : adb emu geo fix xxx yyy
Emulateurs : versions API
DDMS : Dalvik Debug Monitor Service
• Émulation carte SD
• Parcourir les fichiers et journaux
• Simuler un appel / un SMS
• Simuler une position GPS
• Couteau suisse du développeur
Hierarchy viewer :
Et les classiques Linux (ssh, vnc, ...)
24
ADT : plug-in Eclipse
25
Anatomie d’une application
Descripteur de l’application : AndroidManifest.xml
• Liste des principaux composants
• Capacités et pré-requis de l’application (paysage, internet …)
Organisation en 4 blocs :
Fournisseur
Activité
Récepteur
Service
de contenu
Récepteur d'« Intent » : traduit le souhait d’une application
Une action
Les données concernées
26
Fournisseur de contenu
URI
Exemple d’URI :
content://contacts/amis/27
Content Resolver
type/identifiant/segments/enregistrement
27
Intentions
Symbolise une « intention » (requête / souhait) :
• Spécification d’une action
• URI des données à traiter, exemples : content://contacts/amis/345, tel:43, geo:36,42
Transition d’un écran à un autre
La classe Intent fournit des valeurs types :
•
MAIN : écran principal de l’application
•
VIEW : afficher des informations sur l’objet
•
PICK : sélectionner un élément
•
EDIT : modifier un contenu
•
Exemple : new Intent(android.content.Intent.VIEW_ACTION, ContentURI.create("http://valtech.fr"));
IntentFilter : capacités d’une activité
• Exemple : une activité sait afficher les détails d’un contact
•
Sait gérer l’action VIEW
•
Sur des données représentant une personne
Les activités déclarent leurs filtres d’intention dans le manifeste
28
Récepteur d'intentions
Réaction à des événements externes :
• Sonnerie du téléphone
• Alarme
• Réseau disponible
Sans interface graphique :
• Ni interaction avec l’utilisateur
• A part d’éventuelles notifications
Déclaration des Receivers dans le manifeste
29
Services
Exécution à longue durée de vie
En tâche de fond
Sans interface graphique
• Exemple : un composant d’un lecteur multi média
Démarrage du service :
• Context.startService()
Se connecter à un service :
• Context.bindService()
Communication via l’interface exposée :
• pause, rembobiner …
30
Activité
Bloc le plus courant :
• Souvent, un simple écran de l’application
Pour chaque activité : une classe étend Activity
• Avec un cycle de vie
La classe affiche une IHM :
• Composée de vues et répondant à des événements
Passer à l’écran suivant = démarrer une nouvelle activité
• Empilement des activités : history stack
1.
Mise en pause de l’activité A
2.
Lancement de l’activité B
1.
Fin de l’activité B
B
2.
Renvoi d’un code résultat
3.
Réveil l’activité A
A
31
Activité - cycle de vie
Allocation de ressources
Création des composants graphiques
Démarrage du thread UI et affichage
Passage au 1er plan
Passage en arrière plan
32
Coding Kata
Google Android : l'empire contre-attaque
DekGAD-1.0.0-Fr
© 2010 – Valtech Training
MyPlace – mapView, GPS, overlays
34
Exemples et retours
d'expérience
Google Android : l'empire contre-attaque
DekGAD-1.0.0-Fr
© 2010 – Valtech Training
QuizDev
Un quiz proche du site web :
•
http://www.valtech-training.fr/fr/index/training/evaluation-en-ligne.html
Charte graphique
Multi quiz
Multilingue
Points techniques :
Questions : fichiers XML
Multi-langue : ressources i18n
Activité à état : gestion du cycle de vie
Rotation écran : portrait / paysage
Push vers le site Web
36
PulseKeeper
Un métronome :
Jusqu'à 400 bpm
Battement visuel, patterns et temps forts
19 sons
Reconnaissance du tempo par :
interface tactile
accéléromètre
Points techniques :
Compatibilité écrans
Utilisation du sound pool
Gestion des threads
Gestion de l'accéléromètre
37
PicaSlide
Diaporama de photos :
À partir d'albums en ligne (Picasa, Flicker, Apache)
Modification du papier mural
Interface tactile
Photos disponibles hors-ligne
Gestion du zoom
Version gratuite / payante
Multilingue : en, fr, de, es, zh
Points techniques :
API Flicker / Picasa : API Rest / flux XML
Architecture logique : UI, image downloader / provider
Gestion du cache
Gestion des préférences : zapping d'albums ...
38
Bonnes pratiques
Ça ressemble à du Java, mais... ce n'est pas le SDK de Java
•
Tout n'est pas supporté (ex : swing)
•
Librairies tierces : attention aux pré-requis (JVM, API)
Jars imposants à proscrire
•
Android manque d'espace mémoire et disque
Architecture logique
•
Privilégier le pragmatisme au plaisir intellectuel
Ressources limitées et partagées : économiser la batterie !
•
Besoin de quel réseau data ? (Wifi / UMTS / GPRS)
•
Géolocalisation : besoin de quelle précision ?
Des habitudes à moduler / adapter / revoir
•
Pratiques des frameworks Java EE : vigilance
•
Faire la chasse aux cycles CPU et au superflu
•
Privilégier les méthodes du SDK (10 à 100x + rapides) : String.indexOf
39
Quelques faux amis
Sagesse conventionnelle = programmation conventionnelle
Map m = new HashMap();
► interface inutile
v = monBean.getMaValeur();
► bean anémique
for(...) { ... traite(monObjet.getMaValeur()); .. }
► ajouter var locale
... { int i = 6; ... } ...
► ajouter final
for(Item item : items)
► éviter foreach
enum Couleur { BLANC, GRIS, ... }
► éviter enum
class MaClasse { private void traite(){};
► éviter inner classe
class SousClasse {
void utilise(MaClasse.this.traite();); } }
class Coord {int x; int y;} ...
► utiliser int[]
Coord getCoordonnees();
40
Aller plus loin
Coder plus près de l'OS : C++
Intégrer des scripts beanshell
Langage Simple (basic) : cf. démo Tetris
Étendre le SDK via JNI
41
Nos formations sur Android et sur iPhone
Développer avec Google Android
• 4 jours
• 1 650 €HT
• http://www.valtech-training.fr/fr/index/training/formations/developpement-mobile/GAD.html
Développement d'une application sur iPhone
• 5 jours
• 1 785 €HT
• http://www.valtech-training.fr/fr/index/training/formations/developpement-mobile/IPO.html
42
90 formations sur les méthodes agiles et les
techniques innovantes de développement logiciel
Méthodes et pratiques agiles
Gestion de projet
Architecture et intégration
Analyse, conception et modélisation avec UML
Développement Java et C++
Java EE et Frameworks
Développement Web
XML et Web Services
Microsoft .Net
http://www.valtech-training.fr/
Oracle
Développement mobile
43
Des questions ?
44
16/02/2011 - 03h22