Maintenant que vous savez ce qu'est iOS et que vous avez une bonne idée de cet univers, je vous propose que l'on définisse ensemble le métier de développeur iOS. Parce qu'être développeur, ça peut vouloir tout dire. Et être développeur iOS peut aussi représenter différentes compétences.
Alors faisons un peu le tri pour savoir de quoi on parle !
Développeur front-end ou back-end ?
En tant que développeur, il y a deux grands types de métiers différents : les développeurs front-end et les développeurs back-end.
Définition
Être développeur front-end, c'est programmer l’interface utilisateur d’une application ou d’un site web. Par exemple, quand vous naviguez sur l’interface de Spotify, tout ce que vous voyez – la barre de navigation, les différents boutons, la couleur, la mise en page – est pris en charge par le développeur front-end. En effet, c’est lui qui va optimiser l’expérience utilisateur.
Mais pour donner vie à cette application et permettre le bon fonctionnement de celle-ci, nous avons besoin du développeur back-end.
En effet, être développeur back-end, c’est programmer du côté des serveurs qui ont pour rôle de collecter et de renvoyer des données à une machine comme votre iPhone. Quand vous cliquez sur votre playlist favorite sur Spotify depuis votre smartphone, cette simple action va soumettre une requête au serveur qui lui renvoie une réponse à votre smartphone : ici, d’afficher la liste des chansons. Donc tout ce que vous ne voyez pas mais constitue le cœur d’une application ou d’un site web fonctionnel est pris en charge par le développeur back-end.
Et iOS ?
Or, on a vu qu'être développeur iOS, c'est programmer sur…?
Un iPhone, un iPod Touch ou un iPad !
Bravo ! Je vois que vous avez été bien formé ! Or l'iPhone, l'iPod Touch et l'iPad sont des machines capables de recevoir des données pour les afficher à un utilisateur final, non ? Donc ce sont des clients !
Donc être développeur iOS, c'est être un développeur front-end !
Développeur mobile ou web ?
Dans le monde du développement front-end, il y a à nouveau une distinction à faire entre :
les développeurs web qui créent des sites web ;
les développeurs mobiles qui créent des applications pour smartphone et tablette.
Évidemment, être développeur iOS, c'est être développeur mobile.
Développeur en natif et/ou en hybride ?
En fait, pour développer des applications iPhone, il y a 2 stratégies : le natif et l'hybride. Et nous ne verrons que la première.
Le problème
Pourquoi existe-t-il deux stratégies ?
Pour résoudre le problème suivant : les technologies mobiles ne sont pas compatibles entre elles.
Autrement dit, si je veux développer une application sur iPhone et Android en même temps, je ne peux pas. On dit que chaque technologie est native, car spécifique à sa plateforme. Il faudra alors réécrire tout le projet deux fois pour avoir une application fonctionnelle sur chaque plateforme, chacune étant écrite avec un langage différent.
La solution hybride
La solution à ce problème, ce sont les technologies hybrides. Je vais écrire un seul code qui va s'adapter pour toutes les plateformes. Comment ?
Soit en développant un site web que l'on encapsule dans une application.
Soit en utilisant des outils qui permettent de développer dans un unique langage qui est ensuite traduit dans le langage de chaque plateforme.
Les défauts de l'hybride
C'est super ! Pourquoi ne fait-on pas ça tout le temps ?
Pour plusieurs raisons :
La qualité : les utilisateurs de chaque plateforme s'attendent à une expérience spécifique et utiliser des composants natifs assure le respect des normes attendu dans votre application.
Les fonctionnalités spécifiques : il existe un grand nombre de fonctionnalités spécifiques à chaque plateforme et qui sont parfois le cœur du produit – comme le rendu d'un jeu ou la réalité augmentée. On a accès à certaines de ces fonctionnalités que lorsque l’on fait du natif.
La stabilité : en général, il est plus facile de maintenir deux ou trois applications différentes qu'un mouton hybride à 5 pattes qui peut finir par être ingérable.
La performance : le natif a l'accès le plus direct aux ressources matérielles du téléphone. Donc le résultat est plus rapide et moins gourmand en énergie.
Voici un petit tableau qui résume tout ça :
| Natif | Hybride |
Définition | Technologie spécifique à la plateforme | Un site web encapsulé dans une application ou un langage traduit pour chaque plateforme |
Avantages |
| Programmer une fois pour toutes les plateformes |
Dans ce cours, vous allez apprendre à faire du natif !
En résumé
Vous allez donc devenir des :
développeurs front-end,
mobile,
spécialisés en iOS,
et plus précisément en natif.
Dans le prochain chapitre, vous allez plonger dans le quotidien du développeur et découvrir les outils nécessaires à la réalisation d’une application mobile iOS.