1°/ Le développement mobile en JS
Il existe à l'heure actuelle plusieurs approches pour créer des applications mobiles à l'aide d'environnements JS. On peut globalement les répartir en 3 catégories :
- Celles qui permettent de produire une application totalement native. Dans le cadre de Vue.js, on peut citer,
vue-native
(qui produit du code pour React Native) et nativescript-vue
.
- Celles dites hybrides, qui utilisent une webview pour simuler un navigateur et exécuter le code de l'application, mais en utilisant des plugins qui permettent d'accéder nativement au matériel. Les principaux plugins sont
capacitor
et cordova
et les environnements les plus connus sont ionic-vue
et quasar
.
- Celles qui utilisent uniquement les capacités de navigateurs modernes pour accéder au matériel, mais qui proposent tout de même une expérience utilisateur similaire aux applications natives, grâce à la gestion d'un cache pour les ressources, ce qui permet d'utiliser l'application hors-ligne. On appelle ce type d'application PWA, pour Progressive Web Application. Il existe un plugin PWA pour Vue.
<aside>
☝
Remarque : Grâce à capacitor
, il est possible de mixer hybride et PWA puisqu'il est capable de détecter si le matériel est accessible nativement et si ce n'est pas le cas, d'utiliser les capacités du navigateur.
</aside>
Ce TD est découpé en 2 parties :
- La première consacrée à Quasar, couplé à
cordova
ou capacitor
.
- La deuxième consacrée à Ionic + Capacitor.
Ces deux environnements sont relativement identiques dans la façon de créer une application :
- On utilise un set de composants graphiques propre à l'environnement.
- On utilise Android Studio pour tester dans un émulateur ou bien sur un téléphone réel l'application.
- On peut faire du développement "interactif", comme avec une application web SPA classique servie par un serveur web de développement.
Il y a malgré tout des différences entre ces 2 solutions :
- Ionic est plutôt pensé pour développer en TypeScript, et plutôt JS "classique" pour Quasar.
- Quasar propose un visuel de composants graphiques unique, plutôt dans le style Material Design (donc orienté Android), alors qu'Ionic propose un look différent selon l'architecture cible.
- Créer un projet
ionic-vue
est un peu plus simple car il y a des installations automatiques. En revanche, on peut moins facilement configurer la création du projet que sous Quasar.
- Quasar permet à priori de créer bien plus de types d'application qu'Ionic, qui est avant tout fait pour des applications sur mobile (même s'il peut être utilisé pour d'autres architectures).
- Quasar est plus vieux, plus stable, mieux documenté, plus fourni en composants qu'Ionic Vue.