Android, A Complete Course, From Basics to Enterprise Edition.

Android2EE a le plaisir de rendre, sur son site, le livre « Android, A Complete course » en feuilletage libre (private joke from my phd : Germes de feuilletages holomorphes en dimension deux). Vous pourrez ainsi monter en compétence sur la technologie Android grace à lui. Ce livre date de 2011, il y a eu des mises à jour du système depuis, mais il reste une référence qui vous permettra de vous batir des bases solides pour vos prochains développement Android.

Alors, enjoy !

Introduction.

Android, A Complete Course, From Basics to Enterprise Edition. 1

Introduction. 1

Introduction. 1

1.1         Audience. 3

1.2         Contenu. 4

1.3         Structure de l’ouvrage. 6

1.4         Convention. 6

1.5         Votre espace de travail 6

1.6         Codes sources et exemples. 7

 


Cet article est extraie du livre « Android, A Complete Course », disponible sur Android2ee.com.

 

Les exemples ou les programmes présents dans cet ouvrage sont fournis pour illustrer les descriptions théoriques. Ce code est libre de toute utilisation mais n'est pas distribuable.

La distribution du code est reservée au site :

http://android2ee.com.

La propriété intellectuelle du code appartient à :

Mathias Séguy

L’utilisation de ces codes est sous votre unique responsabilité et personne d’autre que vous ne pourra être tenu responsable des préjudices ou dommages de quelques natures que ce soit pouvant résulter de son utilisation.

Tous les noms de produits ou marques cités dans cet ouvrage sont des marques déposés par leurs propriétaires respectifs.

Publié par http://android2ee.com

Titre Original : Android, A Complete Course, From Basics to Enterprise Edition. Édition Française.

ISBN : 979-10-90388-00-0

Copyright © 2011 by Mathias Séguy

 

Aucune représentation ou reproduction, même partielle, autre que celles prévues à l’article L. 122-5 2° et 3° a) du code de la propriété intellectuelle ne peut être faite sans l’autorisation expresse de Mathias Seguy ou, le cas échéant, sans le respect des modalités prévues à l’article L. 122-10 dudit code

 

 « Android, a Complete Course » a déjà été acheté plus de 1000 fois.


Introduction

Le nouveau système d’exploitation de Google pour les téléphones portables et les nouvelles tablettes est là. Sa réputation est solide, il envahit le monde de la téléphonie, il est ouvert et offre des outils de développement Java au monde des programmeurs. Il ouvre les portes du développement mobile à tous les développeurs objets avec un coût minime pour la montée en compétence. Une seule question se pose : Êtes-vous prêts ?

L’objectif de ce livre est très clair : vous permettre en un temps record d’être autonome en programmation Android. Si vous êtes un programmeur Java (débutant ou confirmé), le but est que vous soyez autonomes en moins de 10 jours. C’est cet objectif qui est l’origine de ce livre, permettre aux collaborateurs de mon entreprise de monter en compétence sur cette technologie avec rapidité et efficience. Vous serez alors à même de concevoir une application, de l’implémenter, de la tester, de l’internationaliser et de la livrer à votre client.

Vous serez aussi capable de connaître et comprendre quelles sont les considérations à avoir lorsque l’on a à charge une application Android en tant que professionnel de l’informatique. Quelle est la stratégie de tests à utiliser ? Comment signer son application ? Comment la déployer ? Comment mettre en place la gestion du cycle de vie de l’application ? Comment implémenter l’intégration continue ?

Cet ouvrage axe sa réflexion sur deux choses qui sont primordiales :

·         le savoir faire

·         le savoir concevoir

Concernant le savoir faire, celui-ci est acquis au travers de projets Android dont le code est

·         épuré de toute considération fonctionnelle,

·         extrêmement précis (un projet pour une combo-box, un projet pour un web kit, un projet pour …) qui n’explique que le concept associé à l’exemple,

·          très commenté et très clair.

Un paragraphe explique les points clefs de compréhension, le code termine l’explication détaillée du concept. Ce savoir-faire vous permettra de mettre en place toutes les problématiques qui se posent à vous. Mais comme tout, parfois, sur des sujets complexes qui mériteraient un ouvrage pour eux seuls,  nous ne donnons que les points d’entrée car il serait trop long de tout réexpliquer, vous laissant continuer l’exploration seuls.

Concernant le savoir-concevoir, ce livre explique les points clefs de la structuration d’une application Android. Il vous présente les éléments qui forment la voute du système et vous explique comment construire une application qui respecte ces principes et en tire partie de la manière la plus efficace possible. Chacun des ces concepts est mis en évidence par un projet Android dont le code a pour unique vocation de présenter le plus clairement possible ce dit concept.

