Retour au blog

Posséder un téléphone sous Android c’est souvent accepter le fait d’être servi après les utilisateurs d’appareils Apple, le phénomène appelé en toute logique « iOS first » est extrêmement courant et frustrant. En tant que développeur il est normal de se poser la question de cette injustice, plusieurs personnes ont tenté d’y répondre à l’aide de statistiques sur le temps de développement qui serait plus court en Objective-C (le langage bordelique d’Apple), ou sur le taux de piratage très discutable des applications Android.

En fin de compte, peu d’éléments factuels semblent favoriser telle ou telle plateforme. Étant donné que rien ne vaut l’expérience personnelle j’ai tenté de publier une application à la fois pour Android et pour iOS, et ainsi comparer les deux plateformes d’un point de vue purement fonctionnel.

Évidemment l’expérience est quelque peu biaisée, ceux qui me connaissent savent que je conchie Apple et ses techniques commerciales extrémistes, mais je suis assez ouvert pour reconnaitre que leur matériel est joli et de bonne qualité. Et puis posséder un appareil Apple c’est la classe, mais c’est surtout beaucoup plus cher alors ça doit évidemment être meilleur.

À l’inverse, prétendre qu’un smartphone Android est de mauvaise qualité car moins cher est un raisonnement simpliste, de plus le concept de « smartphone Android » n’a aucun sens car contrairement à Apple, dans le monde ouvert du petit robot le matériel n’est pas lié au logiciel.

En matière de qualité logicielle il y a du bon et du moins bon des deux côtés, de manière approximativement équitable.

Bref, je suis développeur Android, et j’ai voulu porter mon application phare sous iOS.

Le pognon

Le premier point est évidemment le budget qui sera investit dans le projet, on a beau être passionné par le code, on ne roule pas tous forcement sur l’or.

Publier une application coûte de l’argent, ce qui est tout à fait normal car le prestataire doit fournir une plateforme de distribution, et cela lui engendre des frais. Maintenant il y a une différence claire entre facturation de frais et arnaque.

Entre Android et iOS la donne est un peu différente, puisque l’on peut développer sur Android et distribuer son application à ses potes sans avoir à débourser le moindre centime en licence, alors que de son côté Apple facture 100 dollars par an pour obtenir l’honneur de simplement coder sur sa plateforme, même si c’est pour distribuer l’application à un cercle restreint d’amis. Ce droit monte à 300 dollars par an pour les entreprises.

Chez Google juste en face, publier une application sur le Play Store demande également une licence développeur, mais celle-ci ne coute que 25 dollars, et est surtout valable à vie.

Graphiquement, le coût d’être développeur sur les deux principales plateformes mobiles donne un résultat effarant, et encore là on ne compare que les coûts pour une seule année.

publish_cout_5_ans

En effet, si ton application dure cinq ans alors ta facture finale s’élèvera à 500 dollars pour iOS, contre toujours 25 dollars pour Android.

S’inscrire

Des deux côtés, devenir développeur officiel nécessite une inscription payante, comme expliqué dans le chapitre ci-dessus.

Côté Android il te suffit de posséder un compte Google, de payer tes 25 dollars, et l’affaire est torchée en quelques minutes.

Chez Apple mieux vaut prendre son mal en patience, une fois que tu as payé tes 100 dollars (ou 300) alors l’opération va prendre au minimum une semaine, et il peut arriver que Big Brother t’appelle au téléphone afin de contrôler que tu es vraiment humain. D’ici quelques années il faudra probablement leur fournir une analyse d’urine.

Le temps

Comme je le disais plus haut, distribuer une application nécessite de l’envoyer sur les serveurs d’Apple ou de Google.

Côté Apple l’application doit être approuvée par une équipe de nazis personnes qui scrutent que l’interface colle bien avec leur système, l’opération prend deux à trois semaines, et si l’application est refusée alors on repart pour un tour, jusqu’à ce que Sa Majesté la Pomme daigne t’accorder l’entrée à son sacro-saint magasin en ligne.

Côté Google l’attente de publication sur le Play Store prend moins de douze heures, le graphique ci-dessous compare en heures l’attente de publication d’une application sur les deux plateformes.

publish_duree

Tu comprendras que les prétendues études sur les temps de mise en œuvre plus courts sur iOS ont peine à convaincre.

L’authenticité

Niveau sécurité l’affaire est également différente. Côté Android l’application doit être signée avec un certificat valable à vie et généré par le développeur, gratuitement et sur sa propre machine. L’application déployée sur le Play Store doit être signée par ce certificat, ainsi que toutes les mises à jour, un fichier à ne pas perdre sous peine de ne plus pouvoir maintenir son application.

