Applications mobiles natives ou hybrides? Quelle différence?

Bonjour à tous, c’est José de NetDevices. Je vous ai auparavant parlé de l’intégration continue et des outils de versioning. J’ai choisi de changer de contexte pour aujourd’hui et de me concentrer sur les différents types d’applications. Chez Netdevices, nous disposons d’une expertise digitale nous permettant de développer régulièrement des applications mobiles natives et hybrides. Voyons la différence ensemble.

Application Native? Qu’est ce que c’est?

applications-mobiles-natives-ou-hybrides

Une application mobile native est en général développée spécifiquement pour un OS mobile (iOS ou Android par exemple) dans un langage définis par l’éditeur de l’OS et avec des outils de développement spécifiques ( SDKs, IDEs, …). Ces outils sont eux aussi fournis par l’éditeur de l’OS.

Si l’on souhaite qu’une application soit disponible sur plusieurs OS donc cross platform (mais aussi cross device), il faut la développer autant de fois qu’il y a d’OS ciblés. Ceci signifie que le code sera différent en fonction de chaque OS, plateforme et device.

SDK : Software Development Kit

SDK (Software Development Kit) fait référence à un logiciel regroupant un ensemble de fonctions mises à disposition des développeurs leur donnant accès aux ressources de l’OS et de son device.

Ce logiciel va ainsi faciliter le processus d’implémentation.

IDE (Integrated Development Environment)

Les IDEs (Integrated Development Environments ou Environnements de Développement Intégrés) correspondent à des environnements de programmation.

Ils sont composés :

  • d’un éditeur de code,
  • compilateur,
  • débogueur,
  • générateur d’interface graphique ou simulateur.

Chaque OS a un IDE différent. Pour Apple par exemple les développeurs utilisent Xcode. Xcode est une application qui permet d’écrire le code, de compiler l’application et de tester toutes les tâches usuelles de développement. Pour Android les développeurs utilisent Android Studio.

A quoi correspondent les applications mobiles hybrides?

Contrairement aux applications natives, le code de l’application hybride peut être le même pour différents OS, seule la “capsule” native changera.

Cordova & React Native, deux exemples de technos pour les applications Hybrides

Cordova  utilise les outils de développement web. Le développeur écrit un unique code pour une application web ou un site web qui va ensuite « s’encapsuler » automatiquement dans une application native. Les outils de développement web cités auparavant restent ici indépendants de l’OS. On procède simplement avec un navigateur web.

Pour React-native le principe est le même, sauf que les outils sont plus intégrés avec l’OS. Ils utilisent un moteur Javascript (celui de Chrome en l’occurrence). Avec ce moteur, on écrit du code Javascript (indépendant de l’OS) qui va manipuler des objets natifs (vue, écran, capteur, appareil photo). On va donc pouvoir utiliser du React-native sur toutes les plateformes pour lesquelles ils ont adapté le moteur Javascript.

Petit Bonus: Qu’en est-il des Applications Web?

applications-natives-et-hybrides

Une application web ou (webapp) fait référence à un site web adapté pour les smartphones, accessible et exécutable via un navigateur internet.

Contrairement aux applications natives, elle a la particularité d’être accessible sur tout type de smartphones quelque soit leur système d’exploitation. Elle ne nécessite de plus aucun téléchargement

Chez NetDevices nous utilisons particulièrement du Javascript.

Des applications mobiles Natives & Hybrides Made in Netdevices

Au fil du temps, nous avons eu l’occasion de développer de multiples applications mobiles hybrides pour plusieurs clients dans des secteurs différents.

A titre d’exemples:

  • Sysmedic Bed Management
  • Terre de Lyn
  • Expway
  • Parki

Du côté des applications natives, nous avons développé des applications telles que:

  • SGCIB
  • 3D sound lab
  • videodesk

Pour plus d’informations, n’hésitez pas à regarder nos projets.

