Améliorez vos Apps hybrides avec Crosswalk

Editer

Le développement d'application mobile hybride gagne beaucoup en popularité en ce moment, mais l'utilisation d'une WebView en lieu et place d'un code natif entraine un problème majeur : la compatibilité. En effet, suivant la version du téléphone les APIs disponibles sont complètement différentes (problème exacerbé sur Android qui tourne sur une large palette de périphériques) et les performances sont souvent désastreuses sur certains périphériques. Crosswalk propose de remédier à ce problème en permettant d'intégrer dans son application une WebView basée sur Google Chromium.

Crosswalk permet donc de ne plus avoir à se soucier des incompatibilités puisque l'on intègre dans notre application le moteur Chromium. Cette méthode permet ainsi d'améliorer grandement les performances de l'application et de supporter les dernières fonctionnalités JS / CSS (à vous la puissance des flexbox !).

Installation sur Cordova

Si vous utilisez Apache Cordova ou Phonegap, Crosswalk s'installe très simplement grâce à l'introduction du support de WebView tierce. Du coup l'installation se fait à travers un simple plug-in :

cordova plugin add cordova-plugin-crosswalk-webview

On peut ensuite construire notre application de manière standard avec

cordova build android

La dernière version stable de librairie Crosswalk WebView sera alors automatiquement téléchargée et construite pour les architectures x86 et ARM.
On se retrouve alors avec 2 APKs pour supporter les différents types d'architecture (on gardera ces 2 architectures séparées pour éviter d'augmenter de manière trop conséquente le poids de notre application).

platforms/android/build/outputs/apk/android-x86-debug.apk
platforms/android/build/outputs/apk/android-armv7-debug.apk

Les inconvénients

L'intégration d'un moteur entraine évidemment quelques inconvénients :

  • L'application utilise un peu plus de mémoire ~30Mo
  • L'APK grossit de 17Mo environ (il existe cependant une version lite qui retire des fonctionnalités avancées comme WebRTC permettant de réduire ce poids à 10Mo)
  • L'application, une fois installée, prendra 50Mo de plus

L'inconvénient majeur de cette technique est donc l'augmentation du poids de votre application. À vous de juger si cette augmentation est acceptable par rapport à votre code de base.
À terme l'équipe derrière CrossWalk aimerait proposer une version ou l'on pourrait construire une WebView avec seulement les fonctionnalités dont on aurait besoin (on pourrait alors désactiver le support des SVG, des canvas ou autre pour gagner en place), mais l'état actuel des sources Chromium ne permettent pas une telle modularité.