Même combat avec Apple, à l’exception que le certificat est généré et stocké sur le site d’Apple, et que sa durée de validité est d’une année. Cela signifie que l’application doit être régulièrement republiée avec le nouveau certificat sous peine de ne plus pouvoir être lancée sur les appareils de tout ceux qui l’auraient installée. Bien entendu l’obtention d’un nouveau certificat nécessite d’avoir un compte développeur actif, et donc de payer l’abonnement annuel.

Les certificats Apple ne sont pas seulement là pour assurer la sécurité, ils sont également implémentés afin d’assurer un revenu régulier à Apple en prenant les applications en otage.

La fragmentation

Sous cet intitulé effrayant se cache une réalité, le parc d’appareils sous Android est largement plus hétérogène que celui d’iOS. Ainsi un développeur Android doit prendre en compte un nombre incalculable de résolutions d’écrans différentes lorsqu’il crée son application, alors qu’avec iOS qui équipe une poignée de modèles l’affaire est simplifiée.

Cependant, avec les outils actuels la création d’une interface responsive (qui s’adapte aux écrans selon la taille et l’orientation) devient de plus en plus aisée. La fragmentation n’est plus une excuse et cela n’a sincèrement pas posé de problème lors de mon expérience.

Ce qui n’empêche pas les responsables d’Apple de s’en moquer publiquement sur scène lors de leurs célèbres keynotes, messes annuelles qui dévoilent inlassablement au public passionné les futurs téléphones aux fonctionnalités révolutionnaires, comme de plus grands écrans ou des écouteurs sans fil.

Conclusion

Je ne comprends pas comment un développeur peut sciemment mettre en avant la plateforme d’Apple avant une autre, mais une chose est très claire, de mon côté je ne développerai jamais une application pour iOS sans y être forcé.

Le projet iOS a aujourd’hui été abandonné, et tant pis pour cette part de marché perdue.


, , ,     vendredi 25 novembre 2016

  4 commentaires

  1. Merci, c’est super intéressant, clair, et mesuré.
  2. Merci !

    (si ce n’était pas ironique 😛 )
  3. Je dirais que des sponsored-reviews sont la raison principales de la popularité du développement sur Apple.

    Apple file des ristournes et des avantage à quelques boites et indés qui du coup vont être content et les encenser.
    Du coup on lit de bonnes critiques sur Apple partout, alors les premières méga-grosses boites s’y mettent aussi et gagnent à leur tours des avantages (ristourne et/ou traitement privilégié pour le support).

    Du coup encore plus de bonne critique pour Apple.

    (Franchement, tu pense que Rovio vont être contrains d’attendre plus que 30minutes pour chaquune de leurs releases ?)

    Arrivent à ce moment-là les vrais geeks en ton genre, qui n’ont aucun intérêt pour les vrais 2-3 avantages maigrichons de la plateforme (par habitude je dirais : meilleure intégration à la plateforme Apple en général. Mais ça fait des années que je n’ai plus touché X-Code sous iOS, donc c’est juste une supposition), et qui constatent tous les problèmes de temps et d’argent.

    Mais pour la plupart des cas, ces dernières revues négatives seront victime du Reality-Distorsion-Field de la marque à la pomme, ses fans ne voulant écouté que les critiques positives qu’ils ont entendus jusque là.

    (Et pour la forme, je pense que « rapidité de développement » fait surtout référence au fait que sur iOS par défaut tu produis des binaires et donc c’est facile de linker tes propres librairies C pré-existante dans ton projet, alors qu’en théorie Android a un environnement quasi-Java et il faudrait donc en théorie tout réécrire – ces détracteurs n’ayant jamais entendu le mot « JNI », ni réalisé que ça fait de belle lurette que tous les mondes fait des espèces de Web-App repackagées (ou du Qt Quick, etc.) et que donc la majorité des développeur n’en n’ont rien à battre d’une obscure bibliothèque C)
  4. Merci pour ton commentaire!

    C’est vrai que la ré-écriture des librairies en Java doit être rébarbative, mais pour la partie de 69 entre Apple et les partenaires je ne peux qu’approuver tes dires.

  Tu peux même laisser ton avis

Prends juste note que tout commentaire désobligeant, illégal, publicitaire, agressif, mal écrit ou tout simplement ennuyeux sera cruellement supprimé sans préavis, sans explication et sans excuse par le dictateur autoproclamé actuellement au pouvoir.

J'accepte que les données saisies, y compris personnelles, soient enregistrées sur ce site

  Sur le même thème