You are previewing L'art du développement Android: Édition française établie avec le concours de Expertise Android, 4e édition.
O'Reilly logo
L'art du développement Android: Édition française établie avec le concours de Expertise Android, 4e édition

Book Description

Créez vos premières applications Android pour smartphones et tablettes !

Android, la plateforme désormais incontournable de Google, gratuite et open source, est le système d'exploitation mobile le plus répandu au monde. Avec la version 4.0, Google unifi e son OS mobile pour qu'il soit adapté à la fois aux smartphones et aux tablettes, en plus d'apporter de nombreuses nouvelles fonctionnalités et d'étendre les possibilités des applications mobiles.

À l'aide d'exemples faciles à exécuter, L'art du développement Android, 4e édition enseigne toutes les bases de la programmation Android, et présente les dernières nouveautés de la nouvelle version d'Android.

  • Commencez par le commencement ! Installez le SDK Android et les outils de base. Produisez votre premier squelette d'application et explorez toute sa structure.

  • Créez des applications innovantes avec le multi-touch, la géolocalisation, le multi-tâches, etc.

  • Développez des applications mobiles et des jeux pour une large palette d'appareils mobiles. Apprenez à gérer les nombreuses versions d'Android, les différentes tailles d'écran et autres spécificités matérielles.

  • Construisez votre interface utilisateur, créez des applications natives ou web, ou bien encore des widgets. Accédez et gérez des bases de données locales ou en ligne. Intégrez un navigateur web (via Webkit) et découvrez dans le détail les activités (activities), les intentions (intents), les composants applicatifs de base.

  • Explorez les permissions, le support HTML5, le framework PhoneGap et exploitez les API multimédia d'Android, et bien plus encore.