Concernant la lecture de ce livre, il m’apparaît plus raisonnable d’effectuer une première lecture rapide, sans s’appesantir sur chaque concept, de manière à posséder une vision globale sur la programmation Android. Ensuite, le lecteur se référera aux chapitres précis qui l’intéresse et dont il souhaite mettre le concept en pratique. La vision globale lui permettant d’avoir en tête l’ensemble des considérations qu’une application Android doit prendre en compte, il pourra alors acquérir son savoir faire sur des exemples précis et récupérer le code fourni pour le mettre en place. Quand sa montée en compétence sera effective, ce livre restera à ses côtés lors des développements d’applications, lui servant de référence, tant pour le code que pour les concepts associés.

1.1       Audience

Ce livre est destiné à plusieurs types de lecteurs distincts et apportera à chacun d’eux les informations qui lui permettront d’atteindre ses objectifs. Le point commun de tous ces lecteurs étant leur envie de créer des programmes Android, que ce soit de manière professionnelle ou amateur, que ce soit en tant que simple développeur ou en tant qu’architecte.

Tout d’abord, le développeur amateur trouvera son bonheur au travers d’exemples et d’explications simples qui lui permettront de mettre en place rapidement ses premières applications. La première partie de ce livre explique comment mettre en place des écrans pour Android. La plupart des développeurs amateurs auront à cœur d’approfondir cette partie et de devenir un programmeur graphique efficient. Ils pourront alors, au travers d’exemple de code, greffer à leurs IHMs des composants spécifiques et ainsi enrichir leurs applications rapidement et à moindre effort. Ces composants sont :

·         Internet

·         Utilisation du bus HTTP

·         Utilisation de MapView

·         Utilisation de GeoCoder

·         Effectuer des appels téléphoniques

·         Envoyer Recevoir des SMS

·         Lire un fichier Audio

·         Lire/Enregistrer une Vidéo, une Photo

·         Utiliser le Bluetooth

·         Gérer les connections Réseau (GPRS, 3G, wifi)

·         Dialoguer avec les capteurs: Accéléromètre, Boussole, Champ magnétique, température,…

Le second type de lecteur est le développeur objet qui au sein d’un projet d’entreprise aura besoin de rapidement comprendre l’ensemble de la structure d’une application Android, de construire des IHMs, des services, d’utiliser les bases de données et d’en implémenter, de mettre en place des bus de communication http, de gérer les ressources et leur internationalisation,… Il aura une vision claire et concise de l’ensemble du système et pourra rapidement mettre en place chacun des composants qui lui sont demandés dans le respect des règles de codage Android et surtout de sa philosophie. Cet ouvrage permet d’avoir l’ensemble des réponses aux préoccupations liées aux applications d’entreprise :

·         La gestion du clavier

·         La gestion des polices de caractère

·         La gestion des threads

·         La gestion des évènements du cycle de vie

·         La gestion des intentions (Intents) et des filtres d’intentions

·         La gestion des permissions

·         La gestion des ressources:

o   Fichiers  de ressources (l’internationalisation et l’arbre de devices), les styles, les thèmes,…

o   Fichiers externes et fichier internes

o   Les préférences

·         La gestion de base de données SQLite

·         Les tests et l’industrialisation du développement

Le troisième type de lecteur est l’architecte, le concepteur ou l’avant vente. Celui-ci aura une vision globale du système et saura agencer les composants entre eux. Au travers de l’ouvrage, il se construira une vision de haut niveau du système qui lui permettra de définir l’architecture de nouvelles applications Android, de connaitre l’ensemble des services disponibles de la plateforme et d’associer un chiffrage à ses œuvres.

Enfin, le dernier type de lecteur est celui qui a à charge tout ou partie de la gestion d’un projet Android (chef de projet, responsable technique, architecte, développeur expérimenté). Un objectif de cet ouvrage étant la mise en place de l’environnement de développement, au sens large, il est important que ceux qui en ont la charge prennent connaissance des milles et unes embuches qu’ils rencontreront.  Arriver à l’automatisation des tests et des builds sur un serveur d’intégration continue pour vos projets Android est un parcours semé d’obstacles pour lequel il vaut mieux avoir un guide. Ce livre sera votre guide le plus complet et le plus détaillé.

Par contre quelque soit la catégorie de lecteur dans laquelle vous vous placez, il est préférable que vous ayez un minimum de connaissance sur les deux sujets suivants :

·         Programmation objet, la connaissance de Java étant un plus.

·         Utilisation d’Eclipse (installation, mise en place d’un espace de travail,…).

Si vous n’avez aucune connaissance sur ces deux sujets et que vous êtes vraiment motivés par la programmation Android, ce livre est aussi pour vous. Vous pourrez commencer à montée en compétence sur ces sujets, mais cela vous demandera plus de travail et d’effort. Par contre quel plaisir cela sera de voir votre première application sur l’AndroidStore ou tout simplement sur votre téléphone portable.

