143 votes

Comment développer une application Android entièrement en utilisant python ?

Je souhaite développer une application Android (plutôt simple) qui sera distribuée via Play Store. J'aimerais le faire entièrement en python. Cependant, les recherches en ligne ne m'ont pas vraiment éclairé : la plupart des commentaires sont soit dépassés (>1 an, et j'ai l'impression qu'il y a peut-être une meilleure intégration de python depuis), soit ils parlent de exécution de python dans Android (par exemple aquí ).

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

  • est-il possible de développer une application entièrement en python - et quels sont les outils pour le faire ? (Kivy, par exemple, est-il recommandable ?)
  • Si oui, quels sont les meilleurs environnements logiciels pour mettre en œuvre cette solution ? (J'ai essayé sans succès d'utiliser Android Studio mais je n'ai pas trouvé le moyen d'y exécuter du code python).

Je suis assez novice en matière de développement d'applications et j'apprécierais beaucoup toute piste permettant de faire cela en python plutôt qu'en Jave etc. que je ne connais pas encore.

Merci d'avance pour votre aide.

1 votes

Dans le passé, j'ai utilisé kivy et leur programme buildozer. ils ont de la documentation ici kivy.org/docs/guide/packaging-Android.html

0 votes

En mode natif, vous devez utiliser Java ou Kotlin, mais comme d'autres l'ont souligné, il existe des "constructeurs d'applications" ou des cadres de travail tiers que vous pouvez utiliser avec Python, comme PyMob ou Kivy.

12 votes

J'ai créé un jeu Android qui est entièrement développé en Python en utilisant Kivy. Il s'appelle CoinTex et est disponible ici sur Google Play : play.google.fr/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 sur la création d'applications Android à l'aide de Python. Il s'intitule "Building Android Apps in Python Using Kivy with Android Studio" : With Pyjnius, Plyer, and Buildozer Ahmed Fawzy Gad" disponible ici sur Amazon : amazon.com/dp/1484250303 .

146voto

maroof shittu Points 742

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

caisse cette vidéo par le créateur de BeeWare qui explique et démontre parfaitement son application.

Comment cela fonctionne

Le langage d'implémentation préféré d'Android est Java - donc si vous voulez écrire une application Android en Python, vous devez avoir un moyen d'exécuter votre code Python sur une machine virtuelle Java. C'est ce que COV fait. COV est un transpilateur - il prend le code source Python, le compile en bytecode CPython, puis transpile ce bytecode en bytecode compatible avec Java. Le résultat final est que vos fichiers de code source Python sont compilés directement en un fichier .class Java, qui peut être empaqueté dans une application Android.

VOC vous permet également d'accéder aux objets Java natifs comme s'ils étaient des 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 à partir des API Android natives.

Une fois que vous avez écrit votre application Android native, vous pouvez utiliser Porte-documents pour packager 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 empaqueter des projets pour :

  • Mac
  • Windows
  • Linux
  • iPhone/iPad
  • Android
  • AppleTV
  • tvOS.

Vous pouvez consulter cette version native d'Android Application Tic Tac Toe écrit en Python, en utilisant la suite BeeWare. sur GitHub

En plus des outils BeeWare, vous aurez besoin d'avoir un JDK et un Android SDK installés pour tester votre application.

et pour répondre à votre deuxième question : un bon environnement peut être tout ce avec quoi vous êtes à l'aise, que ce soit un éditeur de texte et une ligne de commande, ou un IDE, si vous cherchez un bon IDE python, je vous suggère d'essayer Pycharm Il dispose d'une édition communautaire gratuite et d'un environnement similaire à celui d'Android Studio, car il a été créé par la même société.

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

4 votes

C'est moi, ou le COV a été abandonné ?

2 votes

C'est une impasse (dernière vérification : déc. 2018). Un ou plusieurs composants de cette solution trop complexe ne fonctionnent plus, ou ne peuvent pas se maintenir à jour.

2 votes

Juste une mise à jour de ceci pour 2019, mais Kotlin est maintenant le langage préféré pour le développement Android.

18voto

E. Gordon Points 679

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

Écrivez vos applications en Python et diffusez-les sur iOS, Android, Windows, MacOS, Linux, Web et tvOS en utilisant des interfaces utilisateur riches et natives. Une base de code. Plusieurs applications.

Il vous permet d'écrire des applications Android en Python et présente l'avantage de vous éviter d'avoir à apprendre un autre framework à l'avenir si vous souhaitez également faire quelque chose sur l'une des autres plateformes listées.

Voici le Tutoriel pour les applications Android .

5 votes

Avez-vous créé vous-même une application avec BeeWare ?

15voto

Anees Points 4806

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.

Kivy logo

Avant d'en venir au développement natif d'Android en Java à l'aide d'Android Studio, j'avais essayé Kivy . C'est tout simplement génial. Voici quelques avantages que j'ai pu trouver.

Simplicité d'utilisation

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

Bonne communauté

Il est bien documenté et dispose d'une grande communauté active.

Plate-forme croisée.

Vous pouvez développer des objets pour Android, iOS, Windows, Linux et même Raspberry Pi avec ce seul cadre. Open source.

Il s'agit d'un logiciel libre

Au moins quelques-uns de ses concurrents (multiplateformes) vous demandent de payer une redevance si vous voulez une licence commerciale.

Support graphique accéléré

Kivy Le moteur graphique de l'entreprise est basé sur OpenGL ES 2, ce qui en fait un outil idéal pour les logiciels qui nécessitent un rendu graphique rapide, comme les jeux.

Pour en venir à la partie suivante de la question, vous ne pouvez pas utiliser Android Studio IDE pour Kivy. Ici est un guide détaillé pour la configuration de l'environnement de développement.

6 votes

La prise en charge de Windows est très en retard sur les normes de production (ou même sur les normes des amateurs). De plus, la moitié du monde ne peut pas l'utiliser en raison du manque de support RTL.

2 votes

Pourquoi avez-vous quitté Kivy pour passer à des outils de développement natifs ? Vous suggérez que cela présente des inconvénients.

14voto

harvey Points 2687

Il existe deux principaux concurrents pour les applications python sur Android

Chaquopy

https://chaquo.com/chaquopy/

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

Beeware (boîte à outils de widgets Toga)

https://pybee.org/

Il s'agit d'un transpilateur multi-cibles, qui prend en charge de nombreuses cibles telles qu'Android et iOS. Il utilise une boîte à outils de widgets génériques (toga) qui correspond aux appels de l'interface 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, permet de diffuser les éléments de base sur plusieurs plateformes. Si vous avez des conceptions de base, et un désir d'étendre à d'autres plates-formes, cela devrait bien fonctionner pour vous.

D'autre part, Chaquopy est beaucoup plus précis dans sa mise en correspondance de l'API python avec Android. Il vous permet également de mélanger en Java, ce qui est utile si vous souhaitez utiliser du code existant provenant d'autres ressources. Si vous avez des objectifs de conception stricts, et que vous voulez principalement cibler Android, c'est une bien meilleure ressource.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X