Vous avez été nombreux à consulter le premier tutoriel de Cyril Mottier sur l'arborescence d'un projet Android. On continue avec un nouveaux tutoriel qui va vous présenter les composants principaux d'une applications 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 : nous allons attaquer le vif du sujet avec le développement d'une première application dans la prochaine partie de cette série de tutoriaux !
Le développement sur Android s'appuie 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 contruire 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 Intent
s 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 Intent
s, les applications ont la possibilité de fournir leurs services ou données si elles le souhaite.
View
Les View
s 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 auxIntents
qui lui sont adressés. Il ne fait donc rien d'autres que d'être à l'écoute des Intents
envoyés par d'autres composants applicatifs.
Conclusion
Vous connaissez maintenant les différents éléments utilisés dans une application Android. Si vous voulez des détails sur certains points ou si vous avez des questions, n'hésites pas à les poser dans les commentaires.