Table des matières. À propos de l auteur... XVII. Remerciements... XIX. Préface à l édition française... XXI. Introduction... 1



Documents pareils
Table des matières. Partie I Concepts de base Préface... VII

Android 4 Les fondamentaux du développement d'applications Java

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

Optimiser pour les appareils mobiles

Table des matières Introduction Démarrage Les composants graphiques... 26

Développement d applications professionnelles avec Android 2

TP2 : Client d une BDD SqlServer

Gestion des différentes tailles d écran

TD/TP 1 Introduction au SDK d Android

Point sur les solutions de développement d apps pour les périphériques mobiles

Les fondamentaux du développement d applications Java

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer

pas à pas prise en main du logiciel Le Cloud d Orange - Transfert de fichiers sur PC et MAC Le Cloud

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

Table des matières ENVIRONNEMENT

FreeMind. Freeplane XMind. 2 e édition. Bien démarrer avec le Mind Mapping. . Groupe Eyrolles, 2010, ISBN :

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Installation et prise en main

1.3 Gestion d'une application

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Firefox pour Android. Guide de l utilisateur. press-fr@mozilla.com

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Paramètres d accessibilité des systèmes d exploitation Windows et Mac

Iphone vs. Android. Mardi 17 Novembre 2009 Paris, la Défense. Xavier PARADON, Directeur Technique Valtech Training

Groupe Eyrolles, 2003, ISBN : X

Chapitre 1 Retour en arrière

Environnements de développement (intégrés)

FileMaker Server 14. Aide FileMaker Server

Diffuser un contenu sur Internet : notions de base... 13

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE

MO-Call pour les Ordinateurs. Guide de l utilisateur

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Dropbox : démarrage rapide

LES TABLETTES : EN PRATIQUE

Lenovo TAB A7-40/ Lenovo TAB A7-50

KIELA CONSULTING. Microsoft Office Open Office Windows - Internet. Formation sur mesure

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

Tutorial pour une application simple

Pourquoi utiliser SharePoint?

Guide d utilisation. Version 1.1

Animation numérique. de territoire. Créer son site Internet avec un outil gratuit. Mardi 4 novembre Cédric ARNAULT OT Lourdes

Contenu Windows 8 MODULE 1 AVANT-PROPOS MODULE 2 INTRODUCTION À WINDOWS 8 MODULE 4 APPLICATIONS WINDOWS 8 PARTIE 1 MODULE 3 PARAMÈTRES DE WINDOWS 8

Fiche Mémo : Options d accessibilité sous Windows et Internet Explorer 5

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Introduction à Eclipse

Fiche produit Site Monitor v4

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Enregistrement de votre Géorando Maxi Liberté

Windows 8 : une petite révolution? 9. Démarrer Windows Accéder au Bureau à la connexion 13. Ouvrir ou activer une nouvelle session 13

Manuel de l utilisateur. Soft-phone - Client VoIP 3CX Version 6.0

GUIDE D UTILISATION. Informations importantes Toshiba FOLIO 100 Conseils pour une première utilisation, configuration et principaux usages

Guide de l utilisateur Mikogo Version Windows

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e

CTIconnect PRO. Guide Rapide

UltraBackup NetStation 4. Guide de démarrage rapide

avast! EP: Installer avast! Small Office Administration

Introduction à. Oracle Application Express

Joomla! Création et administration d'un site web - Version numérique

Contenu Microsoft Windows 8.1

FileMaker Server 14. Guide de démarrage

HYPERDRIVE iusbport Guide d utilisation

SOMMAIRE

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

Cloud public d Ikoula Documentation de prise en main 2.0

Découvrez Windows NetMeeting

Freeway 7. Nouvelles fonctionnalités

L espace de travail de Photoshop

Réussir. son site e-commerce. avecoscommerce

Lutter contre les virus et les attaques... 15

Guide de démarrage rapide : NotifyLink pour Windows Mobile

Guide de configuration. Logiciel de courriel

Manuel du client de bureau distant de KDE

Initiation à l utilisation de la micro-informatique Internet Explorer 7. Mode d emploi.

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Quel que soit L élève - Il est valorisé par l utilisation d un outil technologique haut de gamme - Il peut travailler seul et à son rythme.

Google Drive, le cloud de Google

SFEA. Ce document peut être imprimé au format livret. Guide utilisateurs du site "Se Former en Alsace"

TP au menu «UI ANDROID»

Problème d affichage de rapports ou relevés dans HEC en ligne lié aux bloqueurs de pop-up

26 Centre de Sécurité et de

