Python su Android

Se non avete mai avuto a che fare con Python o volete vedere gli articoli precedenti che hanno portato a questo articolo,vi consiglio di partire da questo articolo.

Dopo aver provato il linguaggio python non si può non sentirne il bisogno anche su uno smartphon, scrivere una APP per Android è un impegno notevole, bisogna conoscere bene l’ambiente di sviluppo e soprattutto avere tanta pazienza.

Io ho provato, ho anche scritto una app ma ho perso tanti giorni per fare un programma che avrei scritto in pochi minuti. Alla fine ho desistito, mai più Android, ma mi dispiaceva, è comodo poter farsi un programmino al volo quando serve e allora ho cercato un modo per utilizzare il python su Android ed è stato facilissimo, basta scaricare l’app con l’ide per Python 3 e poi copia incolla del codice ed ecco che il giochino che abbiamo fatto qualche giorno fa funziona anche su android.

Per scaricare l’app basta andare su playstore e cercare phyton, l’app è questa:

Locandina

Pydroid 3 – IDE for Python 3

Una volta installata l’app basta avviarla per ritrovarsi sull’editor, a questo punto è possibile copiare il sorgente da qui sotto e inserirlo nell’editor e infine avviare cliccando sul cerchio giallo con il simbolo del “PLAY” che si trova in basso a destra dello schermo. Il sorgente che è molto simile a quello dell’articolo precedente è questo:

from tkinter import *
from random import *

def fattoclick(event):
    global punti,x,y,raggio, larghezza, altezza
    xx = abs(x - event.x)
    yy = abs(y - event.y)
    if (xx < raggio) and (yy < raggio) :
        sfondo.create_oval(x - raggio, y - raggio, x + raggio, y + raggio,fill="#FFFFFF")    
        y = randint(raggio, altezza - raggio) 
        x = randint(raggio, larghezza - raggio)
        sfondo.create_oval(x - raggio, y - raggio, x + raggio, y + raggio,fill="#00FFFF")    
        punti+=1
        p.configure(text="punti "+str(punti))
    
finestra = Tk()
punti = 0
raggio = 50
larghezza = finestra.winfo_screenwidth()    
altezza = finestra.winfo_screenheight()
finestra.bind("<Button-1>", fattoclick)
p = Label(finestra, text="Punti 0")
p.pack()
sfondo = Canvas(finestra, width=larghezza, height=altezza)
sfondo.pack()

y = randint(raggio, altezza - raggio) 
x = randint(raggio, larghezza - raggio)


sfondo.create_oval(x - raggio, y - raggio, x + raggio, y + raggio,fill="#00FFFF")    


finestra.mainloop()


Rispetto al codice sorgente precedente potete notare che il diametro del cerchio non è più una costante ma impostato ad inizio programma, stessa cosa per larghezza e altezza che sono impostate con l’altezza e larghezza dello schermo. Questo ci permette di adattare velocemente le misure impostate con lo schermo del nostro smartphone.

In questo codice ci sono tante cose da ottimizzare, a cominciare dal nome delle variabili, ma anche l’utilizzare una classe per l’app in modo che le variabili o le costanti che utilizziamo siano variabili di classe e quindi visibili e gestibili senza definirle globali.

Questi miglioramenti li vediamo nel prossimo articolo, assieme agli abbellimenti ad aspetto e funzionalità.

Maurizio

Lascia un commento