• Accueil
  • Développer une application mobile sous iOS

Développer une application mobile sous iOS

Tout comme Apple veut faciliter l’usage des technologies auprès de ses clients, il cherche aussi à simplifier la programmation d’application mobile sur iOS. D’où la mise à disposition en 2014 du langage Swift, déjà utilisé au sein de l’entreprise depuis plusieurs années. L’objectif est clair : proposer une solution accessible et parfaitement adaptée à iOS, qui s’imposera sur les autres et uniformisera la façon de programmer pour les appareils Apple.

Mais qu’est ce que ce langage a changé pour les programmeurs ? Quel avenir peut-on lui prédire ? Comment le développement sur iPhone a-t-il évolué au fil du temps et des nouveaux modèles de smartphones ? Autant de questions qui exigent de s’intéresser à l’histoire des langages de développement et à celle des mobiles et tablettes de la marque.

Les évolutions du développement d'application sur iPhone et iPad

Objective-C : du monopole au déclin progressif

Lors de l’arrivée du premier iPhone en 2007, on a assisté à une révolution dans le monde du mobile et les applications sont vite devenues incontournables. A l’époque, c’est le langage Objective-C, hérité de la programmation C, qui était le seul utilisé. Nul besoin alors pour les programmeurs de s’interroger sur le langage à choisir et à apprendre pour coder une application diffusée sur le store d’Apple.

Comme son nom l’indique, c’est un système de programmation orienté objet, en opposition à la programmation dite procédurale.  Ce langage offre de grandes opportunités une fois qu’il est maîtrisé, et c’est pour cette raison qu’il a connu et connaît toujours un tel succès auprès des professionnels du développement.

Sans entrer dans les détails du codage, on peut en appréhender les principaux avantages :

  • Créé dans les années 70, il a subi de nombreuses améliorations et est aujourd’hui très abouti, avec un accès à une quantité impressionnante de librairies disponibles. Son ancienneté lui accorde un recul intéressant et les conseils pour bien l’utiliser sont pertinents.
  • Puisqu’il est basé sur un langage déjà existant, il permet un apprentissage rapide pour ceux qui maîtrisent déjà le langage C et d’adapter les programmes préalablement créés en C, sans rien perdre.
  • Même pour les novices, l’Objective-C est jugé relativement accessible avec une syntaxe simple, claire et rapide à assimiler. Toutefois, cette syntaxe est très particulière et différente des langages utilisés pour Android par exemple. Les spécialistes de ce langage peuvent donc mettre à profit à plus fortes valeurs leurs compétences, mais doivent composer avec des structures de code plutôt complexes.
  • Les API Cocoa (pour Mac) et Cocoa Touch (pour iPhone et iPad) incluent l’Objective-C et il paraît cohérent d’utiliser le même langage pour l’ensemble du projet de développement de l’application.
  • La programmation s’effectue par un typage dynamique, offrant simplicité et flexibilité aux développeurs.

Les spécialistes de l’Objective-C pourraient aisément compléter cette liste de points forts. Mais ce langage qui fut largement utilisé à sa sortie doit maintenant faire face à Swift et les débats sont vifs pour savoir lequel des deux est le plus performant et sur lequel il faut se concentrer lorsque l’on souhaite apprendre le développement.

Swift : le langage par et pour Apple

Pour pallier aux manques du langage alors monopolistique, la marque à la pomme a décidé en 2014 de proposer un nouveau langage pour la conception d’applications. Swift a pour ambitions de rendre le développement plus facile, plus rapide et d’éviter les erreurs de programmation.

Mais qu’apporte-t-il de plus aux développeurs ? On pourrait douter de son efficacité et penser qu’il ne s’agit que d’une nouvelle opération de la marque pour montrer sa domination sur le marché des technologies. En effet, même les applications conçues par la marque utilisent encore majoritairement le prédécesseur de Swift. En 2016, sur l’iPhone, seule l’application calculatrice était codée en Swift, de quoi être dubitatif.

Il faut tout de même lui reconnaître des qualités, qui ont simplifié la programmation et offert de nouvelles opportunités :

  • Le langage Swift se démarque d’abord par la simplicité de sa syntaxe et sa lisibilité. Plus compact et intuitif que son confrère, il implique une programmation plus rapide et moins propice aux erreurs, qui aura un impact positif sur la durée totale du projet et son coût.
  • Les mises à jour des applications sont également plus faciles à réaliser grâce aux librairies dynamiques, ce qui représente un atout certain au vu de la rapidité des évolutions et permet de répondre sans délai aux nouvelles attentes des utilisateurs, décelées à l’aide des solutions d’App Analytics.
  • L’environnement de développement d’Apple avec Swift autorise un codage dynamique. Autrement dit, il est possible d’observer directement les conséquences de modifications de la programmation sur l’interface de l’application mobile. Un bon moyen pour gagner du temps et faire des expérimentations.
  • Swift est Open-Source, ce qui lui permettra d’évoluer en fonction des retours des utilisateurs et permet à ces derniers de garder un relatif contrôle.

