web-dev-qa-db-fra.com

Android app complètement en python

Je souhaite développer une application (plutôt simple) Android à distribuer via le Play Store. Je voudrais le faire complètement en python. Cependant, la recherche en ligne ne m’a pas encore éclairée: la plupart des commentaires sont soit obsolètes (plus d’un an), et j’estime qu’il pourrait y avoir une meilleure intégration de python depuis lors), soit ils en parlent exécute python dans Android (par exemple ici ).

Par conséquent, je cherche des informations concernant les questions:

  • est-il possible de développer une application entièrement en python - et quels sont les outils pour le faire? (Est-ce que Kivy est recommandable?)
  • si oui: quels sont les meilleurs environnements logiciels pour implémenter cela? (J'ai essayé sans succès d'utiliser Android Studio, mais je ne trouvais pas le moyen d'exécuter le code python ici.)

Je suis assez nouveau dans le développement d'applications et j'apprécierais énormément toute possibilité de le faire en python plutôt qu'en Jave etc., que je ne connais pas encore.

Merci beaucoup pour votre aide en avance.

50
Ivo B.

Pour répondre à votre première question: oui, il est possible de développer une application Android en python pur, pour ce faire, je vous suggère d'utiliser BeeWare , qui est juste une suite de python outils, fonctionne très bien ensemble et vous permet de développer des applications natives de plate-forme en python.

checkout cette vidéo du créateur de BeeWare qui explique et démontre parfaitement son application

Comment ça fonctionne

Le langage d'implémentation préféré d'Android est Java. Par conséquent, si vous souhaitez écrire une application Android en Python, vous devez pouvoir exécuter votre code Python sur un Java. Machine virtuelle. C'est ce que VOC fait. VOC est un transpiler - il prend le code source Python, le compile en Bythode CPython, puis en transpile en bytecode compatible Java. Le résultat final est que vos fichiers de code source Python sont directement compilés dans un fichier Java .class, qui peut être intégré à une application Android.

VOC vous permet également d'accéder aux objets Java natifs comme s'il s'agissait d'objets Python, d'implémenter des interfaces Java avec des classes Python et des classes de sous-classe Java avec Python classes. Grâce à cela, vous pouvez écrire une application Android directement sur les API natives Android.

Une fois que vous avez écrit votre application Android native, vous pouvez utiliser le Porte-documents pour conditionner votre code Python en tant qu'application Android.

Porte-documents est un outil permettant de convertir un projet Python en une application native autonome. Vous pouvez créer des projets pour:

  • Mac
  • Les fenêtres
  • Linux
  • iPhone/iPad
  • Android
  • Apple TV
  • tvOS.

Vous pouvez cocher Cette application native Android Tic Tac Toe écrite en Python, à l'aide de la suite BeeWare. sur GitHub

en plus des outils BeeWare, vous devez installer un kit JDK et un kit de développement logiciel Android pour tester l'exécution de votre application.

et pour répondre à votre deuxième question: un bon environnement peut être tout ce avec quoi vous êtes à l'aise, qu'il s'agisse d'un éditeur de texte et d'une ligne de commande, ou d'un IDE, si vous recherchez un bon python IDE I Je vous suggérerais d'essayer Pycharm , une édition communautaire gratuite et un environnement similaire à celui de Android studio, en raison du fait qu'ils ont été réalisés par la même entreprise.

J'espère que cela a été utile

52
maroof shittu

Vous pouvez essayer BeeWare - comme décrit sur leur site web:

Ecrivez vos applications dans Python et publiez-les sur iOS, Android, Windows, MacOS, Linux, Web et tvOS à l'aide d'interfaces utilisateur riches et natives. Une base de code. Plusieurs applications.

Vous voulez maintenant écrire Android Applications en Python, plus l'avantage de ne pas avoir besoin d'apprendre un autre cadre à l'avenir si vous souhaitez également faire quelque chose sur l'un des autres plates-formes répertoriées.

Voici le Tutoriel pour Android Apps .

12
E. Gordon

Il existe deux principaux candidats pour les applications python sur Android.

Chaquopy

https://chaquo.com/chaquopy/

Cela s'intègre au système de construction Android, il fournit une API Python pour toutes les fonctionnalités de Android. Pour citer le site "L’intégrale Android API et la boîte à outils de l’interface utilisateur sont directement à votre disposition".

Beeware (Boîte à outils du widget Toga)

https://pybee.org/

Cela fournit un transpiler à plusieurs cibles, prend en charge de nombreuses cibles telles que Android et iOS. Il utilise une boîte à outils de widget générique (toga) qui correspond aux appels d'interface de l'hôte.

Laquelle?

Les deux sont des projets actifs et leurs comptes github montrent une bonne quantité d'activité récente.

Beeware Toga, comme toutes les bibliothèques de widgets, est utile pour transmettre les bases à plusieurs plates-formes. Si vous avez des conceptions de base et que vous souhaitez développer d'autres plates-formes, cela devrait bien vous convenir.

D'autre part, Chaquopy est beaucoup plus précis dans sa cartographie de l'API python vers Android. Il vous permet également de mixer en Java, ce qui est utile si vous souhaitez utiliser du code existant à partir d'autres ressources. Si vous avez des objectifs de conception stricts et que vous souhaitez principalement cibler Android, cette ressource est bien meilleure.

6
harvey

Android, Python!

Quand j'ai vu ces deux mots-clés ensemble dans votre question, Kivy est celui qui m'est venu en premier.

Kivy logo

Avant d’arriver au développement Android natif en Java avec Android Studio, j’avais essayé Kivy . C'est juste génial. Voici quelques avantages que je pourrais découvrir.


Simple à utiliser

Avec les bases de python, vous n'aurez pas de difficulté à l'apprendre.


Bonne communauté

C'est bien documenté et il y a une grande communauté active.


Plate-forme transversale.

Vous pouvez développer quelque chose pour Android, iOS, Windows, Linux et même Raspberry Pi avec ce cadre unique. Open source.


C'est un logiciel libre

Au moins quelques-uns de ses concurrents (multiplate-forme) veulent que vous payiez un droit si vous voulez une licence commerciale.


Support graphique accéléré

Le moteur graphique de Kivy , construit sur OpenGL ES 2, est adapté aux logiciels nécessitant un rendu graphique rapide, tel que les jeux.



Dans la partie suivante de la question, vous ne pouvez pas utiliser Android Studio IDE pour Kivy. Here est un guide détaillé pour la configuration de l’environnement de développement.

3
Anees