Python auf Android mit Pydroid 3

Ich habe jetzt endlich eine anscheinend gute Python 3 Implementation für Android gefunden :-))) Für Symbian, das Smartphonebetriebssystem das früher vor allem von Nokia und Sony-Ericsson verwendet wurde, gab es das ja schon seit 2004. Da hatte ich mein erstes Python Programm für mein damaliges Siemens Handy, ein SX1 (das wie die Nokia Handies Symbian mit der S60-GUI verwendete) geschrieben (yep, das war ca. 4 Jahre bevor das erste iPhone erschien, das zunächst noch nicht mal ein Smartphone war; Apps konnte man am ersten iPhone nicht installieren). Die App gibt es sowohl kostenlos (mit Reklame) oder als Pro-Version für 9,99 Euro im Playstore (Lebenszeitlizenz). Ich hab gleich die Proversion gekauft. Dank Corona habe ich das letzte dreiviertel Jahr so viel Geld gespart, dass mich 10 Euro wirklich nicht „jucken”.

Die App heißt Pydroid 3 und enthält eine komplette IDE, d. h. man kann auf dem Handy oder Tablet entwickeln(!). Es gibt auch andere Apps und Entwicklungssysteme mit denen man mit Python für Android entwickeln kann, aber wenn man da die Beschreibung liest, dann schreckt einen das schon ab. Aber vor allem: Mit Pydroid funktionieren sogar Tkinter-Programme :-))) Das habe ich natürlich gleich mit dem „Hello, world!” Programm aus diesem Kurs getestet. Funktioniert, das Programm dreht sich sogar, wenn man das Handy dreht (das hätte ich nicht gedacht).

Viel habe ich noch nicht gemacht, daher hier mal die Screenshots vom „Hello world” (Quellcode und Ansicht im Hoch- und Querformat).

pydroid3Hello01.png pydroid3Hello02.png

pydroid3Hello03.png


Unser Taschenrechner mit GUI auf Android

Nachdem das mit dem „Hello, world” aus dem Android-Kurs so gut geklappt hat, habe ich jetzt mal versucht, ob auch die letzte Version des Tischrechners – wobei auf einem Android-Handy ist es jetzt ja ein Taschenrechner – funktioniert. Tut sie, so viel vorweg. Damit haben wir jetzt tatsächlich ein recht nützliches Programm, das ein paar Sachen kann, die die meisten anderen Taschenrechner für Android nicht können.

Ich habe sowohl den Expression Parser als auch die grafische Oberfläche direkt von der Webseite mittels Copy&Paste in einen Editor (Notepad++) eingefügt. Den Expression Parser habe ich unter dem Namen exprpars.py und die grafische Oberfläche unter dem Namen calcgui.py gespeichert und dann beide Dateien auf mein Handy überspielt (in ein beliebiges Verzeichnis, aber beide in das selbe). ACHTUNG: Unter Android (der Kernel ist ein UNIX-Derivat!) wird meines Wissens zwischen Groß-Kleinschreibung unterschieden, schreiben Sie also besser beide Namen nur mit Kleinbuchstaben. Windows-Benutzer beachten bitte, dass auch die Datei mit der grafischen Oberfläche die Dateiendung .py (und nicht .pyw wie unter Windows) bekommt(!).

So sieht das Ergebnis (im Querformat) aus:

pydroidCalcgui.png

So richtig toll ist das natürlich nicht. Das Bild wird auf meinem 24"-Monitor am PC sogar noch etwas größer dargestellt, als es auf meinem Handy tatsächlich ist. Das ist mit dem Finger fast nicht mehr bedienbar. Außerdem ist die Standard-Tastatur von Android (zumindest die von meinem Handy) für dieses Programm eher ungeeignet. Da gibt es zum Glück im Playstore Abhilfe. Suchen Sie nach Hacker's Keyboard und verwenden Sie diese, wenn Sie mit Pydroid arbeiten. Sogar das automatische Einfügen in die Zwischenablage funktioniert. Aber denken Sie an den Bug von Python/Tkinter, den ich im Kurs beschrieben habe. Sie müssen bevor Sie das laufende Programm beenden, den Inhalt mindestens einmal in ein anderes Programm einfügen, sonst löscht Python/Tkinter diesen Wert wieder aus der Zwischenablage.

Ich bin mir nicht sicher, ob man die Widgets bei Tkinter irgendwie vergrößern kann. Aber prinzipiell ist Tkinter für Touchbedienung eher ungeeignet. Allerdings unterstützt Pydroid auch Kivy; wird mitinstalliert und es ist auch (mindestens) ein Beispielprogramm dabei. Kivy ist auch für „NUI” (Natural User Interface, d. h. Touchbedienung) Oberflächen geeignet.

Leider habe ich mit Kivy noch keine Erfahrungen, aber jetzt wo ich eine Python-IDE für Android habe, werde ich mir das bei Gelegenheit ansehen. Weiteres Problem: Eine App (eine Datei mit Endung .apk, die man unter Android installieren kann oder auch in den Playstore hochladen kann) haben Sie noch nicht. Es gibt Möglichkeiten Apps mit Python (zumindest mit Kivy-NUI) zu erstellen (macht man normalerweise am PC), aber das ist nicht so einfach, wie man zunächst glauben möchte. Zunächst mal können Sie die Programme nur innerhalb von Pydroid starten. Da Pydroid aber gleichzeitig mehrere Dateien (Programme) bearbeiten kann, ist das nicht ganz so tragisch.