Développement Mobile

Page d’accueil / Développement Mobile
Lorsqu'il s'agit de développer une application sur mobile le choix technologique est pléthore, il n'est pas facile de s'y retrouver. Voici un aperçu des grandes familles d'applications mobiles ainsi que leurs spécificités respectives.

Applications natives iOS et Android

C'est le modèle traditionnel s'agissant d'une application Mobile. Que ce soit Google avec Android et Apple avec iOS, chaque plateforme possède son propre environnement qui régit la manière de développer et d'exécuter une application mobile. Android propose sa plateforme Java s'appuyant sur Android Studio et un SDK (Software Development Kit) dédié. Cela n'empêche nullement de développer avec d'autres langages tels que Kotlin ou même C/C++ ou Python. Il faut simplement savoir que le SDK est écrit en grande partie en Java et la machine virtuelle finale qui exécutera le code compilé est un assembleur proche de celui de Java. Côté iOS les choses sont tout aussi spécifiques. Les applications sont généralement conçues en Objective C ou en Swift dans l'environnement de développement XCode disponible uniquement sur iOS. Ajouté aux langages de développement, il existe tout un écosystème spécifique à ces deux environnements. Les gestionnaires de construction et de gestion de dépendances sont parfois différents (Cocoapods, Gradle, Carthage, Swift Package Manager, ...) et il s'avère difficile pour un développeur de parfaitement maîtriser les deux écosystèmes. Dans la pratique, si la solution native est celle qui permet le plus de souplesse et de performance, les entreprises disposent en interne de deux équipes dédiées à chaque plateforme. Cela revient à doubler les effectifs, le matériel de développement, les tests et parfois même les spécifications fonctionnelles, notamment lorsqu'on souhaite dissocier le fonctionnement d'une application Android d'une application iOS. Concrètement, cela signifie donc de doubler les budgets.

Application mobiles hybrides (Cordova)

Les applications mobiles hybrides répondent à la problématique budgétaire des applications natives. Elles s'appuient sur un environnement natif confiné permettant de tirer partie d'un navigateur embarqué pour exécuter des applications Web (HTML/CSS/JavaScript). Ce composant appelé WebView joue le rôle d'intermédiaire entre l'application et le système. Tout accès natif au système hôte (Android ou iOS) se fait via des extensions (appelées "plugins") fournies par l'outil Apache Cordova. Dans la pratique, il n'y a donc plus qu'un seul écosystème, celui du Web avec le trio HTML/CSS et JavaScript maîtrisé par bon nombre de développeurs sur le marché. D'autres outils se partagent le marché, comme Ionic qui s'appuie sur Angular, reprend les briques principales de Cordova et l'enrichit. Quant à PhoneGap d'Adobe, c'est une distribution de Cordova contenant des ajouts propriétaires réalisés par Adobe. Apache Cordova reste la pierre angulaire de tout projet hybride. L'inconvénient des applications hybrides tient à leur nature, du fait de l'utilisation d'une WebView, toute interaction native avec le système passe nécessairement par la fourniture d'un plugin, ce qui parfois (notamment pour des fonctionnalités natives récentes) peut poser des problèmes de disponibilité, de compatibilité et de stabilité. Par ailleurs, les performances d'une application hybride sont parfois (notamment dans le cas d'une utilisation intensive d'animations graphiques ou de la 2D) moindres que leurs homologues natives.

Progressive Web Apps

Contrairement aux applications hybrides, une application PWA est une application Web à 100%. Celle-ci s'exécute dans un navigateur Web comme Chrome ou Safari. Il faut imaginer une application HTML dont l'installation se fait via une simple URL avec un affichage adapté à la taille du périphérique cible (le Responsive Design joue un rôle important dans ce modèle). Une PWA offre un ROI (Retour sur Investissement) intéressant lorsqu'on souhaite cibler tous les types de périphériques à moindre coût car on utilise une et une seule technologie pour le développement. Il faut en revanche garder à l'esprit que les PWA, contrairement aux applications hybrides interagissent avec le système via des API Web. La notion de plugin n'existe pas ici et il faudra disposer d'un navigateur assez récent permettant d’inter-opérer avec des services tels que le Bluetooth, la capture audio/vidéo, le NFC, l'accéléromètre, le GPS, les Gestures ou le Press-Papiers. Un site recense l'état de l'art dans ce domaine : https://whatwebcando.today/  Par ailleurs, les PWA ne sont pas encore totalement supportés par les principaux stores du marché qui leur préfèrent les applications mobiles natives. Il est possible de passer par un composant WebView mais l'application s'exécutera dans un environnement sécurisé (sandbox) assez contraignant. Cela dit, Google (via les TWA) ou Apple commencent de plus en plus à entrouvrir une porte.

Applications React Native 

React Native constitue pour nous la plateforme proposant le meilleur compromis entre souplesse, performance, stabilité et coût. React Native part du principe que les performances d'un mobile et l'accès au système hôte est primordial pour qu'une application puisse fonctionner de manière aussi fluide qu'une application native. React Native va donc simplement créer une abstraction entre le code et le système via un pont appelé React Native Bridge. Le code est écrit en JavaScript, s'exécute dans le moteur JavaScriptCore de WebKit et tout l'aspect graphique reste sous la responsabilité du système hôte. React Native fournit au développeur des composants graphiques qui encapsulent les composants natifs existants du terminal. Les zones de saisie, les textes, les tableaux, les gestures, les scrollbars sont celles du mobile, d'où le rendu fidèle que procure une application React Native. Si les premières versions s'appuient sur un système massivement asynchrone d'échange de messages entre l'environnement natif et le moteur JavaScript, une évolution vers un monde synchrone est en cours avec l'architecture Fabric .
image
https://www.dng-consulting.com/wp-content/themes/solidbox/
https://www.dng-consulting.com/
#2D5596
style1
scroll
Chargement des articles ...
/home/clients/64a27e0afa0e04f36105f6f3987a1cea/sites/dng-consulting.com/
#
on
none
loading
#
Sort Gallery
on
no
off
off
off
Enter your email here
off
off