Partager cet article

Comme plus de 28 000 freelances, recevez des offres de mission tech à la messure de votre talent sur FreelanceRepublik.

Derniers articles

Développement iOS et Android : les différences

Lorsque l’on veut créer une application mobile, une question se pose : doit-on faire du développement iOS, du développement Android, ou les deux ?

Le choix du système d’exploitation est d’une importance capitale lors du développement d’un projet, aussi, la réponse à cette question nécessite un comparatif poussé entre les deux plateformes.

Vous voulez développer une application et ne savez pas vers quelle techno vous tourner ? Ou vous êtes tout simplement curieux et voulez en savoir plus sur cette thématique ? Suivez le guide !

iOS et Android, les principales différences

Dans un premier temps, pour s’orienter lors de la phase de choix technologique entre iOS et Android, il faut s’intéresser au système d’exploitation en tant que tel et à ses utilisateurs, sans entrer dans la technique.

iOS

Apparu en 2007 sous le nom d’iPhone OS, iOS est le système d’exploitation d’Apple tournant sur les iPhones et iPods Touch (les iPad ayant leur propre OS depuis 2019, iPadOS).

Le store de téléchargement d’apps, l’App Store, est quant à lui apparu en 2008. Il compte aujourd’hui près de 3,6 millions d’apps, et 1 million de jeux.

Ce qui est à retenir au sujet d’iOS :

  • il a une part de marché importante aux État-Unis, au Japon (majoritaire), et en Europe ;
  • les utilisateurs d’iPhones sont en général plus enclin à dépenser de l’argent via des apps.

Android

Android, le système d’exploitation mobile de Google, a été commercialisé en 2008, tout comme son store d’app, le Google Play Store (alors nommé Android Market).

Le store compte aujourd’hui environ 2,4 millions d’apps, et 450 000 jeux.

Contrairement à iOS, Android a :

  • une part de marché très majoritaire en Asie (hors Japon), Afrique et Amérique du Sud ;
  • moins d’utilisateurs prêts à dépenser pour des apps – le Play Store génère moins d’argent que l’App Store (malgré un nombre plus important d’utilisateurs au total).

iOS vs Android, différences dans le développement

Logos des systèmes d'exploitation iOS et Android

Après cette introduction, il est temps de parler technique !

Les systèmes d’exploitation iOS et Android présentent, techniquement parlant, beaucoup de différences. Il faut évidemment les prendre en compte lors du choix technique ; faisons-en le tour !

Le fonctionnement architectural

D’un point de vue purement technique, architectural, le fonctionnement des deux systèmes diffère beaucoup.

Android gère les applications (et donc leur développement) par partition, sous forme d’activités. Chaque activité est fragmentée en éléments qu’il faudra gérer.

Côté iOS, cela fonctionne sous forme de contrôleurs de vue. Un contrôleur de vue peut contrôler un écran entier comme un de ses éléments.

La fragmentation de l’architecture utilisée pour Android donne un léger avantage à iOS quand à la facilité de développement.

Le langage de développement

Le développement iOS et Android se distingue aussi par le langage de développement utilisé.

Développer une app iOS peut se faire via deux langages différents : Objective-C et Swift. Historiquement, c’est Objective-C qui était utilisé, jusqu’à l’apparition de son successeur, Swift, en 2014. L’avantage de ce dernier est qu’il est beaucoup plus développeur-friendly que son parent. L’objective-C est en effet loin d’être le langage le plus facile à apprendre.

Il est important de noter que Swift est complètement spécifique à iOS, ce langage n’aura pas d’autre cas d’utilisation que le développement mobile Apple.

Du côte d’Android, on retrouve là aussi deux langages : Java et Kotlin. Comme Objective-C pour iOS, Java était historiquement le langage le plus utilisé pour le développement d’app Android. L’avantage de ce dernier est qu’il n’est pas propre à la création d’apps : il est aussi très utilisé pour faire du développement côté serveur.

Kotlin est un langage plus récent, officiellement recommandé par Google pour le développement d’apps Android en 2019. Bien qu’il soit plus spécifique, il est plus facile à utiliser que Java pour ce type de programmation.

Quel que soit votre choix, les techniques de développement mobile (patterns, etc.) ne sont pas forcément applicables ailleurs. Il y aura donc de nouvelles compétences à acquérir.

L’IDE

À la différence d’autres types de développement (comme le développement web, par exemple), Apple et Google imposent des environnements très spécifiques aux développeurs.

Pour Android, en plus d’avoir besoin d’installer un JDK (Java Development Kit) et de définir des variables d’environnements, on devra utiliser l’IDE Android Studio pour créer des applications. Bien que pratique à utiliser, il est souvent critiqué pour sa consommation excessive de mémoire vive.

Côté Apple, c’est l’environnement Xcode qu’il faudra adopter. Ce logiciel gère toute la chaîne de développement d’app iOS : de la configuration jusqu’à l’envoi d’archive sur l’App Store Connect (l’interface web qu’utilisent les développeurs pour mettre les apps sur l’App Store). Xcode consomme moins de mémoire qu’Android Studio, mais peut vite devenir une usine à gaz.

