Le marché du développement d’applications mobiles s’est fortement concentré autour de deux systèmes d’exploitations : iOS et Android, remisant BlackBerry et Windows OS pour de bon aux oubliettes.
Si le développement natif est aujourd’hui encore largement privilégié quand il s’agit de créer une application pour une seule plateforme, de nombreuses solutions existent dès lors qu’une réflexion est menée pour porter une même application sur plusieurs plateformes.
PhoneGap / Cordova : projet open-source acquis par Adobe, c’est historiquement la première solution ayant vu le jour permettant de développer des applications cross-platform. À l’origine, PhoneGap supportait même des plateformes plutôt exotiques comme BlackBerry OS ou encore PalmOS, plateformes aujourd’hui disparues.
PhoneGap encapsule une application web au sein d’une application native en proposant une API simple : c’est le choix idéal pour porter rapidement une application web existante sur iOS et Android. Attention cependant, l’expérience utilisateur sera limitée, car tout s’exécute dans une webView, à savoir une page web stockée localement dans l’application.
Ionic framework : créé en 2013, Ionic reprend le principe de PhoneGap en proposant des composants tout fait, et accélérant ainsi fortement les délais de réalisation d’une application mobile.
Ionic a affiné au possible les performances d’une application interprétée (comme PhoneGap) : c’est la meilleure solution pour le développement ex nihilo d’une application où l’expérience utilisateur n’est pas critique.
React native : créée par les équipes de Facebook, c’est une technologie hybride permettant de coder une application en Javacript pour donner vie à une application… native ! En effet un compilateur interprète le code React pour donner vie à une application native.
C’est certainement la technologie la plus intéressante du moment, alliant facilité de prise en main et qualité du résultat final. Il est à noter qu’il est possible de développer une application React tout en développant certaines parties en SWIFT ou Objective C.
SWIFT, Objective-C, Java : les technologies natives d’iOS et d’Android sont à retenir quand les exigences de personnalisation et de performances nécessitent un développement très bas niveau.