1.2       Contenu

Ce livre se scinde en quatre parties distinctes.

Une première partie est destinée aux développeurs et leur permet d’effectuer rapidement des applications avec les éléments graphiques. Cette partie décrit et explique comment utiliser ces composants et structurer son application. On y trouve donc la description des composants usuels, la gestion du clavier, la gestion des menus, la manipulation des polices de caractère, le navigateur web Kit et enfin les messages surgissants. Cette partie permet d’effectuer les développements dont la plupart des développeurs ont envie et besoin : les IHMs.

Une seconde partie étant plus destinée aux développeurs / concepteurs / architectes, elle explique comment :

Cette seconde partie est orientée développement dans le milieu de l’entreprise. Elle s’intéresse à expliquer comment structurer une application Android, à respecter les contraintes d’un tel projet.

La troisième partie se focalise sur le « comment faire pour » :

Cette partie est donc plus orienté sur comment communiquer avec le système. Elle s’adresse à des développeurs/concepteurs/architectes qui ont besoin d’utiliser des services déjà existant de la plateforme.

La dernière partie est orientée cycle de vie d’une application Android. Un chapitre de ce livre se consacre à la stratégie de tests à mettre en place. En effet, pour les projets Android, elle est une problématique complexe au vue de la diversité des appareils et des versions des systèmes d’exploitation. Un second chapitre explique comment construire votre application et la déployer. La construction et le déploiement de l’application sont elles aussi spécifiques aux applications Android et il est nécessaire de connaître et comprendre les étapes à suivre. Le KeyStore est un point clef de compréhension de ce processus. Puis un long chapitre se consacre à la mise en place de la gestion du cycle de vie de l’application au moyen de Maven. Cette gestion apportera à votre projet structure, sérénité et maintenabilité. Mais la mise en place de Maven sur un projet Android est subtile. L’objectif de ce livre est de vous présenter l’ensemble des petits détails à mettre en place pour que vos compilations, vos tests et vos déploiements se passent en toute sérénité. Ce livre vous présentera les problèmes rencontrés et leur solutions associées pour atteindre vos objectifs sans perdre ni votre temps ni votre sang froid. Enfin, le dernier chapitre se consacre à la mise en place de l’intégration continue au moyen d’Hudson et à l’automatisation du passage de vos tests sur un ensemble d’émulateurs Android différents.

1.3       Structure de l’ouvrage

La structure de ce livre découle directement de son objectif premier : Permettre une montée rapide en compétence en développement d’applications Android.

Ainsi une lecture séquentielle rapide des parties « Graphic Users Interfaces » et « le cœur du système » est préconisée, permettant au lecteur de prendre conscience des différents principes fondamentaux à connaitre quand on se lance dans ce type de programmation.

La deuxième lecture est elle plus libre, le lecteur pourra revenir sur tel ou tel concept pour l’assimiler, le mettant en place au travers d’exemples. Cette seconde lecture lui permettra de comprendre et de devenir autonome sur les concepts qu’il souhaite connaître et mettre en place.

Enfin un troisième mode de lecture apparaît : celui du livre de référence. Dans le contexte du développement d’une application, le lecteur reviendra à des exemples de code, à des explications de concepts qui lui permettront de dépasser rapidement les problèmes qu’il rencontre et de mettre en place de nouvelles fonctionnalités.

La structure de ce livre est donc :

·         Les Interfaces hommes-machines

·         Le cœur du système Android

·         La communication avec le reste du système et les autres API

·         La gestion du projet Android, de la mise en place de l’environnement de développement à la livraison de l’application.

1.4       Convention

Ce livre est riche en convention, surtout en convention concernant le code.

Le code est dans la police Times New Roman et formaté par Eclipse, le texte de l’ouvrage en Calibri.

1.5       Votre espace de travail

Lorsque vous voudrez mettre en place les exemples de ce livre, il vous faudra un espace de travail. Pour cela vous aurez à installer Eclipse et son environnement Android. Cela est expliqué au chapitre 11 : Installer l’espace de travail.

Vous pourrez alors récupérer le code source en tant que Projet Eclipse et l’exécuter au moyen de l’AVD Android (Android Virtual Devices).

1.6       Codes sources et exemples.

Le code source et les exemples sont en anglais. N’en déplaise à Mr Toubon, mais en tant que programmeur, vous serez dans 90% de vos missions sur du code anglophone, vous écrirez du code anglophone ; les java docs sont en anglais et de manière plus générale, l’anglais est la langue de programmation connue et partagée par tous. C’est donc un choix clair qui est d’offrir un ouvrage destiné aux programmeurs et non pas aux professeurs de français.