Ich möchte eine (ziemlich einfache) Android-App entwickeln, die über den Play Store verbreitet wird. Ich würde das gerne komplett in Python machen. Die Online-Recherche hat mich jedoch nicht ganz aufgeklärt: Die meisten Kommentare sind entweder veraltet (> 1 Jahr alt und ich glaube, dass es seitdem eine bessere Integration von Python gibt) oder sie sprechen darüber Ausführen von Python in Android (z . B. hier ).
Daher suche ich Informationen zu folgenden Fragen:
- Ist es möglich, eine App vollständig in Python zu entwickeln - und welche Tools gibt es dafür? (Ist zB Kivy empfehlenswert?)
- Wenn ja: Was sind die besten Softwareumgebungen, um dies zu implementieren? (Ich habe erfolglos versucht, Android Studio zu verwenden, konnte aber keine Möglichkeit finden, Python-Code dort auszuführen.)
Ich bin ziemlich neu in der App-Entwicklung und würde es sehr begrüßen, wenn ich dies eher in Python als in Jave usw. tun würde, was ich noch nicht weiß.
Vielen Dank für Ihre Hilfe im Voraus.
Antworten:
Um Ihre erste Frage zu beantworten: Ja, es ist möglich, eine Android-Anwendung in reinem Python zu entwickeln. Um dies zu erreichen, schlage ich vor, dass Sie BeeWare verwenden , eine Suite von Python-Tools , die sehr gut zusammenarbeiten und die Entwicklung ermöglichen Plattform native Anwendungen in Python.
Kasse Dieses Video vom Schöpfer von BeeWare , die perfekt erklärt und der Anwendung zeigt ,
Wie es funktioniert
Die bevorzugte Implementierungssprache von Android ist Java. Wenn Sie also eine Android-Anwendung in Python schreiben möchten, müssen Sie eine Möglichkeit haben, Ihren Python-Code auf einer Java Virtual Machine auszuführen. Das macht VOC . VOC ist ein Transpiler - es verwendet Python-Quellcode, kompiliert ihn zu CPython-Bytecode und transpiliert diesen Bytecode dann in Java-kompatiblen Bytecode. Das Endergebnis ist, dass Ihre Python-Quellcodedateien direkt in eine Java-Klassendatei kompiliert werden, die in eine Android-Anwendung gepackt werden kann.
Mit VOC können Sie auch auf native Java-Objekte zugreifen, als wären sie Python-Objekte, Java-Schnittstellen mit Python-Klassen implementieren und Java-Klassen mit Python-Klassen in Unterklassen unterteilen. Auf diese Weise können Sie eine Android-Anwendung direkt für die nativen Android-APIs schreiben.
Sobald Sie Ihre native Android-Anwendung geschrieben haben, können Sie Ihren Python-Code mit Aktenkoffer als Android-Anwendung verpacken.
Aktentasche ist ein Tool zum Konvertieren eines Python-Projekts in eine eigenständige native Anwendung. Sie können Projekte verpacken für:
Sie können diese in Python geschriebene native Android Tic Tac Toe-App mithilfe der BeeWare-Suite überprüfen. auf GitHub
Zusätzlich zu den BeeWare-Tools müssen Sie ein JDK und ein Android SDK installiert haben, um Ihre Anwendung testen zu können.
und um Ihre zweite Frage zu beantworten: Eine gute Umgebung kann alles sein, mit dem Sie vertraut sind , sei es ein Texteditor und eine Befehlszeile oder eine IDE. Wenn Sie nach einer guten Python-IDE suchen , würde ich vorschlagen, dass Sie Pycharm ausprobieren Eine Community-Edition, die kostenlos ist und eine ähnliche Umgebung wie Android Studio hat, da sie von derselben Firma erstellt wurde.
Ich hoffe das war hilfreich
quelle
Sie können BeeWare ausprobieren - wie auf der Website beschrieben:
Gibt an, dass Sie jetzt Android-Apps in Python schreiben möchten, und hat den Vorteil, dass Sie in Zukunft kein weiteres Framework mehr lernen müssen, wenn Sie am Ende auch etwas auf einer der anderen aufgeführten Plattformen tun möchten.
Hier ist das Tutorial für Android Apps .
quelle
Es gibt zwei Hauptkonkurrenten für Python-Apps auf Android
Chaquopy
https://chaquo.com/chaquopy/
Dies ist in das Android-Build-System integriert und bietet eine Python-API für alle Android-Funktionen. So zitieren Sie die Website: "Die vollständige Android-API und das Toolkit für die Benutzeroberfläche stehen Ihnen direkt zur Verfügung."
Beeware (Toga Widget Toolkit)
https://pybee.org/
Dies bietet einen Multi-Target-Transpiler, der viele Ziele wie Android und iOS unterstützt. Es verwendet ein generisches Widget-Toolkit (Toga), das den Host-Schnittstellenaufrufen zugeordnet ist.
Welcher?
Beide sind aktive Projekte und ihre Github-Konten zeigen eine ganze Menge aktueller Aktivitäten.
Beeware Toga ist wie alle Widget-Bibliotheken gut geeignet, um die Grundlagen auf mehrere Plattformen zu übertragen. Wenn Sie grundlegende Designs haben und auf andere Plattformen expandieren möchten, sollte dies für Sie gut funktionieren.
Auf der anderen Seite ist Chaquopy bei der Zuordnung der Python-API zu Android viel präziser. Außerdem können Sie Java einmischen. Dies ist nützlich, wenn Sie vorhandenen Code aus anderen Ressourcen verwenden möchten. Wenn Sie strenge Designziele haben und vorwiegend auf Android abzielen möchten, ist dies eine viel bessere Ressource.
quelle
Android, Python!
Als ich diese beiden Schlüsselwörter in Ihrer Frage zusammen sah, kam mir zuerst Kivy in den Sinn.
Bevor ich mit Android Studio zur nativen Android-Entwicklung in Java kam, hatte ich Kivy ausprobiert . Es ist einfach großartig. Hier sind einige Vorteile, die ich herausfinden könnte.
Einfach zu benutzen
Mit Python-Grundlagen haben Sie keine Probleme, es zu lernen.
Gute Gemeinschaft
Es ist gut dokumentiert und hat eine großartige, aktive Community.
Plattformübergreifend.
Mit diesem einzigen Framework können Sie Dinge für Android, iOS, Windows, Linux und sogar Raspberry Pi entwickeln. Open Source.
Es ist eine freie Software
Zumindest wenige seiner (plattformübergreifenden) Wettbewerber möchten, dass Sie eine Gebühr zahlen, wenn Sie eine kommerzielle Lizenz wünschen.
Beschleunigte Grafikunterstützung
Die über OpenGL ES 2 aufgebaute Grafik-Engine von Kivy eignet sich für Software, die eine schnelle Grafikwiedergabe erfordert, wie z. B. Spiele.
Wenn Sie nun zum nächsten Teil der Frage kommen, können Sie Android Studio IDE für Kivy nicht verwenden. Hier finden Sie eine detaillierte Anleitung zum Einrichten der Entwicklungsumgebung.
quelle