[wpforms id="9980" title="false"]
<div class="wpforms-container wpforms-container-full" id="wpforms-9980"><form id="wpforms-form-9980" class="wpforms-validate wpforms-form wpforms-ajax-form" data-formid="9980" method="post" enctype="multipart/form-data" action="/applications-mobiles-natives-ou-hybrides-quelle-difference/" data-token="29dab55f0ec328adeaaf0331fbcda78e"><noscript class="wpforms-error-noscript">Veuillez activer JavaScript dans votre navigateur pour remplir ce formulaire.</noscript><div class="wpforms-field-container"><div id="wpforms-9980-field_3-container" class="wpforms-field wpforms-field-layout" data-field-id="3"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-9980-field_3">Layout</label><div class="wpforms-field-layout-columns wpforms-field-layout-preset-50-50"><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_0-container" class="wpforms-field wpforms-field-name" data-field-id="0"><label class="wpforms-field-label" for="wpforms-9980-field_0">Résumé / Pitch du projet <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-9980-field_0" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][0]" required></div><div id="wpforms-9980-field_16-container" class="wpforms-field wpforms-field-radio wpforms-conditional-trigger" data-field-id="16"><label class="wpforms-field-label" for="wpforms-9980-field_16">J&#039;ai une description détaillée du projet</label><ul id="wpforms-9980-field_16"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_16_1" name="wpforms[fields][16]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_16_2" name="wpforms[fields][16]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_2">Non</label></li></ul></div><div id="wpforms-9980-field_18-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="18" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_18">Vous avez des technos en tête ?</label><ul id="wpforms-9980-field_18"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_18_1" name="wpforms[fields][18][]" value="fullstackJS / python" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_1">fullstackJS / python</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_18_2" name="wpforms[fields][18][]" value="nocode bubble" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_2">nocode bubble</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_18_3" name="wpforms[fields][18][]" value="autre" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_3">autre</label></li></ul></div><div id="wpforms-9980-field_19-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="19" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_19">Type de projet</label><ul id="wpforms-9980-field_19"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_19_1" name="wpforms[fields][19][]" value="Applications web / mobiles" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_1">Applications web / mobiles</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_19_2" name="wpforms[fields][19][]" value="Projet data, IA " ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_2">Projet data, IA </label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_19_3" name="wpforms[fields][19][]" value="Site vitrine / e-commerce" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_3">Site vitrine / e-commerce</label></li></ul></div><div id="wpforms-9980-field_12-container" class="wpforms-field wpforms-field-textarea wpforms-conditional-field wpforms-conditional-show" data-field-id="12" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_12">Description détaillée de votre projet </label><textarea id="wpforms-9980-field_12" class="wpforms-field-medium" name="wpforms[fields][12]" ></textarea></div></div><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_1-container" class="wpforms-field wpforms-field-email wpforms-one-third" data-field-id="1"><label class="wpforms-field-label" for="wpforms-9980-field_1">Votre e-mail <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-9980-field_1" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][1]" required></div><div id="wpforms-9980-field_17-container" class="wpforms-field wpforms-field-radio" data-field-id="17"><label class="wpforms-field-label" for="wpforms-9980-field_17">Signer un accord de confidentialité ?</label><ul id="wpforms-9980-field_17"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_17_1" name="wpforms[fields][17]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_17_2" name="wpforms[fields][17]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_2">Non</label></li></ul></div></div></div></div><div id="wpforms-9980-field_22-container" class="wpforms-field wpforms-field-checkbox" data-field-id="22"><ul id="wpforms-9980-field_22"><li class="choice-1 depth-1 wpforms-selected"><input type="checkbox" id="wpforms-9980-field_22_1" name="wpforms[fields][22][]" value="Recevoir les newsletters personnalisées" checked='checked'><label class="wpforms-field-label-inline" for="wpforms-9980-field_22_1">Recevoir les newsletters personnalisées</label></li></ul></div></div><div class="wpforms-submit-container"><input type="hidden" name="wpforms[id]" value="9980"><input type="hidden" name="wpforms[author]" value="1"><input type="hidden" name="wpforms[post_id]" value="5459"><button type="submit" name="wpforms[submit]" id="wpforms-submit-9980" class="wpforms-submit" data-alt-text="Envoi..." data-submit-text="Envoyer" aria-live="assertive" value="wpforms-submit">Envoyer</button><img src="https://www.netdevices.fr/wp-content/plugins/wpforms/assets/images/submit-spin.svg" class="wpforms-submit-spinner" style="display: none;" width="26" height="26" alt="Chargement en cours"></div></form></div> <!-- .wpforms-container -->