Après avoir lu plusieurs questions et réponses sur SO, je me rends compte que l'une a 2 options, à savoir QPython et Kivy pour faire de la programmation pour Android, cependant, apparemment, les deux adoptent des approches différentes. J'essaie de valider ma compréhension et de voir si je manque des informations clés.
Dans l'ensemble, l'opinion en conséquence (des points ci-dessus) semble osciller en faveur de Kivy, un peu plus. La compréhension est-elle correcte? Ai-je raté un point crucial? Ce n'est pas une question rhétorique et je ne cherche que des réponses factuelles.
QPython permet l'utilisation de la bibliothèque Kivy pour développer des applications graphiques
Oui, qpython est un interpréteur + outils associés, et a une certaine intégration Nice kivy. Cependant, vous ne pouvez pas compiler le code kivy vers une apk autonome avec qpython + Android seul.
QPython et Kivy utilisent tous les deux SL4A, tandis que QPython a étendu SL4A standard (ou ses liaisons pour Python) en ajoutant quelques NFC et des fonctions similaires
Kivy n'utilise pas SL4A. Nous réalisons l'intégration de l'api Android principalement via pyjnius, une bibliothèque pour envelopper automatiquement les classes Java avec python, qui vous permet d'appeler directement l'api Java. Nous avons également résumé certaines choses standard dans une interface Pythonic avec plyer.
(J'ai vu plus tard que vous les avez déjà trouvés)
QPython est utilisé pour créer des scripts python qui peuvent utiliser un large éventail de modules et de bibliothèques, mais ils ont besoin que QPython soit installé pour être exécuté sur le périphérique cible. Il n'y a aucun moyen de compresser le script dans une apk.
Je n'utilise pas beaucoup qpython, mais je pense que c'est correct, bien qu'il puisse y avoir certains outils pour transformer les scripts en apk dans certaines circonstances (par exemple, vous pouvez utiliser les outils de construction de kivy si vous avez une interface kivy, ou peut-être que sl4a a quelque chose pour cela ).
Kivy OTOH, permet au développeur d'écrire des applications qui se compilent sur apk, en utilisant leur système de build basé sur le cloud (alternative - le système de build local peut être configuré sur Ubuntu Linux) [Cependant, j'ai remarqué que la plupart des exemples d'apk qui utilisent Kivy sont assez gros , dans la gamme 40MB. Ai-je manqué quelque chose ?]
Nous avons un système de construction basé sur le cloud de base, mais rien de tel à l'heure actuelle, presque tout le monde construit des apks sur sa propre machine en utilisant nos outils de construction pour Android. Ceux-ci s'exécutent sur Linux ou OSX, et peuvent facilement être exécutés sur une machine virtuelle si nécessaire.
Une application minimale a environ 7 Mo de taille APK en raison de la nécessité de regrouper l'interpréteur python et de nombreux modules.
QPython apk a 2 versions, c'est-à-dire une pour Python-2.7 et une autre pour Python-3.x. Pour Kivy, je ne sais pas de quelle version il s'agit.
Kivy lui-même prend en charge python3, mais nos outils de construction Android ne prennent en charge que python2.7 pour l'instant.
Ayez l'impression que QPython et Kivy sont développés par un seul développeur chacun (ou qu'une seule personne est vraiment active à l'heure actuelle), et n'ont pas encore de communauté biggish. [C'est ma plus grande préoccupation] Je remarque qu'il y a 3-4 questions avec la balise 'qpython' sur SO, et plus de mille avec 'kivy'!
Le développement de Kivy est assez actif avec plusieurs contributeurs réguliers et des contributeurs plus sporadiques. Vous pouvez voir par exemple l'activité de validation récente sur github . C'est certainement bien plus qu'un seul développeur!
Kivy semble essayer d'élargir la nature de l'application qui pourrait éventuellement être écrite en l'utilisant, par rapport à QPython. Il existe des API comme plyer et pyjnius qui aident à élargir les possibilités. Peut-être assez significativement, par rapport à QPython.
Je pense que qpython inclut pyjnius. Je ne suis pas sûr de l'avocat.
QPython et Kivy semblent être en cours de développement. Les plantages (/ échecs) du programme (/ script) semblent être signalés sur les deux ensembles d'outils.
Je ne suis pas sûr de ce que vous regardez, mais tout projet non trivial aura des plantages/échecs/bugs signalés. Je ne pense pas que Kivy soit particulièrement instable en soi.
Dans l'ensemble, l'opinion en conséquence (des points ci-dessus) semble osciller en faveur de Kivy, un peu plus.
J'aurais dit que qpython et kivy sont des choses assez différentes. Qpython vous permet d'écrire et d'exécuter des scripts, tandis que kivy est un cadre graphique et des outils associés pour créer des applications autonomes. Il y a un certain chevauchement avec les tâches qui pourraient être réalisées avec les deux, mais aussi beaucoup de choses où elles ne conviennent pas toutes les deux - par exemple, je pense que qpython est probablement beaucoup plus pratique pour créer des scripts rapides sans interface graphique, par exemple. automatisation simple (je pense que cela est possible), alors que je pense que kivy est un bien meilleur choix pour créer des applications autonomes avec une apparence non triviale. Bien sûr, vous pouvez écrire du code kivy en qpython, comme indiqué, mais ce n'est pas une excellente expérience utilisateur pour tout ce qui n'est pas trivial et vous avez quand même besoin d'une machine de bureau/ordinateur portable pour créer une apk autonome.
Il existe au moins deux autres moyens (bien qu'à ma connaissance uniquement théoriques) de faire fonctionner Python code sur Android:
numpy
, sont disponibles pour jython
, et si vous utilisez Java gardez à l'esprit que Android ne fournit pas les mêmes que par exemple le bureau JRE