Accès à distance sécurisé au Parlement (ADSP)

Foire aux questions sur Christie Brio

Android. Présentation d Android. Florent Garin

Pas-à-pas. Créer une newsletter avec Outlook

PHILA-Collector-USB-16Go Pour Windows & Android

Créer une application de livre interactif pour tablette avec Indesign CS6 et Adobe Digital Publishing Suite


YOGA TABLET 8. Manuel d utilisation V1.0

Créer et partager des fichiers

Table des matières. Module tablette

< Atelier 1 /> Démarrer une application web

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Point of View ProTab 25XXL - Android 4.1 Tablet PC. Mentions générales d'utilisation... 2 Désistement... 2 Contenu de la boite...

et de la feuille de styles.

Béatrice Bertrand CDDP de l Eure. Béatrice Bertrand CDDP de l'eure

Formation Word/Excel. Présentateur: Christian Desrochers Baccalauréat en informatique Clé Informatique, 15 février 2007

Transcription:

À propos de l auteur... XVII Remerciements... XIX Préface à l édition française... XXI Introduction... 1 Partie I Concepts de base... 3 1. Tour d horizon... 5 Avantages et inconvénients de la programmation des smartphones... 5 Contenu d un programme Android... 6 Fonctionnalités à votre disposition... 7 Tour d horizon... de ce livre... 8 2. Partir du bon pied... 9 Étape 1 : installation de Java... 9 Installation du JDK... 9 Apprendre Java... 10 Étape 2 : installation du SDK Android... 11 Installation des outils de base... 11 Installation des SDK et des greffons... 11 Étape 3 : installation d ADT pour Eclipse... 14 Étape 4 : installation d Apache Ant... 16 Étape 5 : configuration de l émulateur... 16 Étape 6 : configuration du terminal... 21 Windows... 21 Mac OS X et Linux... 22 3. Votre premier projet Android... 23 Étape 1 : création d un nouveau projet... 23 Eclipse... 23 Ligne de commande... 25 Étape 2 : compilation, installation et exécution de l application... 26 Eclipse... 26 Ligne de commande... 27

IV L'Art du développement Android 4. Étude de votre premier projet... 31 Structure d un projet... 31 Contenu de la racine... 31 À la sueur de votre front... 32 La suite de l histoire... 32 Le fruit de votre travail... 33 Contenu du manifeste... 33 Au début, il y avait la racine... 34 Application de votre application... 35 5. Quelques mots sur Eclipse... 37 Présentation d ADT... 37 Travailler avec Eclipse... 38 Comment importer un projet non Eclipse... 38 Utilisation de DDMS... 41 Création d un émulateur... 42 Exécution d un projet... 43 Comment ne pas lancer un projet... 43 Autres IDE... 44 Les IDE et ce livre... 44 6. Amélioration de votre premier projet... 45 Gestion de plusieurs tailles d écran... 45 Versions d Android reconnues par l application... 46 Partie II Activités... 49 7. Réécriture de votre premier projet... 51 L activité... 51 Dissection de l activité... 52 Compiler et lancer l activité... 54 8. Utilisation des layouts XML... 55 Qu est-ce qu un positionnement XML?... 55 Pourquoi utiliser des layouts XML?... 56 Contenu d un fichier layout... 56 Identifiants des widgets... 57 Utilisation des widgets dans le code Java... 58 Fin de l histoire... 58 9. Utilisation des widgets de base... 61 Labels... 61 Boutons... 62 Images... 63 Champs de saisie... 64

V Cases à cocher... 66 Boutons radio... 69 Résumé... 70 Remplissage... 70 Autres propriétés utiles... 71 Méthodes utiles... 71 Couleurs... 72 10. Conteneurs... 73 Penser de façon linéaire : LinearLayout... 73 Concepts et propriétés... 74 Exemple... 76 Le modèle des boîtes... 81 Tout est relatif : RelativeLayout... 82 Concepts et propriétés... 82 Exemple... 85 Recouvrements de widgets... 86 Tabula Rasa : TableLayout... 88 Concepts et propriétés... 88 Exemple... 90 ScrollView... 91 11. Le framework des méthodes de saisie... 95 Claviers physiques et logiciels... 95 Adaptation à vos besoins... 96 Dire à Android où aller... 100 Mise en place... 101 Enlevez-moi ça!... 103 12. Widgets de sélection... 105 S adapter aux circonstances... 105 Utilisation d ArrayAdapter... 106 Listes des bons et des méchants... 106 Modes de sélection... 108 Contrôle du Spinner... 110 Mettez vos lions en cage... 113 Champs : économisez 35 % de la frappe!... 117 Galeries... 120 13. S amuser avec les listes... 121 Premières étapes... 121 Présentation dynamique... 123 Inflation des lignes... 125 Aparté sur l inflation... 125 Retour aux listes... 127

