Cyril Mottier

“It’s the little details that are vital. Little things make big things happen.” – John Wooden

Tutorial Android #2 : Les Composants Principaux d'Android

Lorsque l'on aborde une nouvelle technologie, on souhaite d'emblée réaliser un premier projet. Etant passé maintes fois par cette étape, je comprend votre engouement à réaliser votre première application Android. Malheureusement, avant d'effectuer un premier et traditionnel “Hello World”, il me semblait plus utile d'introduire les composants principaux d'Android. Je tiens tout de même à rassurer ceux qui souhaiterait décrocher maintenant : “Encore un peu de courage : nous développerons, très probablement, une première application dans la prochaine partie de ce tutorial”.

Le développement sur Android s'appui sur des classes importantes du framework. Ces classes sont, en quelque sorte, les “briques” élémentaires sur lesquelles vos futures applications reposeront. Elles sont tellement indispensables, qu'il est tout simplement impossible de construire votre application sans passer par au moins l'une d'elles. Cette partie tente de décrire de façon globale et succincte ces différentes “briques”.

Intent

Les Intents sont des objets permettant de faire passer des messages contenant de l'information entre composants principaux. La notion d'Intent peut être vue comme une demande de démarrage d'un autre composant, d'une action à effectuer. La raison d'être des Intents provient du modèle de sécurité d'Android. Chaque application est en effet sandboxée. Cela veut dire qu'une application A ne peut accéder aux données d'une application B. Grâce aux Intents, les applications ont la possibilité de fournir leurs services ou données si elles le souhaitent.

View

Les Views sont les composants de base de l'interface graphique. Elles permettent de construire l'interface utilisateur. Les widgets (nom donné à des composants graphiques “avancés” : une barre de progression, par exemple, est un widget), composants graphiques ou autres layout (composant permettant de placer les différents composants graphiques à l'écran) héritent en fait de cette classe élémentaire. Le rendu/dessin d'une View s'effectue par l'intermédiaire d'un Canvas (qu'on peut assimiler à une feuille transparente sur laquelle on dessine avec un crayon (Paint). Pour finir, la vue est le principal composant qui s'occupe de gérer les actions utilisateurs (appui sur l'écran, sur le clavier, etc.).

Lorsqu'on créé une application à l'aide du framework Android, le développeur doit hériter d'au moins une des 4 classes brièvement décrites ci-dessous. Ces notions de composants applicatifs vous sembleront, j'en suis sûr, totalement déroutantes au premier abord. Gardez à l'esprit que vos développements et les différentes parties de ce tutorial, vous permettront de clarifier vos idées.

Activity

le concept d'Activity repose sur la notion d'interaction utilisateur. Une Activity représente la fenêtre ou tout simplement l'écran qui sera affiché à l'utilisateur. Elle permet également de gérer des fonctionnalités telles que l'appui sur la touche [MENU] ou l'affichage de messages d'alerte (Toast). Faites bien attention à ne pas confondre la notion d'Activity et de View. Il est évident que faire la différence entre ces deux notions est difficile à ce stade de compréhension du framework. Rappelez vous que vos premières réalisations vous permettront de dissocier les deux : Soyez patient!

Service

La notion de service est un avantage certain sur l'iPhone. En effet, un Service est en fait un programme tournant en tâche de fond et n'ayant pas d'interface graphique (ce qui n'est pas réalisable, à l'heure où j'écris ces lignes, sur iPhone OS). L'exemple commun illustrant au mieux cette notion est celui du lecteur mp3. Un lecteur mp3 ne nécessite pas, pour la plupart du temps, d'interface graphique et doit tourner en tâche de fond laissant la possibilité aux autres applications de travailler/s'exécuter librement.

ContentProvider

Les ContentProvider sont, comme l'exprime leurs noms, des gestionnaires de données. Ils permettent de partager l'information entre applications. Imaginons une application qui permette de conserver les cartes de visite virtuelles d'un ensemble de personnes. Ces cartes de visite contiennent généralement le nom, le prénom et un moyen de contact de la personne. Un tel programme peut être créé sous forme de ContentProvider ce qui lui permettra de fournir à d'autres applications présentes sur le système les informations sur une personne. Une application tierce d'envoi de courriel peut par exemple interroger ce ContentProvider afin d'obtenir l'adresse courriel d'un contact.

BroadcastReceiver

Pour finir, un BroadcastReceiver est une application qui est à “l'écoute” des autres applications. Ce type d'application tente de répondre au Intent qui lui sont adressés. Il ne fait donc rien d'autres que d'être à l'écoute des Intent envoyés par d'autres composants applicatifs.