Ces atouts non négligeables séduisent au-delà des frontières de la marque à la pomme : Google envisage d’utiliser Swift pour la programmation des applications mobiles sur Android. Cela faciliterait grandement le travail des programmeurs, qui n’aurait plus à développer à la fois pour iOS et pour Android via des langages bien différents ! Mais cette décision semble surtout motivée par les conflits existants entre le géant américain et la société Oracle et rien n’est encore fait. De plus, même en admettant que les applications d’Android adoptent le langage Swift, cela prendra probablement plusieurs années.

Les conséquences de l’évolution de l’iPhone et des autres appareils mobiles sur le développement d’application

La programmation en tant que telle évolue, mais ce n’est pas l’unique élément qui influe sur la réalisation d’une application mobile. Les supports ont aussi leurs propres caractéristiques, qui ont complexifié la conception des applications mobiles, ont multiplié les possibilités et ont fait place à une créativité grandissante.

Lors des premiers pas des logiciels applicatifs, développer sous iOS se limitait à concevoir pour un unique modèle d’iPhone. Avec le temps, les programmeurs ont dû composer avec des supports variés et des versions évoluant sans cesse, ce qui a des implications sur la manière de concevoir. Il faut faire preuve d’adaptabilité, prendre en considération les attentes qui ne sont pas les mêmes selon que l’on utilise un iPhone, un iPad ou un objet connecté.

Du premier iPhone à aujourd’hui, les améliorations ont été nombreuses : arrivée de la 3G, possibilité de réaliser des vidéos, améliorations de la résolution et apparition des écrans Rétina, présence de l’assistant vocal Siri, technologie de reconnaissance digitale, multiplication des tailles d’écran, écouteurs sans-fil, navigation plus fluide et tant d’autres changements encore. Cela donne aux concepteurs l’opportunité de créer des applications plus abouties et expérientielles, mais requiert par la même occasion une plus grande expertise. La fréquence des évolutions signifie par ailleurs des mises à jour constantes : le métier de développeur ne se cantonne plus aujourd’hui à la mise en place d’un code auquel on ne touche que pour réparer les bugs et effectuer des modifications subtiles. Et il ne s’agit pas simplement d’apporter des fonctionnalités supplémentaires à une application au fur et à mesure des nouvelles technologies. Car même si les Apple-Addicts ont tendance à remplacer leur iPhone actuel par le dernier en date, toutes les versions se trouvent encore sur le marché, de l’iPhone 3 à l’iPhone X. Une application mobile doit donc être fonctionnelle sur chacun d’entre eux et ne peut être conçue exactement de la même manière sur tous les appareils !

D’autre part, on a assisté à la prolifération d’autres types d’appareils (iPad et montre connectée) et qui ne sont pas destinés au même usage que le smartphone.

Pour la conception d’une application sur iPad, il est important de prendre en compte des critères par exemple la taille de l’écran, l’usage pour des tâches comme le dessin, la modification de documents, le visionnage de vidéos, etc., le fait qu’elle puisse passer de mains en mains (bien plus qu’un smartphone) ou encore l’orientation majoritairement en mode paysage.

Pour la montre connectée, les spécificités sont entre autres la taille de l’interface très réduite, l’usage quotidien dans le but de se faciliter la vie et d’avoir à disposition des applications utiles plutôt que divertissantes, l’importance de l’utilisation lors des activités sportives, etc. Penser une application pour l’Apple Watch ne se fait donc pas de la même façon que pour les autres appareils, d’autant que le système d’exploitation n’est pas le même que pour l’iPhone et l’iPad.

Conclusion : où en est-on aujourd’hui dans le développement des applications sous iOS ?

Le choix entre deux langages et l’existence d’appareils et de systèmes d’exploitation multiples ont sensiblement modifié le métier des développeurs, qui sont devenus plus libres dans leur manière de développer une application iOS. Alors que certains opteront pour Objective-C, puisqu’il s’agit d’un langage plus mature et adapté aux versions les plus anciennes de l’OS, et qu’ils ne souhaitent pas se lancer dans l’apprentissage de Swift, d’autres choisiront ce dernier pour sa clarté et sa simplicité.

Aujourd’hui, le nombre d’applications utilisant l’un ou l’autre des langages est quasiment le même, bien qu’Objective-C soit encore dominant. Qu’en sera-t-il à l’avenir ? Difficile à dire, bien que l’on puisse penser que si Google adopte lui aussi Swift, Objective-C risque de perdre bien des adeptes. Cela pourra également réduire les différences entre les logiciels sous Android et sur l’App Store, qui se démarqueront par leur propre User eXperience mais tendront à se ressembler de plus en plus.

Enfin, on peut imaginer que Swift, au fil des années, évoluera de manière positive et proposera une programmation convenant parfaitement aux applications pour iPhone et iPad.

Nous sommes prêts à créer votre application de rêve !

Product thinking • Design • Développement • Acquisition • Evolution de produits