VI L'Art du développement Android Mieux, plus robuste et plus rapide... 127 Utilisation de convertview... 128 Utilisation du patron de conception "support"... 130 Lignes interactives... 132 14. Encore plus de widgets et de conteneurs... 137 Choisir... 137 Le temps s écoule comme un fleuve... 142 Prendre la bonne résolution... 143 Utilisation d onglets... 144 Les pièces du puzzle... 144 Tout câbler... 145 Ajouts dynamiques... 148 Tout faire basculer... 151 Fouiller dans les tiroirs... 156 Autres conteneurs intéressants... 159 15. Intégrer le navigateur de WebKit... 161 Un navigateur, et en vitesse!... 161 Chargement immédiat... 163 Navigation au long cours... 164 Amuser le client... 165 Réglages, préférences et options... 167 16. Utilisation des menus... 169 Variantes des menus... 169 Menus d options... 170 Menus contextuels... 171 Illustration rapide... 172 Encore de l inflation... 177 Structure XML d un menu... 177 Options des menus et XML... 178 Création d un menu par inflation... 179 Au pays des menus et du miel... 181 17. Affichage de messages surgissants (pop-ups)... 183 Les toasts... 183 Les alertes... 184 Mise en œuvre... 185 18. Gestion des événements du cycle de vie d une activité... 189 L activité de Schroedinger... 189 Vie et mort d une activité... 190 oncreate() et ondestroy()... 190 onstart(), onrestart() et onstop()... 191

VII onpause() et onresume()... 191 L état de grâce... 191 19. Gestion de la rotation... 193 Philosophie de la destruction... 193 Tout est pareil, juste différent... 194 Choisir et consulter un contact... 195 Sauvegarde de l état... 197 Il n y a pas de petites économies!... 200 Rotation maison... 202 Mais c est déconseillé par Google... 205 Forcer le destin... 206 Tout comprendre... 208 20. Utilisation des threads... 211 Le thread principal de l application... 211 Progresser avec les ProgressBar... 212 Les handlers... 213 Les messages... 213 Les runnables... 216 Où est passé le thread de mon interface utilisateur?... 216 Désynchronisation... 217 La théorie... 217 AsyncTask, généricité et paramètres variables... 218 Les étapes d AsyncTask... 218 Exemple de tâche... 219 Threads et rotations... 223 Association manuelle de l activité... 224 Flux des événements... 227 Fonctionnement... 227 Éviter les pièges... 228 21. Création de filtres d intentions... 229 Quelle est votre intention?... 229 Composantes des intentions... 230 Routage des intentions... 231 Déclarer vos intentions... 231 Récepteurs d intention... 232 Attention à la pause... 233 22. Lancement d activités et de sous-activités... 235 Activités paires et sous-activités... 235 Démarrage... 236 Création d une intention... 236 Faire appel... 237 Navigation avec onglets... 240

VIII L'Art du développement Android 23. Utilisation des ressources... 245 Les différents types de ressources... 245 Théorie des chaînes... 246 Chaînes normales... 246 Formats de chaînes... 246 Texte stylé... 247 Formats stylés... 247 Vous voulez gagner une image?... 251 Les ressources XML... 252 Valeurs diverses... 254 Dimensions... 255 Couleurs... 255 Tableaux... 256 Gérer la différence... 257 Écrire dans les deux sens... 261 24. Définition et utilisation des styles... 263 Styles : DRY... 263 Éléments de style... 265 Où appliquer un style... 265 Attributs disponibles... 266 Héritage d un style... 266 Valeurs possibles... 267 Thèmes : un style particulier... 268 25. Gestion des différentes tailles d écran... 269 Écran par défaut... 269 Tout en un... 271 Penser en termes de règles, pas en termes de positions... 271 Utiliser des dimensions physiques... 272 Éviter les "vrais" pixels... 272 Choisir des images adaptables... 273 Fait maison, rien que pour vous...... 273 <supports-screens>... 273 Ressources et ensembles de ressources... 274 Trouver sa taille... 275 Rien ne vaut la réalité... 276 Différences de densité... 276 Ajustement de la densité... 277 Exploitez sans vergogne la situation... 278 Remplacer les menus par des boutons... 278 Remplacer les onglets par une seule activité... 278 Consolider les activités multiples... 279 Exemple : EU4You... 279 Première version... 279

