Comment créer une application Android complètement en python? [fermé]

105

Je souhaite développer une application Android (assez simple) à distribuer via Play Store. Je voudrais le faire complètement en python. Cependant, la recherche en ligne ne m'a pas tout à fait éclairé: la plupart des commentaires sont soit obsolètes (> 1 an, et je pense qu'il pourrait y avoir une meilleure intégration de python depuis lors) ou ils parlent de l' exécution de python dans Android (par exemple ici ).

Par conséquent, je recherche 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? (Par exemple, Kivy est-il recommandé?)
  • si oui: quels sont les meilleurs environnements logiciels pour l'implémenter? (J'ai essayé sans succès d'utiliser Android Studio mais je n'ai pas pu trouver un moyen d'exécuter du code Python là-bas.)

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

Merci beaucoup pour votre aide à l'avance.

Ivo
la source
1
dans le passé, j'utilisais kivy et leur programme buildozer. ils ont la documentation ici kivy.org/docs/guide/packaging-android.html
es
En natif, vous devez utiliser Java ou Kotlin, mais comme d'autres l'ont souligné, il existe des "constructeurs d'applications" ou des frameworks tiers que vous pouvez utiliser avec python comme PyMob ou Kivy.
Dominik Schmidt
7
J'ai créé un jeu Android entièrement développé en Python avec Kivy. Il s'appelle CoinTex disponible ici sur Google Play: play.google.com/store/apps/details?id=coin.tex.cointexreactfast . Le code source du jeu est disponible ici sur GitHub: github.com/ahmedfgad/CoinTex . J'ai également écrit un livre qui sera publié cette année pour créer des applications Android avec Python. Il est intitulé «Création d'applications Android en Python à l'aide de Kivy avec Android Studio: avec Pyjnius, Plyer et Buildozer Ahmed Fawzy Gad» disponible ici sur Amazon: amazon.com/dp/1484250303 .
Ahmed Gad
1
Impossible de publier une réponse, mais il semble y avoir une solution : différentes technologies seront
Basj

Réponses:

112

Pour répondre à votre première question: oui il est possible de développer une application android en pur python , pour y parvenir je vous propose d'utiliser BeeWare , qui n'est qu'une suite d'outils python , qui fonctionnent très bien ensemble et qui vous permettent de développer applications natives de la plateforme en python.

consultez 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 - donc si vous souhaitez écrire une application Android en Python, vous devez disposer d'un moyen d'exécuter votre code Python sur une machine virtuelle Java. C'est ce que fait VOC . VOC est un transpilateur - il prend le code source Python, le compile en CPython Bytecode, puis transpile ce bytecode en bytecode compatible Java. Le résultat final est que vos fichiers de code source Python sont compilés directement dans un fichier Java .class, qui peut être intégré dans 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 de sous-classer des classes Java avec des classes Python. Grâce à cela, vous pouvez écrire une application Android directement sur les API Android natives.

Une fois que vous avez écrit votre application Android native, vous pouvez utiliser Briefcase pour empaqueter votre code Python en tant qu'application Android.

Le porte - documents est un outil permettant de convertir un projet Python en une application native autonome. Vous pouvez regrouper des projets pour:

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

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

en plus des outils BeeWare, vous aurez besoin d'un JDK et d'un SDK Android pour tester l'exécution de votre application.

et pour répondre à votre deuxième question: un bon environnement peut être tout ce qui vous convient, que ce soit un éditeur de texte et une ligne de commande, ou un IDE, si vous recherchez un bon IDE python, je vous suggère d'essayer Pycharm , il a une édition communautaire qui est gratuite et qui a un environnement similaire à celui d'Android Studio, en raison du fait qu'ils ont été fabriqués par la même société.

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

maroof shittu
la source
2
Est-ce juste moi ou le COV a-t-il été abandonné?
Fonder le procès de Monica le
2
c'est une impasse (la dernière fois que je l'ai vérifié: décembre 2018). Un ou plusieurs composants de cette solution trop complexe ne fonctionnent plus ou ne peuvent plus se tenir à jour.
Berry Tsakala
2
Juste une mise à jour pour 2019, mais Kotlin est maintenant la langue préférée pour le développement Android.
DaveTheMinion
3
@Basj J'aimerais dire que Beeware sera certainement là pendant un certain temps, car simplement en jetant un coup d'œil à son compte GitHub, vous constaterez qu'il est activement développé, et si vous vous dirigez vers le canal Gitter, vous pouvez atteignez toujours toute l'équipe, en particulier le Dr Russell (freakyboy) le créateur, et la communauté est assez sympathique, et il y a également eu un tweet très récent (26 septembre 2019) de leur compte officiel annonçant qu'ils ont reçu une bourse d'études du Python fondation logicielle. Je pense que cela vaudrait la peine de votre temps, surtout si vous aimez le python en tant que langage
maroof shittu
1
BeeWare ne semble en aucun cas prendre en charge Android (Java) à ce stade.
Mark Anderson le
15

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

Écrivez vos applications en 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.

Donne que vous voulez que vous vouliez maintenant écrire des applications Android en Python, et présente l'avantage que vous n'aurez pas besoin d'apprendre un autre cadre à l'avenir si vous finissez par vouloir faire quelque chose sur l'une des autres plates-formes répertoriées.

Voici le didacticiel pour les applications Android .

Emmagordon
la source
5
Avez-vous créé une application vous-même avec BeeWare?
Berry Tsakala
11

Il existe deux principaux prétendants aux 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 Android. Pour citer le site "L'API Android complète et le toolkit d'interface utilisateur sont directement à votre disposition."

Beeware (boîte à outils du widget Toga)

https://pybee.org/

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

Laquelle?

Les deux sont des projets actifs et leurs comptes github montrent une bonne partie de l'activité récente.

Beeware Toga, comme toutes les bibliothèques de widgets, est idéal pour diffuser les bases sur plusieurs plates-formes. Si vous avez des conceptions de base et que vous souhaitez vous étendre à d'autres plates-formes, cela devrait bien fonctionner pour vous.

En revanche, Chaquopy est beaucoup plus précis dans sa cartographie de l'API python vers Android. Il vous permet également de mélanger en Java, 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, c'est une bien meilleure ressource.

Harvey
la source
10

Android, Python!

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

Logo Kivy

Avant d'arriver au développement natif d'Android en Java avec Android Studio, j'avais essayé Kivy . C'est tout simplement génial. Voici quelques avantages que j'ai pu découvrir.


Utilisation simple

Avec les bases de Python, vous n'aurez aucun mal à l'apprendre.


Bonne communauté

Il est bien documenté et possède une communauté formidable et active.


Plateforme croisée.

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 (multiplateformes) veulent que vous payiez des frais si vous souhaitez une licence commerciale.


Prise en charge graphique accélérée

Le moteur graphique de Kivy construit sur OpenGL ES 2 le rend approprié pour les logiciels qui nécessitent un rendu graphique rapide comme les jeux.



Passant maintenant à la partie suivante de la question, vous ne pouvez pas utiliser Android Studio IDE pour Kivy. Voici un guide détaillé pour la configuration de l'environnement de développement.

Bertram Gilfoyle
la source
5
La prise en charge de Windows est en retard par rapport aux normes de production (ou même aux normes pour les amateurs). De plus, la moitié du monde ne peut pas l'utiliser en raison d'un manque de support RTL.
Berry Tsakala
Pourquoi avez-vous quitté Kivy pour en faire des outils de développement natifs? Vous suggérez que cela présente certains inconvénients.
igoemon le