Ici, pas de grande distinction entre les deux : chaque IDE aura ses avantages et inconvénients.

Le fractionnement des appareils

On ne peut pas comparer le développement d’apps iOS et Android sans parler du fractionnement des appareils. Car la difficulté du développement réside aussi dans celle de faire fonctionner l’app correctement sur tous les périphériques.

L’iPhone n’a qu’un seul constructeur – Apple – et ne compte que quelques nouveaux appareils chaque année. Le nombre de tailles d’écran différents à tester reste faible, et les tests en sont facilités.

De l’autre côté, Android pouvant être utilisé librement, beaucoup de constructeurs en ont fait leur système d’exploitation. Citons évidemment Samsung, mais aussi Huawei (même si ce dernier a maintenant son propre OS, HarmonyOS), Motorola, Xiaomi, etc. Chaque constructeur ayant (ou ayant eu) plusieurs dizaines de modèles, cela fait aujourd’hui des milliers de devices différents qui sont dans la nature. Il faudra s’assurer que l’app développée fonctionne bien, au moins sur les smartphones les plus utilisés.

Apple marque ici un point.

Le fractionnement des versions d’OS

En plus des différentes tailles d’écran de ces smartphones dont il faudra s’assurer de la compatibilité, il faut prendre en compte le fractionnement des versions des systèmes d’exploitation. Car une fonctionnalité développée pour une versions N d’un système ne fonctionnera peut-être pas sur la version N-1.

Là encore, du fait de son monopole, Apple décide des devices compatibles avec telle ou telle version d’iOS. Et le support des dernières versions d’iOS chez Apple est très bon. On peut donc considérer que l’immense majorité des utilisateurs d’iOS sont sur la dernière version de ce système. Par exemple, en juin 2022, il est estimé que 90% des utilisateurs sont sous la dernière version d’iOS, iOS 15.

Côté Android, tous les constructeurs n’offrent pas le même suivi des mises à jour, et la disparité des versions de l’OS est grande. En Mai 2022, on retrouve 28,3% des utilisateurs sous Android 11, 23,9% sous Android 10, et 16,2% sous Android 9. Le reste – soit toujours plus de 30% – sur des versions encore plus anciennes d’Android.

Là aussi, s’assurer de la rétro-compatibilité des fonctionnalités est plus simple chez Apple.

iOS ou Android : quel OS choisir ?

développeur d'application mobile en train de coder

Maintenant que nous avons fait le tour des différences existantes entre les deux OS, il est temps de répondre à la question : iOS ? Android ? Les deux ?

Il est difficile de répondre objectivement à cette question.

L’idéal serait évidemment d’avoir une app disponible sur l’App Store et sur le Play Store, mais ce n’est pas toujours nécessaire. Cela dépend des besoins.

Par exemple, si votre cible est plutôt située en Amérique du Sud, Afrique ou Asie, viser Android en priorité est une bonne idée.

Le développement iOS est quant à lui à privilégier lorsque l’on vise la rentabilité (les utilisateurs Android déboursant beaucoup moins) ou si on a un budget limité. En effet, une app iOS sera plus simple à développer, ce qui veut dire moins de temps de développement et donc moins de coûts.

La solution alternative : le développement hybride

S’il s’avère être impératif pour vous d’avoir une app sur chaque store mais que votre budget ne le permet pas, il existe une autre alternative : l’app hybride (ou cross-platform).

Pour faire simple, une app hybride peut être déployée sur les différents systèmes d’exploitation (Android et iOS), et créée à partir d’un seul code. Théoriquement, un développeur seul serait donc capable de déployer sur les deux plateformes.

L’utilisation des app cross-platform peut être intéressante. Elles permettent de gagner un temps de développement considérable tout en ayant un même code, dans un langage souvent moins spécifique que Swift ou Kotlin.

Les apps hybrides possèdent néanmoins quelques inconvénients :

  • elles sont moins performantes que les apps natives (pas adaptées pour les jeux, par exemple, mais largement suffisantes pour des apps plus classiques) ;
  • les technos utilisées sont souvent communautaires (l’ajout de nouvelles fonctionnalités peut prendre du temps à être mis en place et le support n’est pas toujours assuré)
  • pour la même raison, elles peuvent plus facilement comporter des failles de sécurité.

Parmi les technos permettant de faire des apps hybrides, citons Flutter, Xamarin, Cordova ou Capacitor.

Conclusion

Comme nous l’avons vu, les développements d’apps iOS et Android sont très différents. Chaque plateforme ayant ses avantages et ses inconvénients, le choix de l’OS sur lequel développer une app est plutôt subjectif.

Et vous, quel serait votre choix ? Android ? iOS ? Les deux ? Dites-nous tout en commentaire !

Ces articles peuvent vous intéresser

Ne perdez plus de temps à prospecter en vain. Inscrivez-vous gratuitement sur FreelanceRepublik, et recevez de belles offres de missions tech. FreelanceRepublik est gratuit pour les freelances.