
Chaque semaine, nous partageons les actualités tech qui ont retenues notre attention.
UX / UI, développement frontend & backend, gestion de projet, Agile, DevOps, IA, IoT ou encore AR/VR, font parti des sujets qui nous intéressent.
Chaque semaine, nous partageons les actualités tech qui ont retenues notre attention.
UX / UI, développement frontend & backend, gestion de projet, Agile, DevOps, IA, IoT ou encore AR/VR, font parti des sujets qui nous intéressent.
Chez Adfab nous avons travaillé sur plusieurs approches pour développer des applications avec React Native. Pour ma part j’ai utilisé sur différents projets le boilerplate Ignite maintenu par Inifite Red (https://infinite.red).
Je ne vais pas faire de rétrospective sur ce projet, mais plutôt expliquer comment j’ai pu facilement prendre en main ce nouvel outil grâce à l’étude de leur repo Github. Le seul prérequis pour lire cet article et de savoir comment fonctionne React. Nous verrons également comment utiliser Redux, sans que des connaissances approfondies soient nécessaires.
Les applications natives sont des applications mobiles qui sont codées dans un langage donné avec un code source pour chaque plateforme (Objective-C ou Swift pour iOS, Java pour Android) et qui sont téléchargeables via des stores (Google Play, Apple store).
Les applications hybrides ont été inventées aux alentours de 2012 pour répondre à des problématiques de coûts de développement importants dû aux différentes plateformes qui existent sur le marché, principalement iOS et Android mais également Windows.
En effet, chaque plateforme ayant son propre environnement et langage de développement, si vous souhaitez développer une application pour chacune d’entre-elles, vous devrez multiplier votre budget en conséquence.
Les applications hybrides sont des applications créées avec des technologies web (HTML, CSS et JavaScript) et qui sont exécutées dans une application native à travers une WebView (pour simplifier, c’est un navigateur web mais sans la barre d’adresse).
Vous pouvez donc publier votre application hybride sur un store et l’installer comme une application native.
Ces applications hybrides ont accès aux mêmes fonctions natives du téléphone qu’une application native classique (appareil photo, carnet d’adresse, calendrier, notifications Push, etc.) mais via des bridges.
Les bridges sont un moyen d’exposer les fonctionnalités natives du téléphone via une interface web en JavaScript. Ce sont des ponts d’accès entre les plateformes via leur langage natif et la WebView.
Développeur mobile en natif & hybride, je développe depuis plus d’un an sous React Native.
Mon expérience sur les différents langages me permet aujourd’hui de comparer la réactivité et la puissance du natif et les avantages qu’apporte React Native dans mes développements.
Je ne vais pas décrire ici ce qu’est React Native mais plutôt vous éclairer sur des interrogations ou des points de blocage que l’on rencontre lors du développement d’une application mobile hybride.
Aujourd’hui, il n’est plus question de faire l’impasse quant à sa présence sur mobile lorsque l’on propose un service en ligne, que ce soit à destination du grand public ou de ses collaborateurs.
La “vraie” question qui se pose – encore – aujourd’hui est de savoir si cette application doit être développée dans le système natif de chacun des OS (Operating System = système d’exploitation) du marché à savoir iOS, Android ou encore Windows Mobile, ou si elle doit être hybride ?
En effet, cette question n’est pas nouvelle et continuera à se poser tant que les technologies mises en oeuvre continueront à évoluer : D’avantage de puissance matérielle, navigateur Web embarqué dans l’application, enrichissement des API, etc.
Pour répondre à la question de “quoi choisir”, il faut bien entendu comprendre les différences entre les deux approches.