La fragmentation sur Android, mythe ou réalité ?

Posté par SOS Blog's Team le lundi 14 juin 2010

Quasiment depuis le lancement d’Android, nous entendons parler de fragmentation. La dérivation du code original de l’OS faite par China Mobile pour oPhone est un bon exemple. Mais dans le cas présent, nous parlerons plus d’une variante plutôt que de fragmentation. Alors cette fragmentation, mythe ou réalité ?

Selon nous, le mieux placé pour y répondre est un développeur avec une bonne expérience du système. Nous avons demandé à Ludovic Vialle, gérant de LevelUp Studio, son point de vue sur la question.

1- Bonjour Ludovic, pouvez-vous vous présenter ainsi que LevelUp Studio ?

Bonjour SOS Android! LevelUp Studio est une petite entreprise Toulousaine que j’ai fondé suite a l’introduction d’Android sur le marché français, et aux succès de mes applications: Beautiful Widgets, Touiteur, FoxyRing et le nouveau Live Wallpaper: Beautiful Live Weather. Depuis combien de temps développez vous ? Depuis l’age de 9 ans (donc cela fait 20 ans) sur CPC 464 en basic et avec une K7 comme stockage! De façon plus sérieuse, depuis 8 ans je dirais.

2- Comment êtes vous venu au développement Android et quand avez vous commencé ?

Après avoir utilisé un iPhone depuis son lancement aux États-Unis, j’ai été vivement attiré par la plate-forme de Google, grâce au HTC Magic que j’ai acheté en Juillet 2009. Le fait que le kit de développement soit gratuit m’a permis de m’essayer au développement Android et de voir si cela me plaisait. Ce fût rapidement le cas! De plus le sentiment de liberté est immense comparé à l’OS d’Apple.

3- Quelles sont les difficultés du développement sur Android ?

Appréhender les différences matérielles et logicielles d’Android est la principale difficulté. C’est probablement la rançon de la rapidité d’évolution et de l’esprit ouvert dans lequel est développé le système.

4- Cette fragmentation, est elle un mythe ou une réalité ?

Il s’agit bien d’une réalité. Il suffit de voir les chiffres donnés par Google pour se rendre compte que l’on doit gérer plusieurs versions d’Android, de la 1.5 à la 2.2. Ensuite viennent les différents modèles de matériel, avec des écrans de taille différentes, certains très puissants, et d’autres lents. Il faut apprendre à développer avec cette fragmentation et l’appréhender.

5- Quel est le facteur de fragmentation le plus important ?

La diversité des versions d’OS utilisées

6- Quelles diversité existe-t-il entre tous les constructeurs ?

Les constructeurs ne réagissent pas de la même façons par rapport aux nouvelles versions d’Android. Certains ont une version très personnalisée, énormément modifiée et mettent plus de temps à adopter les nouveautés logicielles. D’autres ne réagissent pas vraiment, ou ne se rendent pas compte de l’intérêt, difficile à dire, je ne suis pas à leur place. Toujours est-il que cela ralentit les mises à jour et que cela accroît de fait la fragmentation.

7- Est-ce que le rythme de sortie des version d’Android n’est pas une des causes car bouscule les habitudes des constructeurs et opérateurs ?

Bien sûr, mais le fait qu’Android soit ouvert, « cool », gratuit ne suffit pas pour plaire. Il faut des ressources derrière, des constructeurs qui suivent le rythme et qui pense à s’investir dans Android. C’est le prix de la reconnaissance du « bon constructeur » dans le monde d’Android.

8- Qu’en est il des créateurs de firmwares parallèles aux versions officielles tel Cyanogen ?

Pour les bidouilleurs, c’est un vrai régal, c’est un véritable écosystème et permettent aux utilisateurs moins amateurs de personnaliser et mettre à jour leur téléphone encore plus rapidement que ce qu’un constructeur pourrait offrir ! Concernant la fragmentation, cela ne change pas grand chose, cela représente une minorité d’utilisateurs et ces ROMs ne posent pas de problèmes.

9- Comment gérez vous la fragmentation ?

Il « suffit » d’y penser lors de la conception et lors du développement. Ensuite cela passe tout seul. Google fourni de bon outils, qui nous aident vraiment à gérer bien cette fragmentation. Simple à dire mais réel.

