C'est quoi le développement mobile et le métier d'un développeur Mobile ? - Letecode
Suivez nous
@johnmbiya - 11 juin 2021 411 dans Les Trucs et Astuces

C'est quoi le développement mobile et le métier d'un développeur Mobile ?

Vous aimez la programmation et tenez à créer votre propre application mobile, cet article te donne les informations nécessaires à savoir pour mieux se lancer dans cet océan.

C'est quoi le développement mobile et le métier d'un développeur Mobile ?

Le marché du mobile connaît une extension folle ces dernières années. Depuis 2015, les utilisateurs surfent plus sur un smartphone ou une tablette que sur leur ordinateur. Nous n’utilisons plus notre smartphone uniquement pour téléphoner, et ça, les développeurs mobiles l’ont bien compris.

Vous savez ces petites pastilles qu’on retrouve chez tout le monde, qui permettent de jouer, consulter ses mails, naviguer sur les réseaux sociaux, etc. Environ 170 milliards d’applications mobiles ont été téléchargées dans le monde entier. Alors, pourquoi pas la vôtre ? Vous êtes ici pour cela après tout, non ? 

Il existe une multitude de solutions pour développer une application mobile. Dans ce tutoriel, je vais vous parler du développement mobile et du métier d’un développeur mobile.

C’est quoi une application mobile ?

Une application mobile est un logiciel applicatif développé pour un appareil électronique mobile, tel qu’un assistant personnel, un téléphone portable, un smartphone, un baladeur numérique, une tablette tactile, ou encore certains ordinateurs fonctionnant avec le système d’exploitation Windows Phone ou Chrome OS.

Elles sont pour la plupart distribuées depuis des plateformes de téléchargement parfois elles-mêmes contrôlées par les fabricants de smartphones telles que l’App Store (plateforme d’ Apple), le Google Play (plateforme de Google/Android), ou encore le Microsoft Store (plateforme de Microsoft pour Windows 10 Mobile). Les applications distribuées à partir des magasins d’applications sont soit payantes, soit gratuites, mais généralement avec des publicités.

Sur certaines plateformes, les applications peuvent aussi être installées à partir de sources tierces, via un site non affilié au distributeur d’origine. Sur Android, cela est possible en activant le mode développeur. Sur iOS, cette manipulation est possible soit en étant développeur Apple, soit en possédant un appareil jailbreaké.

Les applications mobiles sont apparues dans les années 1990, elles sont liées aux développements d’ Internet et des télécommunications, des réseaux sans fils et des technologies agents, et à l’apparition et la démocratisation des terminaux mobiles : smartphones, tablettes tactiles… Le nombre d’applications mobiles disponible augmente rapidement à partir de 2007 date du lancement de l’iPhone. Les deux principaux services de plateformes de téléchargement, l’App Store, le Google Play sont lancés en 2008.

Développement d'une application mobile

Chacun des OS mobile, dispose d’un langage de programmation à lui propre, permettant le développement de ses applications. Les applications pour les terminaux Apple sont développées dans un langage principalement dédié à ces applications mobiles, le Swift. Celles pour Windows Mobile , sont développées en C#, langage aussi utilisé pour les programmes exécutables de Microsoft Windows (.exe). Le système Android utilise, quant à lui, un langage universel, le Java, langage pouvant être utilisé pour les ordinateurs, le développement Web (JEE).

Applications natives vs applications cross-platforms

Il existe deux types d’applications mobiles : les applications natives et les applications cross-platforms. Découvrons ensemble chaque type et comment les développés.

Applications natives

Les applications natives sont des applications spécifiquement développées avec le langage de programmation natif propre au système d’exploitation. Les systèmes d’exploitation les plus connus pour le mobile sont iOS et Android. Si vous souhaitez développer une application native et compatible avec iOS et Android, il faudra développer deux applications complètement différentes : une première pour iOS, en langage Swift ou Objective-C, et une seconde pour Android, en langage Kotlin ou Java.

Vous souhaitez donc réaliser une application mobile compatible iOS et Android. Si vous optez pour la solution du natif, il vous faudra développer deux applications, avec deux langages de programmation différents.

Déjà premier obstacle : l’apprentissage ! Non seulement, on n’utilise pas les mêmes langages entre iOS et Android, mais en plus, on ne construit pas une application de la même manière. Je ne rentre pas dans les détails, mais sachez que l’apprentissage des langages iOS et Android reste long et difficile. On retrouve très peu de développeurs possédant la double expertise iOS/Android.

Ensuite, il faut s’armer de patience et ne pas se décourager. Une fois qu’on a réalisé l’application iOS, par exemple, il faut recommencer, mais sur Android cette fois.

Posez-vous la question : Que se passerait-il si on appliquait le fonctionnement des applications mobiles natives, à savoir un langage de programmation par plateforme, au développement d’application web ? Cela reviendrait à créer une application pour chaque navigateur (Chrome, Firefox, Edge, Opera, etc.), et à chaque fois dans un langage de programmation différent. Les développeurs web auraient la vie dure.

Et encore, je n’ai pas abordé le sujet des applications mobiles Windows Phone, projet abandonné par Microsoft récemment. Si on voulait développer une application mobile native pour cette plateforme, il faudrait créer une troisième application, et cette fois en C#. On ne s’en sortait plus…

C’est dans ce contexte, où l’apprentissage restait difficile et les temps de développement longs, que les applications cross-platforms ont vu le jour.

Applications cross-platforms

