Comparatif ionic / Kivy – match retour

Introduction

Suite à l’article visant à comparer ionic et Kyvi, je suis allé plus loin dans la création d’une application mobile avec ionic (ben oui, je lui ai donné une bonne note, alors j’ai creusé !). Finalement, je vais pouvoir appuyer mes propos sur des exemples concrets, en faisant une deuxième copie d’une application Kivy, mais avec ionic (écrans proches et fonctionnalités similaires).

Pour rappel, le framework ionic part d’une bonne base : utiliser les connaissances d’un développeur web pour faire des applications mobiles. Il s’avère que (à mon avis) Kivy s’en sort mieux, même avec ses points faibles. Voici les notes du match retour, sur 20.

 

Comparatif de l’installation

Notes du match aller : Kivy 18/20 ; ionic : 15/20

Après plusieurs applications créées avec ionic, ces notes ne changent pas. La documentation des débutants servira pour les prochains développements. Je trouve relativement dommage que les fichiers de configuration des plates-formes soient avec le projet. On n’est plus dans le crossplatform (ou « platform independant ») dès le début, mais on va s’arranger avec les plates-formes cibles.

Verdict : Kivy 18/20 ; ionic : 15/20

 

Editeur de code (ou IDE)

Notes du match aller : 18/20 pour les deux

Même avec Eclipse et des plugins (JS, HTML, CSS), je n’ai pas réussi à configurer rapidement l’IDE sur un projet ionic pour me faire gagner plus de temps qu’un simple éditeur de texte avec coloration syntaxique (genre Notepad++). Les recherches de dépendances (F3, CRTL-Clic) ne fonctionnent pas, c’est la cata. Heureusement que les applications sont simples.

Avec Eclipse, les classes Phyton sont reconnues et facilement retrouvées. Il ne manque que l’interprétation du langage kv pour avoir un 20/20.

Verdict : Kivy 18/20 ; ionic : 10/20

 

Documentation et exemples

Notes du match aller : 18/20 pour les deux

Après quelques écueils, je doit reconnaître que la documentation ionic (cordova et ses copains) ne sont pas si facilement applicables. Des exemples et explications sont disponibles, mais il faut mettre la frontale. De longues recherches et tests sont nécessaires pour investiguer sur un terrain inconnu. Gare aux culs de sac.

Verdict : Kivy 18/20 ; ionic : 15/20

 

Le premier « Hello world »

Notes du match aller : Kivy 18/20 ; ionic : 15/20

Attention, si on part avec de mauvaises bases et structuration du code, ca devient vite un gros bordel. Le framework ne cadre pas du tout les composants (Services, Factory, Modèles, etc) : tout peut être dans un seul fichier de 600 ko de code. Pour débuter avec une première application, ces bases sont presque obligatoires (par exemple avec CodeIgniter en PHP, qui est un régal à comparer d’ionic). Je trouve dommage que les exemples « clé en main » soient dépourvus de cette structuration.

Kivy propose plus de contrainte, car il se base sur Python qui défini déjà des packages et des modules (ce qui doit aider grandement Eclipse à retrouver les sources des classes).

Verdict : Kivy 18/20 ; ionic : 12/20

 

Développement d’une application sur un PC

Notes du match aller : Kivy 18/20 ; ionic : 12/20

Pour ce cas, je pense avoir plutôt bien jugé mes notes. Le développement est relativement laborieux avec ionic. Heureusement qu’avec un plugin pour Chrome, on arrive à avoir un rendu potable et avancer dans la création des applications. Les logs sont dans la console Javascript du navigateur, mais il n’y a pas tout. Comparé à Kivy, où tout sort dans la console d’Eclipse, c’est bien moins confortable.

Verdict : Kivy 18/20 ; ionic : 12/20

 

Déploiement sur mobile (Android)

Notes du match aller : 18/20 pour les deux

Avec ionic, on peut profiter du live-reload pour pallier aux problèmes d’utilisation des ressources présentes uniquement sur le device (ex: Base de données SQLite). Le déploiement est facile pour les deux frameworks, même avec une structuration complexe et des fichiers divers.

Verdict : 18/20 pour les deux

 

Développements sans appels au device

Notes du match aller : 18/20 pour les deux

Les développements ionic nécessitent une « boite » simulant le mobile. C’est faisable avec un navigateur comme Chromium et un plugin ;  c’est un peu bricolé. Avec Kivy, c’est une vraie fenêtre de l’OS qui s’ouvre.

Verdict : Kivy 18/20 ; ionic : 15/20

 

Appels aux fonctionnalités du device

Notes du match aller : Kivy 12/20 ; ionic : 18/20

Le désenchantement d’ionic continue lors de développements faisant appel au fonctionnalités du device (GPS, Base de données, caméra, etc.). Il n’est plus possible de se passer d’un device et de tout tester sur le mobile. On arrive aux limites de la magie du crossplatform. Il en fallait bien quelques unes, ce n’est pas du code natif et il n’y a pas de façade pour s’en abstraire (ca commence à arriver sur Kivy).

Verdict : Kivy 12/20 ; ionic : 12/20

 

Design et interface

Notes du match aller : Kivy 4/20 ; ionic : 18/20

Sauf nouveauté coté Kivy, ionic reste très pratique pour les interfaces nécessitant un design très travaillé.

Avec des widgets prédéfinis et réutilisables (et paramétrables), Kivy sort quand même la tête hors de l’eau, sans avoir de solution miracle. Il faut donc prévoir de faire des interfaces simples avec Kivy…

Verdict : Kivy 8/20 ; ionic : 18/20

 

Conclusion

Voici un rappel des notes obtenu par nos deux coureurs :

  • Installation : Kivy 18/20 ; ionic : 15/20
  • IDE : Kivy 18/20 ; ionic : 10/20
  • Documentation : Kivy 18/20 ; ionic : 15/20
  • Hello World : Kivy : 18/20 ; ionic : 12/20
  • Développement sur PC : Kivy 18/20 ; ionic : 12/20
  • Déploiement sur mobile : 18/20 pour les deux
  • Développements sans appels aux device : Kivy 18/20 ; ionic : 15/20
  • Appels aux fonctionnalités du device : Kivy 12/20 ; ionic : 12/20
  • Design et interface : Kivy 8/20 ; ionic : 18/20

Total (après utilisation plus approfondie) : Kivy 146 pts (+4 pts) ; ionic : 127 pts (-23pts)

Pour ma prochaine application mobile, si l’interface doit être simple, elle sera en Kivy. Si elle doit avoir une interface plus travaillée, ce sera avec ionic, mais elle ne sera pas trop complexe (fonctions simples).

 

2 réflexions au sujet de « Comparatif ionic / Kivy – match retour »

  1. Bonjour,

    Comparatif intéressant. Je me permets de faire une remarque sur Kivy : si l’idée de Ionic est de s’insiprer de HTML pour proposer une API homogène, Kivy s’inspire des frameworks de développement d’application de bureau classiques (plus proches en un sens de la finalité).

    Par conséquent, lorsque l’on a déjà une petite expérience avec PyGtk, PySide ou wxPython, le design d’interface avec Kivy n’est absolument pas une découverte. On s’y retrouve facilement car les principes sont identiques (bien que les composants ne le soient pas). Le parcours rapide de cet excellent site https://python-gtk-3-tutorial.readthedocs.org/en/latest/ vous permettra d’ailleurs de vous faire votre propre opinion.

    D’autre part, il existe un KivyDesigner (que l’on pourrait comparer respectivement aux produits Glade, kde-designer et wxGlade).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>