Table of Contents

  1. Coverpage
  2. Titlepage
  3. Copyright
  4. Sommaire
  5. Table des matières
  6. Préface
  7. Partie I – Concepts de base
    1. 1. Tour d’horizon
      1. Avantages et inconvénients de la programmation des smartphones
      2. Contenu d’un programme Android
      3. Fonctionnalités à votre disposition
      4. Tour d’horizon... de ce livre
    2. 2. Partir du bon pied
      1. Étape 1 : installation de Java
        1. Installation du JDK
        2. Apprendre Java
      2. Étape 2 : installation du SDK Android
        1. Installation des outils de base
        2. Installation des SDK et des greffons
      3. Étape 3 : installation d’ADT pour Eclipse
      4. Étape 4 : installation d’Apache Ant
      5. Étape 5 : configuration de l’émulateur
      6. Étape 6 : configuration du terminal
        1. Windows
        2. Mac OS X et Linux
    3. 3. Votre premier projet Android
      1. Étape 1 : création d’un nouveau projet
        1. Eclipse
        2. Ligne de commande
      2. Étape 2 : compilation, installation et exécution de l’application
        1. Eclipse
        2. Ligne de commande
    4. 4. Étude de votre premier projet
      1. Structure d’un projet
        1. Contenu de la racine
        2. À la sueur de votre front
        3. La suite de l’histoire
        4. Le fruit de votre travail
      2. Contenu du manifeste
        1. Au début, il y avait la racine
        2. Application de votre application
    5. 5. Quelques mots sur Eclipse
      1. Présentation d’ ADT
      2. Travailler avec Eclipse
        1. Comment importer un projet non Eclipse
        2. Utilisation de DDMS
        3. Création d’un émulateur
        4. Exécution d’un projet
        5. Comment ne pas lancer un projet
      3. Autres IDE
      4. Les IDE et ce livre
    6. 6. Amélioration de votre premier projet
      1. Gestion de plusieurs tailles d’écran
      2. Versions d’Android reconnues par l’application
  8. Partie II – Activités
    1. 7. Réécriture de votre premier projet
      1. L’activité
      2. Dissection de l’activité
      3. Compiler et lancer l’activité
    2. 8. Utilisation des layouts XML
      1. Qu’est-ce qu’un positionnement XML ?
      2. Pourquoi utiliser des layouts XML ?
      3. Contenu d’un fichier layout
      4. Identifiants des widgets
      5. Utilisation des widgets dans le code Java
      6. Fin de l’histoire
    3. 9. Utilisation des widgets de base
      1. Labels
      2. Boutons
      3. Images
      4. Champs de saisie
      5. Cases à cocher
      6. Switchs
      7. Boutons radio
      8. Résumé
        1. Remplissage
        2. Autres propriétés utiles
        3. Méthodes utiles
        4. Couleurs
    4. 10. Conteneurs
      1. Penser de façon linéaire : LinearLayout
        1. Concepts et propriétés
        2. Exemple
        3. Le modèle des boîtes
      2. Tout est relatif : RelativeLayout
        1. Concepts et propriétés
        2. Exemple
        3. Recouvrements de widgets
      3. Tabula Rasa : TableLayout
        1. Concepts et propriétés
        2. Exemple
      4. Faire défiler : ScrollView
      5. Tout placer dans une grille : GridLayout
    5. 11. Le framework des méthodes de saisie
      1. Claviers physiques et logiciels
      2. Adaptation à vos besoins
      3. Dire à Android où aller
      4. Mise en place
      5. Enlevez-moi ça !
    6. 12. Widgets de sélection
      1. S’adapter aux circonstances
        1. Listes des bons et des méchants
        2. Modes de sélection
      2. Contrôle du Spinner
      3. Mettez vos lions en cage
      4. Champs : économisez 35 % de la frappe !
      5. Galeries
    7. 13. S’amuser avec les listes
      1. Premières étapes
      2. Présentation dynamique
      3. Inflation des lignes
        1. Aparté sur l’inflation
        2. Retour aux listes
      4. Mieux, plus robuste et plus rapide
        1. Utilisation de convertView
        2. Utilisation du patron de conception “support”
      5. Lignes interactives
    8. 14. Encore plus de widgets et de conteneurs
      1. Choisir
      2. Le temps s’écoule comme un fleuve
      3. Prendre la bonne résolution
      4. Utilisation d’onglets
        1. Les pièces du puzzle
        2. Tout câbler
        3. Ajouts dynamiques
      5. Tout faire basculer
      6. Fouiller dans les tiroirs
      7. Autres conteneurs intéressants
    9. 15. Intégrer le navigateur de WebKit
      1. Un navigateur, et en vitesse !
      2. Chargement immédiat
      3. Navigation au long cours
      4. Amuser le client
      5. Réglages, préférences et options
    10. 16. Utilisation des menus
      1. Variantes des menus
      2. Menus d'options
      3. Menus contextuels
      4. Illustration rapide
      5. Encore de l'inflation
        1. Structure XML d'un menu
        2. Options des menus et XML
        3. Création d'un menu par inflation
      6. Au pays des géants
    11. 17. Affichage de messages surgissants
      1. Les toasts
      2. Les alertes
      3. Mise en œuvre
    12. 18. Gestion des événements du cycle de vie d’une activité
      1. L’activité de Schrödinger
      2. Vie et mort d’une activité
        1. onCreate() et onDestroy()
        2. onStart() onRestart() et onStop()
        3. onPause() et onResume()
      3. L’état de grâce
    13. 19. Gestion de la rotation
      1. Philosophie de la destruction
      2. Tout est pareil, juste différent
        1. Choisir et consulter un contact
        2. Sauvegarde de l’état
      3. Il n’y a pas de petites économies !
      4. Rotation maison
        1. … Mais c’est déconseillé par Google
      5. Forcer le destin
      6. Tout comprendre
    14. 20. Utilisation des threads
      1. Le thread principal de l’application
      2. Progresser avec les ProgressBar
      3. Les handlers
        1. Les messages
        2. Les runnables
      4. Où est passé le thread de mon interface utilisateur ?
      5. Désynchronisation
        1. La théorie
        2. AsyncTask, généricité et paramètres variables
        3. Les étapes d’ AsyncTask
        4. Exemple de tâche
      6. Threads et rotations
        1. Association manuelle de l’activité
        2. Flux des événements
        3. Fonctionnement
      7. Éviter les pièges
    15. 21. Création de filtres d’intentions
      1. Quelle est votre intention ?
        1. Composantes des intentions
        2. Routage des intentions
      2. Déclarer vos intentions
      3. Récepteurs d’intention
      4. Des intentions à chaque occasion
      5. Attention à la pause
    16. 22. Lancement d’activités et de sous-activités
      1. Activités paires et sous-activités
      2. Démarrage
        1. Création d'une intention
        2. Faire appel
      3. Navigation avec onglets
    17. 23. Utilisation des ressources
      1. Les différents types de ressources
      2. Théorie des chaînes
        1. Chaînes normales
        2. Formats de chaînes
        3. Texte stylé
        4. Formats stylés
      3. Vous voulez gagner une image ?
      4. Les ressources XML
      5. Valeurs diverses
        1. Dimensions
        2. Couleurs
        3. Tableaux
      6. Gérer la différence
      7. Écrire dans les deux sens
    18. 24. Définition et utilisation des styles
      1. Styles : DRY
      2. Éléments de style
        1. Où appliquer un style
        2. Attributs disponibles
        3. Héritage d’un style
        4. Valeurs possibles
      3. Thèmes : un style particulier
  9. Partie III – Honeycomb et tablettes
    1. 25. Gestion des différentes tailles d’écran
      1. Écran par défaut
      2. Tout en un
        1. Penser en termes de règles, pas en termes de positions
        2. Utiliser des dimensions physiques
        3. Éviter les "vrais" pixels
        4. Choisir des images adaptables
      3. Fait maison, rien que pour vous…
        1. <supports-screens>
        2. Ressources et ensembles de ressources
        3. Trouver sa taille
      4. Rien ne vaut la réalité
        1. Différences de densité
        2. Ajustement de la densité
      5. Exploitez sans vergogne la situation
        1. Remplacer les menus par des boutons
        2. Remplacer les onglets par une seule activité
        3. Consolider les activités multiples
      6. Exemple : EU4You
        1. Première version
        2. Corriger les polices
        3. Corriger les icônes
        4. Utilisation de l'espace
        5. Et si ce n'est pas un navigateur ?
    2. 26. Interfaces utilisateurs pour tablettes et grands écrans
      1. Pourquoi s'intéresser aux tablettes ?
      2. Ce que voit l'utilisateur
      3. Gérer les autres terminaux
    3. 27. Utilisation de la barre d’action
      1. Activation de la barre d'action
      2. Éléments de menu dans la barre d'action
      3. Répondre au logo
      4. Ajout de vues personnalisées à la barre d'action
        1. Définition du layout
        2. Placement du layout dans le menu
        3. Contrôle du clavier
      5. N'oubliez pas les téléphones !
    4. 28. Fragments
      1. Introduction aux fragments
        1. Le problème résolu par les fragments
        2. La solution des fragments
        3. La bibliothèque de compatibilité (ACL)
      2. Création des classes fragments
        1. Fragments généraux
        2. ListFragment
        3. Autres classes Fragment de base
      3. Fragments, layouts, activités et tailles d'écrans
      4. EU4YOU
        1. DetailsActivity
      5. Fragments et changements de configuration
      6. Concevoir en utilisant les fragments
    5. 29. Gestion des changements de plates-formes
      1. Des choses qui risquent de vous rendre nerveux
        1. Hiérarchie des vues
        2. Changement des ressources
      2. Gestion des modifications de l'API
        1. La jungle des versions
        2. Détecter la version d'Android
        3. Envelopper l'API
      3. Patrons pour Ice Cream Sandwich et Honeycomb
        1. La barre d'action
        2. Isolation du code Ice Cream Sandwich/Honeycomb
        3. Applications uniquement destinées aux tablettes
  10. Partie IV – Dépôts de données, services réseaux et API
    1. 30. Accès aux fichiers
      1. Allons-y !
      2. Lire et écrire
      3. Stockage externe : un gain de place énorme
        1. Où écrire
        2. Quand écrire
      4. StrictMode : éviter le code poussif
        1. Mise en œuvre de StrictMode
        2. StrictMode en action
        3. Uniquement pour le développement, merci !
        4. Savoir être strict dans certains cas
      5. Systèmes de fichier Linux : la victoire de sync et vous gagnez
    2. 31. Utilisation des préférences
      1. Obtenir ce que vous voulez
      2. Définir vos préférences
      3. PreferenceFragment et PreferenceActivity
      4. Préférences avec les fragments
        1. La nouvelle approche pour les préférences
        2. Ajouter la compatibilité ascendante
        3. L’ancien modèle de gestion des préférences
      5. Laisser les utilisateurs choisir
      6. Ajouter un peu de structure
      7. Boîtes de dialogue
    3. 32. Accès et gestion des bases de données locales
      1. Présentation rapide de SQLite
      2. Commencer par le début
      3. Mettre la table
      4. Ajouter des données
      5. Le retour de vos requêtes
        1. Requêtes brutes
        2. Requêtes normales
        3. Utilisation des curseurs
        4. CursorAdapter personnalisés
        5. Créer ses propres curseurs
        6. SQLite et versions d’Android
      6. Flash semble plus rapide qu’il ne l’est
      7. Embarquer votre base
      8. Des données, des données, encore des données
    4. 33. Tirer le meilleur parti des bibliothèques Java
      1. Ant et JAR
      2. Limites extérieures
      3. Suivre le script
      4. Autres langages de scripts
    5. 34. Communiquer via Internet
      1. REST et relaxation
        1. Opérations HTTP via HttpClient
        2. Traitement des réponses
        3. Autres points importants
        4. AndroidHttpClient
      2. Tirer parti des composants Android pour Internet
      3. Téléchargement de fichiers
      4. Suite de la lutte contre le code poussif
  11. Partie V – Services
    1. 35. Théorie des services
      1. Pourquoi les services ?
      2. Mise en place d’un service
        1. La classe Service
        2. Méthodes du cycle de vie
        3. Entrée du manifeste
      3. Communiquer avec les services
      4. Envoi de commandes avec startService()
        1. Liaison avec bindService()
      5. Communication à partir des services
        1. Fonctions de rappel/écouteurs
        2. Intentions diffusées
        3. Résultats en attente
        4. Messenger
        5. Notifications
    2. 36. Patrons de base pour les services
      1. Downloader
        1. Conception
        2. Implémentation du service
        3. Utilisation du service
      2. Lecteur musical
        1. Conception
        2. Implémentation du service
        3. Utilisation du service
      3. L'interface de service web
        1. Conception
        2. Le problème de la rotation
        3. Implémentation du service
        4. Utilisation du service
    3. 37. Alerter les utilisateurs avec des notifications
      1. Configuration des notifications
      2. Notifications matérielles
      3. Icônes
      4. Les Notifications en action
      5. Rester au premier plan
        1. FakePlayer revisité
      6. Notifications avec Ice Cream Sandwich et Honeycomb
  12. Partie VI Autres fonctionnalités d’Android
    1. 38. Demander et exiger des permissions
      1. Maman, puis-je ?
      2. Halte ! Qui va là ?
      3. Imposer les permissions via le manifeste
      4. Imposer les permissions ailleurs
      5. Papiers, s’il vous plaît !
      6. Nouvelles permissions avec les anciennes applications
      7. Permissions : tout ou rien
    2. 39. Accès aux services de localisation
      1. Fournisseurs de localisation : ils savent où vous vous cachez
      2. Où suis-je ?
      3. Se déplacer
      4. Est-on déjà arrivé ? Est-on déjà arrivé ?
      5. Tester… Tester…
    3. 40. Cartographie avec MapView et MapActivity
      1. Termes d’utilisation
      2. Empilements
      3. La clé de tout
      4. Les composants essentiels
      5. Cartes optionnelles
      6. Testez votre contrôle
        1. Zoom
        2. Centrage
      7. Couches sur couches
        1. Classes Overlay
        2. Affichage d’ItemizedOverlay
        3. Gestion de l’écran tactile
      8. Moi et MyLocationOverlay
      9. Terrain accidenté
      10. Cartes et fragments
      11. Limitez-vous aux dernières versions d’Android
        1. Utilisez onCreateView() et onActivityCreated()
        2. Hébergement du fragment dans une MapActivity
        3. Alternative aux cartes et aux fragments
    4. 41. Gestion des appels téléphoniques
      1. Le Manager
      2. Appeler
      3. C’est vous qui téléphonez !
    5. 42. Polices de caractères
      1. Sachez apprécier ce que vous avez
      2. Polices supplémentaires
      3. Le problème des glyphes
    6. 43. Outils de développement supplémentaires
      1. Hierarchy Viewer
      2. DDMS (Dalvik Debug Monitor Service)
        1. Journaux
        2. Stockage et extraction de fichiers
        3. Copies d’écran
        4. Mise à jour de la position
        5. Appels téléphoniques et SMS
        6. Gestion de la mémoire
      3. adb : comme DDMS, mais au clavier
      4. Devenir graphiste
  13. Partie VII – Environnements alternatifs
    1. 44. Rôle des environnements alternatifs
      1. Au début, il y avait Java…
      2. …Et ils virent que cela était bon
      3. Ne pas suivre la mode
      4. Support, structure
      5. Soyez prudent
    2. 45. HTML5
      1. Applications déconnectées
        1. Explications
        2. Utilisation
      2. Web Storage
      3. Explications
      4. Utilisation
        1. Base de données SQL web
      5. Mise en production
        1. Tests
        2. Signature et distribution
        3. Mises à jour
      6. Problèmes éventuels
        1. Versions des terminaux
        2. Tailles et densités des écrans
        3. Intégration limitée
        4. Performances et batterie
        5. Look and Feel
        6. Distribution
      7. Modifications du navigateur depuis Ice Cream Sandwich
      8. HTML5 et les navigateurs Android alternatifs
      9. HTML5 : un autre point de référence
    3. 46. PhoneGap
      1. Qu’est-ce que PhoneGap ?
        1. Comment s’y prendre ?
        2. Fonctionnalités
        3. Aspect des applications
        4. Distribution des applications
        5. Et les autres plates-formes ?
      2. Utilisation de PhoneGap
        1. Installation
        2. Création et installation d’un projet
        3. PhoneGap Build
      3. PhoneGap et l’exemple Checklist
        1. Respect des standards
        2. Ajouter les API de PhoneGap
      4. Problèmes éventuels
        1. Sécurité
        2. Tailles et densités des écrans
        3. Look and Feel
      5. Pour en savoir plus
    4. 47. Autres environnements alternatifs
      1. Rhodes
      2. Flash, Flex et AIR
      3. JRuby et Ruboto
      4. Mono pour Android
      5. Titanium Mobile
      6. Autres langages compilés pour la JVM
  14. Partie VIII – L’évolution constante d’Android
    1. 48. Gestion des terminaux
      1. Cette application contient des instructions explicites
        1. Demander des caractéristiques précises
        2. Demander implicitement certaines caractéristiques
      2. Un marché garanti
      3. Autres différences
      4. Bogues, bogues, bogues
      5. Test des terminaux
  15. Index