Fonctionnalités avancées
Introduction
Ne pouvant raisonnablement aborder tous les sujets concernant Android, il apparaît nécessaire d’évoquer trois derniers sujets avant de clore cet ouvrage.
Apparus sous la version d’Android 1.5 (API 3), les App Widgets, premier sujet abordé dans ce chapitre, connaissent depuis leur sortie de plus en plus d’engouement : les utilisateurs ont en effet pris pour habitude de personnaliser leurs terminaux Android.
Le second sujet, la protection des applications payantes, lui, n’a, semble-t-il, pas rencontré la même popularité. Sans doute parce qu’il ne concerne que les applications payantes ou que les développeurs ne lui accordent pas l’importance ou le temps de développement qu’il mérite. Et pourtant son utilité est primordiale pour tout développeur voulant se voir rétribuer son travail.
Nous finirons par la mise en place de ce qui est la dernière tendance en matière de monétisation : les achats intégrés.
App Widget
La plupart des systèmes d’exploitation d’ordinateurs personnels permettent d’ajouter de petites applications directement sur le bureau de l’utilisateur.
Ces applications, appelées communément widgets, gadgets ou moins couramment vignettes actives, permettent à l’utilisateur de visualiser rapidement certaines informations et lui proposent certaines fonctionnalités concernant un domaine précis. Par exemple, on trouve des widgets qui affichent les données météorologiques actuelles, les cours de la bourse, les dernières nouvelles de l’actualité, des photos et d’autres qui proposent des fonctions de calculatrice, d’horloge…
Android permet d’ajouter de tels widgets sur le bureau de l’utilisateur, c’est-à-dire sur l’écran d’accueil. En fait, le bureau est aussi une application à part entière. Elle est lancée automatiquement au démarrage par le système. Donc concrètement, Android propose d’intégrer ces widgets dans une autre application, par exemple ici l’application d’accueil.
L’interface utilisateur française du système Android utilise le terme widget tel quel, sans traduction.
Un appui long sur une zone vide du bureau permet d’afficher un menu proposant notamment une liste de widgets.
Pour le développeur, ce terme peut avoir un autre sens. En effet, il peut également désigner les composants graphiques étudiés précédemment (cf. chapitre Les bases de l’interface utilisateur - Widgets) tels que les textes, les boutons…
Pour différencier les deux sens et éviter les confusions, le widget destiné à être ajouté sur le bureau se nomme sous Android : App Widget.
1. Création
L’App Widget est un récepteur d’événements spécialisé de type AppWidgetProvider. Cette classe hérite de la classe BroadcastReceiver et est spécialisée dans le fonctionnement des App Widgets. C’est, par défaut, la classe mère de tous les App Widgets.
La création d’un App Widget débute par l’écriture de sa classe principale, qui hérite donc de la classe AppWidgetProvider.
Syntaxe
public...
Protéger les applications payantes
Comme nous l’avons vu, une application publiée se présente sous la forme d’un fichier apk. Il suffit à un tiers d’avoir ce fichier en sa possession pour qu’il puisse le partager aisément avec d’autres personnes. Cela ne pose généralement pas de problèmes pour les applications gratuites car le développeur souhaite qu’elles soient distribuées et donc installées le plus possible, peu importe le moyen. Par contre, il n’en est pas de même pour les applications payantes. Ces copies illégales sont un manque à gagner pour l’éditeur...
Afin de se protéger contre l’usage de copies illégales d’applications payantes (et uniquement d’applications payantes), Android fournit un système de vérification des licences des applications achetées et installées obligatoirement via le Play Store. Ce service est proposé pour les systèmes Android 1.5 (API 3) ou supérieurs.
Le principe de ce système est simple et se présente sous la forme d’une bibliothèque nommée LVL (License Verification Library) ou bibliothèque de vérification de licence. Cette bibliothèque permet, via l’application Play Store installée dans le système Android, de communiquer avec le serveur de licence en ligne. Celui-ci retourne, de façon sécurisée, le statut de licence propre à l’application et à l’utilisateur concerné.
C’est l’application Play Store qui gère les communications en ligne avec le serveur. Le développeur n’a qu’à lancer les commandes via la bibliothèque et exploiter les retours.
En fonction des retours de l’application Play Store, le développeur pourra appliquer la stratégie de son choix, comme par exemple : autoriser l’usage de l’application pendant une certaine période, restreindre les fonctionnalités de l’application, voire même bloquer complètement l’accès à l’application.
Ce système nécessite une connexion réseau pour communiquer avec le serveur de licence. Il faut donc prévoir une alternative lorsqu’il n’y...
Proposer des achats intégrés
Outre les applications directement payantes sur le Play Store, il existe une autre méthode pour monétiser son application : les achats intégrés (in-app purchases, en anglais). Une application proposant des achats intégrés permet à l’utilisateur d’acheter directement depuis l’application des éléments supplémentaires : fonctionnalités, éléments de jeu, etc.
Les études ont montré que les achats intégrés sont en général appréciés des utilisateurs, qui préfèrent ce mode de monétisation aux traditionnelles applications payantes du Play Store. Un extrait d’étude est disponible sur ce thème à l’adresse suivante : http://www.zdnet.fr/actualites/applications-plus-d-achats-in-app-et-android-renforce-39796484.htm
À noter, l’utilisation du paiement intégré nécessite que l’éditeur de l’application possède un compte Google Wallet. La création de ce compte se fait à l’adresse suivante : http://www.google.com/wallet/business/, et est entièrement gratuite.
1. Préparation
Comme pour la protection des applications payantes, c’est l’application Play Store installée sur le terminal de l’utilisateur qui a la charge de la communication entre l’application et les serveurs Google. Et, de la même façon, le paiement intégré n’est possible que pour les applications publiées sur le Play Store.
La communication avec le Play Store se fait, pour le paiement intégré, en utilisant la bibliothèque InAppBillingService. Cette bibliothèque est fournie par Google, sous la forme d’un fichier AIDL (Android Interface Definition Language), et est distribué via l’Android SDK Manager.
Utiliser directement cette bibliothèque est un peu fastidieux, et demande la mise en place de nombreux éléments. Pour faciliter le travail, Google fournit un exemple, bien conçu, qui intègre un ensemble de classes simplifiant l’utilisation de la bibliothèque InAppBillingService. Nous allons utiliser ces classes pour réduire la charge de travail.
La première étape...