10- Recevez vous un bon support des équipes de Google ?

Je n’ai jamais eu affaire à eux, mais de ce que j’ai pu voir sur les groupes de discussions, ils semblent très présents !

11- Idéalement, que manque-t-il pour gérer cette fragmentation de manière à impacter le moins possible le développeur et en conséquence l’utilisateur final ?

Un Steve? 😉 Plus sérieusement, on s’y fait. C’est tout simplement le même problème qu’avec les utilisateurs de PC. On apprend à connaître son téléphone et ses limitations s’il y en a. Par contre un Android Market un peu plus intelligent ne serait pas de refus (pour mieux filtrer les applications par rapport aux capacités de tel ou tel mobile).

12- Un Andoid Market avec des filtres plus restrictifs ne seraient ils une source de frustration pour l’utilisateur final ?

Forcement, le fait de ne pas pouvoir accéder à certaines applications alors que l’on sait qu’elle existent est frustrant (cf les utilisateurs de QVGA qui voient très peu d’applications). Mais pour les autres, qui ne sont pas forcement au courant, cela peut enlever la frustration d’une application téléchargée mais qui ne marche pas. Par exemple Beautiful Live Weather ne fonctionne que sur les téléphone Android 2.1+ avec le support des Live Wallpapers activé. Malheureusement le filtre Live Wallpaper empêche les utilisateurs de Motorola Droid / Milestone de le voir dans le market. J’ai dû supprimer ce filtre, et désormais tout ceux qui sont en 2.1 au minimum peuvent le voir. Malheureusement, les Samsung Moment et HTC Hero n’ont pas de processeurs assez puissant pour un live wallpaper, donc ils peuvent voir l’application dans le market, la télécharger, et ensuite ils ne peuvent rien en faire.

13- Comment voyez vous cette fragmentation évoluer dans les mois à venir ?

Google fait un énorme travail sur le sujet, donc je pense que cela va s’améliorer. Ils parlent déjà de moduler Android afin de pouvoir mettre à jour certaines parties plus facilement. Cela limitera l’impact pour les développeurs des applications existantes.

14- Selon votre connaissance, comment est géré la fragmentation sur les autres plate-formes ?

Sur iPhone, c’est très uniformisé, donc il n’y en a que peu (iPhone / iPod principalement). Le fait qu’il y ait peu de téléphones différents rend la chose plus facile. Je pense que Apple ayant résolu à sa façon son problème de fragmentation en proposant l’iPhone et ses modèles très maîtrisés, il n’a fait que révéler la fragmentation plus poussée chez les autres. Cependant cela commence à changer avec l’iPad et l’iPhone 4, la fragmentation arrive et il va falloir penser pour plusieurs tailles d’écran et vitesse de processeur. Mais elle a toujours existé ! Il faut juste se dire que l’on est pas sur la plate-forme d’Apple. Via mon autre activité avec CoreCodec / Coreplayer, j’ai remarqué que la fragmentation sur Symbian est très importante du fait de modèles vraiment très différents et de puissances qui varient. Sur Windows Mobile le gros problème est la qualité des pilotes vidéo et de l’accélération matérielle. Suivant les téléphones et leur matériel, on doit s’adapter et écrire beaucoup de code supplémentaire pour rendre CorePlayer compatible. Malheureusement certains modèles ont réellement posé problème. Les pilotes ne sont qu’à moitié fonctionnel et les performances vidéos sont bien en deçà de ce que l’on peut offrir. CorePlayer est un exemple vraiment à part du fait des accès très bas niveau et des accès très rapide nécessaires en mémoire et en affichage.

15- Enfin, quel conseil donneriez-vous à une développeur qui souhaite se lancer pour adresser la fragmentation ?

La première chose à réaliser est d’étudier les différents modèles et de souligner leurs variations principales. Ensuite, il faut les mettre en relief par rapport à l’application en projet et à son utilisation. L’étude de la documentation sur le sujet est également très importante. Après c’est l’expérience qui prime!

Merci Ludovic. Donc cette fragmentation existe belle est bien. La meilleure façon de l’adresser est de soigneusement l’envisager dès le départ du projet. C’est un point extrêmement important pour réussir son application et favoriser son téléchargement.

Et vous, quelles sont vos expériences de la fragmentation ?

Développement | 2 commentaires