Les applications cross-platforms ou encore applications hybrides, à l’inverse des applications natives, sont développées une seule et unique fois et sont compatibles sur iOS et Android. Le développement d’applications cross-platforms passe par des frameworks. Parmi les plus connus, on retrouve Flutter, React Native, Ionic, PhoneGap, Xamarin et Titanium.

cross plateforme frameworks

Ionic, React Native, Flutter, Xamarin

On ne développe pas une application cross-platform avec les langages natifs, on utilise souvent des langages plus simples. Par exemple, Ionic/PhoneGap/Titanium fonctionnent avec du Javascript. Xamarin (produit de Microsoft) fonctionne avec du C#, langage pas vraiment réputé simple.

Vous l’aurez compris, plus besoin d’apprendre un langage de programmation par plateforme. On développe notre application une fois, dans un langage, et le framework se charge de vous créer une application compatible iOS et Android. On passe de deux applications créées(une iOS, une Android)à une ; le gain de temps est énorme.

 

A lire aussi : C'est quoi le développement web ? et c'est qui un développeur web ?

 

Inconvénients des applications cross-platforms

Normalement, avec tout ce dont je viens de détailler, vous devez vous dire :

Mais pourquoi développe-t-on encore des applications natives ? Les applications cross-platforms n’ont que des avantages !

En réalité, non. Les applications cross-platforms sont réputées moins performantes et moins fluides que les applications natives. Souvent, les développeurs sont déçus; cela a été mon cas pendant des années. Sur le papier, on vous promet une application compatible pour les deux plateformes iOS et Android. En réalité, il y a souvent des ajustements à faire pour chaque plateforme, ce qui rend votre projet de moins en moins clair et surtout de moins en moins unique (argument n° 1 des applications cross-platforms).

On reproche également aux applications cross-platforms d’avoir un rendu visuel plus proche du web que du mobile.

Aujourd’hui, toutes ces affirmations sont de moins en moins vraies. Les applications cross-platforms ont fait d’énormes progrès ces dernières années, si bien qu’il soit très difficile de différencier une application native d’une application cross-platform sur les stores.

Je vous site ici deux frameworks les plus connus actuellement : 

React Native

Le React Natif est un framework open source qui transfère les concepts de développement web dans le développement mobile. Bien que le langage en développement pour ces applications soit le JavaScript; le résultat est une véritable application native, mais uniquement pour les plateformes iOS et Android, pas pour les navigateurs Web.

Flutter

Flutter est un framework de développement mobile multi-plateformes réactif utilisant le langage Dart. Dart et Flutter ont été créés par Google qui utilise le framework pour certaines de ses applications les plus importantes et le pousse constamment à devenir la solution ultime pour la création d’applications multi-plateformes. Sa version alpha initiale était de retour en mai 2017, elle est donc beaucoup plus jeune que React Native.

Gain de temps

L’un des avantages les plus significatifs et les plus évidents de l’utilisation du framework cross-plateforms par rapport à l’option native est qu’on gagne beaucoup de temps. Il n’est pas nécessaire de développer deux applications différentes et, au lieu d’utiliser des codes différents, on peut utiliser le même code source pour les plates-formes iOS et Android.

  • Gain de temps dans la conception
  • Gain de temps dans la mise en place des évolutions

Applications Web ou ProgressiveWebApp

Une progressive web app (PWA, applications web progressive en français) est une  application web  qui consiste en des  pages  ou des  sites web, et qui peuvent apparaître à l’utilisateur de la même manière que les applications natives ou les  applications mobiles . Ce type d’applications tente de combiner les fonctionnalités offertes par la plupart des navigateurs  modernes avec les avantages de l’expérience offerte par les appareils mobiles.

Une PWA se consulte comme un site web classique, depuis une URL sécurisée mais permet une expérience utilisateur similaire à celle d’une application mobile, sans les contraintes de cette dernière (soumission aux App-Stores, utilisation importante de la mémoire de l’appareil…).

 

C’est qui un développeur Mobile ?

Un développeur Mobile est une personne qui prend un projet d’une application mobile, qui a été pensée et réfléchie par un client ou une équipe de conception, et en fonction de ses compétences en développement mobile (natives ou hybrides) , transforme la conception en une application mobile. 

Comme je l’ai mentionné tout haut, il est difficile de trouver un développeur (Native) à la fois dans iOS et Android. Mais les développeurs cross-plateformes n’ont pas du mal à ça.

Dans le développement d’une application mobile, comme dans le développement web, nous avons aussi un Back-End et un FrontEnd. Un grand nombre d’applications fait recours à la consommation des REST API, permettant de faire le pont entre les deux stacks en accédant à des fournisseurs services tièrses.  

Mais toutefois, il est possible d’utiliser les technologies mobiles pour consoler une base de données dans les applications mobile. Ceci fera l’objet d’un prochain article.

Et être un Développeur Mobile full stack, c’est justement la maitrise d’une technologie native ou hybride en faisant des applications qui consomment les API REST ou les bases de données locales du mobile.

Alors vous avez les informations qu'il vous fallait pour commencer votre première application mobile. Si cet article t'a aidé, partage avec les autres. À la prochaine pour un autre article.

 

A lire aussi : C'est quoi le développement web ? et c'est qui un développeur web ?

@johnmbiya
Jean Claude Mbiya (johnmbiya)

je suis developper fullstack, Dévelopeur android (AAD), créateur de letecode.com, bloggeur, formateur, fondateur de Guide Light System, j'aime la science informatique 😎👨‍💻

P : 386 7 7 24
Abonnez vous !

Recevez les dernières nouvelles de letecode directement dans votre boîte de réception. Réjoignez +500 Abonnés, Nous n'envoyons pas des spam !

Voir plus