IX Corriger les polices... 285 Corriger les icônes... 287 Utilisation de l espace... 288 Et si ce n est pas un navigateur?... 290 Partie III Honeycomb et les tablettes... 291 26. Introduction à Honeycomb... 293 Pourquoi Honeycomb?... 293 Ce que voit l utilisateur... 294 Le thème holographique... 297 Gérer les autres terminaux... 298 27. Utilisation de la barre d action... 301 Activation de la barre d action... 301 Éléments de menu dans la barre d action... 302 Répondre au logo... 303 Ajout de vues personnalisées à la barre d action... 303 Définition du layout... 304 Placement du layout dans le menu... 305 Contrôle du clavier... 306 N oubliez pas les téléphones!... 308 28. Fragments... 309 Introduction aux fragments... 309 Le problème résolu par les fragments... 309 La solution des fragments... 310 La bibliothèque de compatibilité (ACL)... 311 Création des classes fragments... 312 Fragments généraux... 312 ListFragment... 313 Autres classes Fragment de base... 318 Fragments, layouts, activités et tailles d écrans... 318 EU4You... 320 DetailsActivity... 323 Fragments et changements de configuration... 324 Concevoir la structure de l interface Fragments... 325 29. Gestion des changements de plates-formes... 327 Des choses qui risquent de vous rendre nerveux... 327 Hiérarchie des vues... 327 Changement des ressources... 328 Gestion des modifications de l API... 328 La jungle des versions... 329

X L'Art du développement Android Détecter la version d Android... 331 Envelopper l API... 331 Patrons pour Honeycomb... 333 La barre d action... 333 Isolation du code Honeycomb... 335 Applications uniquement destinées aux tablettes... 335 30. Accès aux fichiers... 337 Allons-y!... 337 Lire et écrire... 340 Stockage externe : un gain de place énorme... 344 Où écrire... 344 Quand écrire... 345 StrictMode : éviter le code poussif... 345 Mise en œuvre de StrictMode... 346 StrictMode en action... 346 Uniquement pour le développement, merci!... 347 Savoir être strict dans certains cas... 347 Systèmes de fichier Linux : la victoire de sync et vous gagnez... 349 Partie IV Dépôts de données, services réseaux et API... 351 31. Utilisation des préférences... 353 Obtenir ce que vous voulez... 353 Définir vos préférences... 354 PreferenceActivity... 354 Laisser les utilisateurs choisir... 355 Ajouter un peu de structure... 360 Boîtes de dialogue... 362 Préférences avec les fragments... 366 L approche Honeycomb... 366 Ajouter la compatibilité ascendante... 370 32. Gestion des bases de données locales et accès... 373 Présentation rapide de SQLite... 375 Commencer par le début... 375 Mettre la table... 378 Ajouter des données... 379 Le retour de vos requêtes... 380 Requêtes brutes... 380 Requêtes normales... 381 Utilisation des curseurs... 381 CursorAdapter personnalisés... 382 Créer ses propres curseurs... 383

XI Flash semble plus rapide qu il ne l est... 383 Des données, des données, encore des données... 384 33. Tirer le meilleur parti des bibliothèques Java... 387 Ant et JAR... 387 Limites extérieures... 388 Suivre le script... 389 Autres langages de scripts... 392 34. Communiquer via Internet... 395 REST et relaxation... 395 Opérations HTTP via HttpClient... 396 Traitement des réponses... 397 Autres points importants... 399 Tirer parti des composants Android pour Internet... 400 Téléchargement de fichiers... 401 Suite de la lutte contre le code poussif... 410 Partie V Services... 411 35. Théorie des services... 413 Pourquoi les services?... 413 Mise en place d un service... 414 La classe Service... 414 Méthodes du cycle de vie... 414 Entrée du manifeste... 415 Communiquer avec les services... 415 Envoi de commandes avec startservice()... 416 Liaison avec bindservice()... 417 Communication à partir des services... 418 Fonctions de rappel/écouteurs... 418 Intentions diffusées... 419 Résultats en attente... 419 Messenger... 419 Notifications... 420 36. Patrons de base pour les services... 421 Downloader... 421 Conception... 421 Implémentation du service... 422 Utilisation du service... 425 Lecteur musical... 426 Conception... 426 Implémentation du service... 426 Utilisation du service... 428

