Table des matières
Ouvrir table des matières
Développer une application mobile : native ou hybride ?
Que vous soyez un programmeur professionnel ou non, tôt ou tard vous développerez une application mobile. En France, la majeure partie des personnes possède un smartphone et ils font tout ce qu’il faisait en grande partie sur leur ordinateur sur leur smartphone.
Les géants du web l’ont compris et font en sorte que vous utilisiez leur application avec du contenu et des offres alléchantes. Et comme tout le monde souhaite être connecté, la plupart adhèrent très facilement aux applications.
Il existe des solutions alternatives pour développer des applications (comme App Inventor), mais comme vous êtes des programmeurs et que vous aimez les challenges on va se cantonner à 2 styles d’applications mobiles les plus répandus : native et hybride.
Application mobile native
C’est les applications mobiles les plus répandus sur le marché. Une application mobile native sera développée spécifiquement pour un système d’exploitation avec des outils spécialement prévus pour celle-ci. Un exemple avec les 2 plus répandu :
- Pour iOS, on utilisera le programme Xcode et on développera dans la langage de programmation Swift
- Pour Android, on utilisera Android Studio et on développera dans le langage de programmation Kotlin
L’avantage d’une application native c’est que c’est une valeur sûre dans le sens où l’ergonomie, les performances ainsi que sa qualité respecteront les standards imposés par l’appareil sur laquelle elle sera installée.
En plus de cela, l’interaction avec les composants du smartphone (GPS, caméra, haut-parleur, connectivité, etc.) sera facilitée.
En clair, vous êtes sûr de ne pas trop rencontrer de problème avec le développement d’une application exploitant toutes les ressources du téléphone. La limite sera uniquement due à la puissance du smartphone et à ses possibilités qu’il propose.
Un inconvénient majeur de développer du natif, c’est lorsque vous souhaitez proposer votre application sur plusieurs plateformes (iOS et Android). En effet, vous allez devoir faire 2 fois le développement de votre application : 1 développement/plateforme.
Vous l’aurez compris : dans ce cas précis, cela vous prendra 2 fois plus de temps et coûtera 2 fois plus d’argent. Et je ne parle pas du risque d’avoir des oublis/erreurs entre chacune des applications de chaque plateforme.
Application mobile hybride
Une application hybride est un mélange d’une application native et d’une application web. Pour schématiser, l’application web est encapsulée dans une sorte d’application native (WebView) qui va servir de middleware entre votre application web et le smartphone.
Grâce à ce middleware, vous êtes capable d’interagir avec les composants du smartphone (GPS, caméra, haut-parleur, connectivité, etc.). Apache Cordova est la technologie la plus connue pour les applications hybrides.
L’avantage majeur d’une application hybride c’est qu’elle est développée une seule fois pour être déployée sur les différentes plateformes disponibles. C’est un énorme gain de temps et donc d’argent dans ce genre de projet de développement. La maintenance et le suivi du code sont donc beaucoup plus simples à gérer.
À l’inverse, l’inconvénient c’est que vous aurez des performances moindres par rapport à une application native. En effet, votre application web va faire ses demandes au WebView, qui lui va les relayer aux composants du smartphone. La demande s’effectuant en 2 étapes au lieu d’une seule, vous aurez forcément une latence (mais très moindre de nos jours au vu de la puissance de nos smartphones).
L’autre inconvénient c’est l’ergonomie et le design pauvre de l’hybride. Car dans l’hybride vous avez une application web, ce qui veut dire que vous êtes libre de l’ergonomie et qu’il n’est pas obligé de respecter les standards de l’OS qui accueillera votre application. Néanmoins, vous vous doutez qu’il faut absolument respecter les standards au risque de vous mettre à dos vos utilisateurs. Un autre point important c’est l’interaction avec les différents composants du smartphone.
Même si vous pouvez théoriquement interagir avec l’ensemble du smartphone en hybride, cela n’en sera pas moins fastidieux et assez limité dans les possibilités.
Mon choix : Pourquoi j’ai choisi l’hybride ?
Pour savoir quoi choisir, il faut savoir évaluer son contexte de travail et surtout ce que vous attendez de ces technologies. il est clair que si vous souhaitez faire un jeu vidéo 3D en application mobile, l’hybride ne sera pas du tout adapté par rapport au natif. Renseignez-vous sur les possibilités de chacun et d’évaluer le genre d’application mobile que vous souhaitez produire.
Il en va de même des SDK d’intégrations en application mobile comme les systèmes de paiement mobile. C’est assez fastidieux à mettre en place, car tous les prestataires pouvant proposer ce genre de solution se cantonnent bien souvent au natif.
J’évolue dans une SSII à taille de PME qui a comme portefeuille client principalement des PME. La plupart de nos clients souhaitent des applications mobiles business (interne à l’entreprise) et des applications mobiles pour donner un service à leur client. Ce ne sont pas des applications mobiles compliquées où la majeure partie du temps ce sont des recherches et de l’affichage d’information sur l’application mobile depuis bien souvent une API Restful.
Nos clients souhaitent principalement avoir leurs applications sur Android et iOS. Autre point important : le temps est très précieux et développer 2 fois une application sous 2 plateformes est quelque chose d’inconcevable pour nous.
Sur base de ces critères et comme nous connaissons très bien les technologies web, nous nous sommes naturellement tournés vers le développement d’application mobile hybride. Nous avons passé le cap il y a presque 3 ans et nous ne le regrettons pas.
Quand on voit que sur le même principe qu’est l’hybride, il est possible de réaliser des applications de bureau et que certaines applications que vous utilisez peuvent être comme Visual Studio Code, Atom ou encore Slack sont des applications hybrides performantes. Je vais même jusqu’à dire que nous sommes très confiants pour l’avenir.
En effet, nous utilisons un framework du nom de Ionic, qui est basé sur Apache Cordova et qui utilise le framework JS Angular. La particularité de Ionic c’est qu’il simplifie le développement pour Apache Cordova, mais surtout il va pallier aux lacunes de l’hybride.
Grâce à ses balises HTML « ion », il n’est plus nécessaire de se poser la question sur l’ergonomie à appliquer sur les différents OS. L’ergonomie et le design va s’adapter suivant la plateforme applicative (iOS ou Android). C’est vraiment très pratique.
Conclusion
Vous l’aurez compris ces 2 choix technologiques se valent et le choix que vous allez faire dépendra de votre contexte.
Si vous souhaitez faire des applications mobiles que sur Android et que vous ne connaissez pas les langages de programmation web, alors orientez-vous directement vers le développement d’application mobile native.
Mais si au contraire, vous souhaitez faire des applications mobiles sur Android et iOS, que vous voulez faire des applications assez simples et qu’en plus de cela vous connaissez les technologies web, alors foncez sur l’hybride et je ne peux que vous conseillez Ionic Framework pour les réaliser.