Cyril Mottier

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

Harmoniser Le Look 'N Feel Android

Lors de la création d'applications, les développeurs se trouvent confrontés à des problèmes graphiques similaires. Prenons l'exemple d'une application dont le menu contient un sous-menu affichant une icône ronde incrusté d'un ‘i’ (signifiant ‘info’) qui, si il est cliqué, ouvre une fenêtre affichant l'aide de l'application en cours. Cette icône, après avoir été créée une fois par le développeur pourra être utilisée dans ses futures applications pour agrémenter le sous-menu affichant l'aide.

Une telle démarche comporte néanmoins quelques désavantages :

  • Les développeurs ne sont souvent pas des graphistes confirmés, créer une icône relève donc de compétences qu'il n'a pas.

  • Le développeur peut également utiliser une icône trouvée sur Internet mais il devra alors s'informer des licences sur l'image et s'assurer que son incorporation dans un programme tiers na va pas l'encontre des règles de l'image en question (droit d'auteurs par exemple).

  • Trouver ou créer des icônes prend du temps. Le temps perdu à effectuer cette démarche aurait probablement été plus utile à optimiser l'application ou à y ajouter de nouvelles fonctionnalités.

  • Les utilisateurs ne retrouvent pas la même icône pour l'ensemble des applications disponibles sur leur appareil Android. La cohérence est par contre maintenue entre applications d'un même développeur si ce dernier réutilise toujours la même icône.

  • Le style graphique des icônes utilisées n'est pas forcément en accord avec le style d'Android.

Créer un environnement cohérent graphiquement est un problème sur lequel Apple et son iPhone mettent un point d'honneur à résoudre au mieux. Je ne cacherai pas que la firme de Cupertino s'en sort avec brio ! Le SDK iPhone fournit, de base, un look ‘n feel similaire aux applications natives (Maps, Settings, etc.).

Android, pour sa part, ne déroge pas à la règle. A l'instar de l'iPhone OS, il est possible d'utiliser le même style graphique et les mêmes images que celles utilisées par les applications natives d'Android. La seule différence (notable) réside dans le fait qu'Android facilite grandement le développeur souhaitant déroger à la charte graphique d'Android.

Le SDK Android, en plus de contenir fournir l'ensemble des frameworks de localisation, graphiques, de persistance de données, etc. contient donc un fichier d'accès aux ressources du système (R.java). Ce dernier est accessible dans le package android en tapant android.R. Comme à l'accoutumée, le fichier R.java suit les conventions de développement sur Android. On retrouve ainsi dans ce package :

  • L'ensemble des images utilisées par le système (icônes de menu, nine patchs) dans android.R.drawable
  • Des couleurs utilisées par le système ainsi qu'un (faible) ensemble de couleurs classiques dans android.R.color
  • Des layouts récurrents (trés utiles dans la création de ListView ou de Spinner par exemple: android.R.color
  • Des animations, des chaines de caractères, etc.

L'accès aux ressources du système peut également s'effectuer directement dans vos layouts XML. C'est d'ailleurs de cette façon qu'on utilise les thèmes prédéfinis. L'utilisation de ressources Android doit se faire en ajoutant simplement android: devant votre ressources. Imaginez que vous souhaitez créer une ImageView affichant ce fameux cercle incrusté d'un ‘i’ :

1
2
3
4
<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@android:drawable/ic_menu_info_details" />

Les ressources incluses dans Android sont pléthores et il me parait donc impossible d'en donner une liste exhaustive ici. Il est néanmoins possible d'accéder aux ressources en téléchargeant le code source d'Android ou en utilisant le service GitWeb du projet Android.

Malgré les incroyables et infinies possibilités de configuration d'Android, n'oubliez pas qu'un utilisateur lambda préfère ne pas être trop “chamboulé” dans ses habitudes. Lui permettre d'accéder à une nouvelle application ne dérogeant pas à la charte graphique du système ne fait qu'accélérer son temps de prise en main en réduisant significativement son temps d'adaptation. Un utilisateur trop “choqué” graphiquement pourra également totalement supprimer votre application sans même prendre le temps d'en analyser les possibilités et performances (aussi bonnes soient elles). Faites donc très attention à ce point lors de la réalisation de vos applications et n'hésitez pas à utiliser les ressources d'Android.