XII L'Art du développement Android L interface de service web... 429 Conception... 429 Le problème de la rotation... 430 Implémentation du service... 430 Utilisation du service... 435 37. Alerter les utilisateurs avec des notifications... 441 Configuration des notifications... 441 Notifications matérielles... 442 Icônes... 442 Les notifications en action... 444 Rester au premier plan... 447 FakePlayer revisité... 448 Notifications et Honeycomb... 449 Partie VI Autres fonctionnalités d Android... 453 38. Demander et exiger des permissions... 455 Maman, puis-je?... 455 Halte! Qui va là?... 456 Imposer les permissions via le manifeste... 457 Imposer les permissions ailleurs... 458 Papiers, s il vous plaît!... 458 Nouvelles permissions avec les anciennes applications... 459 Permissions : tout ou rien... 459 39. Accès aux services de localisation... 461 Fournisseurs de localisation : ils savent où vous vous cachez... 461 Où suis-je?... 462 Se déplacer... 463 Est-on déjà arrivé?... 465 Tester...... 466 40. Cartographie avec MapView et MapActivity... 467 Termes d utilisation... 467 Empilements... 468 La clé de tout... 468 Les composants essentiels... 469 Cartes optionnelles... 471 Testez votre contrôle... 472 Zoom... 472 Centrage... 472 Couches sur couches... 473 Classes Overlay... 473

XIII Affichage d ItemizedOverlay... 473 Gestion de l écran tactile... 475 Moi et MyLocationOverlay... 475 Terrain accidenté... 477 Cartes et fragments... 478 Limitez-vous à Android 3.0... 478 Utilisez oncreateview() et onactivitycreated()... 479 Hébergement du fragment dans une MapActivity... 480 41. Gestion des appels téléphoniques... 483 Le Manager... 483 Appeler... 484 C est vous qui téléphonez!... 486 42. Polices de caractères... 487 Sachez apprécier ce que vous avez... 487 Polices supplémentaires... 489 Le problème des glyphes... 491 43. Outils de développement supplémentaires... 493 Hierarchy Viewer... 493 DDMS (Dalvik Debug Monitor Service)... 496 Journaux... 498 Stockage et extraction de fichiers... 498 Copies d écran... 499 Mise à jour de la position... 500 Appels téléphoniques et SMS... 501 Gestion de la mémoire... 503 adb : comme DDMS, mais au clavier... 504 Partie VII Environnements alternatifs... 507 44. Rôle des environnements alternatifs... 509 Au début, il y avait Java...... 509 Et ils virent que cela était bon... 510 Ne pas suivre la mode... 511 Support, structure... 511 Soyez prudent... 512 45. HTML5... 513 Applications déconnectées... 513 Explications... 513 Utilisation... 514

XIV L'Art du développement Android Stockage web... 518 Explications... 518 Utilisation... 519 Base de données SQL web... 520 Mise en production... 521 Tests... 521 Signature et distribution... 521 Mises à jour... 521 Problèmes éventuels... 521 Versions des terminaux... 522 Tailles et densités des écrans... 522 Intégration limitée... 522 Performances et batterie... 523 Look and Feel... 523 Distribution... 524 HTML5 et les navigateurs Android alternatifs... 524 HTML5 : un autre point de référence... 524 46. PhoneGap... 527 Qu est-ce que PhoneGap?... 527 Comment s y prendre?... 527 Fonctionnalités... 528 Aspect des applications... 528 Distribution des applications... 529 Et les autres plates-formes?... 529 Utilisation de PhoneGap... 530 Installation... 530 Création et installation d un projet... 530 PhoneGap Build... 531 PhoneGap et l exemple Checklist... 534 Respect des standards... 535 Ajouter les API de PhoneGap... 537 Problèmes éventuels... 540 Sécurité... 540 Tailles et densités des écrans... 541 Look and Feel... 542 Pour en savoir plus... 543 47. Autres environnements alternatifs... 545 Rhodes... 545 Flash, Flex et AIR... 546 JRuby et Ruboto... 546 Mono pour Android... 546 App Inventor... 547 Titanium Mobile... 549 Autres langages compilés pour la JVM... 549

XV Partie VIII L évolution constante d Android... 551 48. Gestion des terminaux... 553 Cette application contient des instructions explicites... 553 Demander des caractéristiques précises... 554 Demander implicitement certaines caractéristiques... 555 Un marché garanti... 556 Autres différences... 556 Bogues, bogues, bogues... 557 Test des terminaux... 557 49. Pour aller plus loin... 559 Questions avec, parfois, des réponses... 559 Aller à la source... 560 Lire les journaux... 561 Index... 563