L’ecosistema Python ha una vasta gamma di librerie che coprono quasi tutti gli aspetti dello sviluppo software. Ciò che è particolarmente interessante è che alcune di queste librerie includono anche strumenti per la compilazione di Python in codice nativo per piattaforme mobili specifiche come iOS e Android. Sì, hai sentito bene! È possibile utilizzare Python per creare applicazioni mobili native.
Perché Python per lo sviluppo mobile?, Python è ben noto per la sua leggibilità e facilità d’uso, che può tradursi in uno sviluppo più veloce – un enorme vantaggio nel mercato della telefonia mobile in cui la velocità di mercato è fondamentale per guadagnare e mantenere quote di mercato. D’altra parte, né Android né iOS supportano le lingue interpretate, il che significa che non possono eseguire in modo nativo le app Python. È qui che un certo numero di framework colmano il divario per consentire alle app Python di essere eseguite su dispositivi mobili con un aspetto nativo.,
In questo tutorial, ci sarà:
- Identificare i framework più popolari per lo sviluppo mobile multipiattaforma in Python
- Imparare a creare una semplice applicazione per iOS utilizzando framework Python
- Comprendere i pro ei contro di utilizzare un framework Python contro iOS nativo o strumenti Android
Cominciamo.
Framework mobili multipiattaforma per Python
Quando si tratta di sviluppare applicazioni mobili multipiattaforma che supportano entrambe le piattaforme Android e iOS utilizzando Python, ci sono due scelte principali: Kivy e BeeWare.,
Kivy
Kivy si promuove come libreria Python open source per lo sviluppo rapido di applicazioni UI multipiattaforma. Ha un motore grafico costruito su OpenGL, quindi può gestire carichi di lavoro legati alla GPU quando necessario. Ha anche un progetto python-to-Android che consente di portare le applicazioni Python su Android. Ha un toolkit simile per iOS, anche se i pacchetti per iOS possono essere generati solo con Python 2.7 al momento.,
BeeWare
BeeWare è un’altra popolare serie di strumenti che consentono di scrivere applicazioni in Python e cross-compilazione per la distribuzione su diversi sistemi operativi, tra cui mac os, Windows e Linux GTK, così come le piattaforme mobili come Android e iOS.
Ad esempio, esiste uno strumento chiamato briefcase che consente di creare boilerplate di progetto per specifiche applicazioni native. Rubicon-C e Rubicon-Java forniscono anche interfacce bridge per l’utilizzo di Python per chiamare rispettivamente Objective-C e Java binding.,
Il repository principale di BeeWare sembra essere aggiornato regolarmente e fornisce anche supporto commerciale che include formazione, consulenza e supporto tecnico.
Python Applicazione mobile con BeeWare
Per provare il toolkit BeeWare, creiamo un’applicazione mobile di base che fa qualcosa di semplice come la selezione di oggi caffetteria speciale scelto a caso da un elenco pre-popolato.,
Prima di tutto, cominciamo con la creazione di un nuovo python3 ambiente di sviluppo:
$ python3 -m venv .env
si installa la valigetta strumento che ci aiuterà a creare il progetto di codice standard:
$ pip3 install briefcase
poi si usa la valigetta strumento per creare un nuovo progetto:
$ briefcase new
Valigetta fornisce un modo interattivo per aiutarvi a creare il vostro progetto richiedendo informazioni chiave:
al termine, è possibile eseguire il progetto che è stato generato per vedere le app native (Mac o Windows) rappresentazione., In questo caso, un vuoto finestra modale è visualizzato:
$ cd foodTracker$ briefcase dev
Dal momento che vogliamo che la nostra app per funzionare su un dispositivo iOS, è necessario utilizzare il seguente comando all’interno del progetto:
$ briefcase create iOS
A questo punto, abbiamo bisogno di installare applicazioni di Apple strumenti di sviluppo (Xcode) per procedere.
Una volta che Xcode è a posto, possiamo modificare il file src/foodtracker/app.py e sostituisci il boilerplate con il codice che implementa la nostra app “daily special”:
Come puoi vedere, il codice in stile imperativo viene utilizzato per costruire gli elementi della finestra., Abbiamo aggiunto un elemento box principale per contenere tutti gli elementi figlio. Utilizzando composizione, abbiamo aggiunto un pulsante e un’altra finestra di messaggio che contiene un campo di testo in sola lettura. Quando un utente fa clic sul pulsante, verrà visualizzata una ricetta casuale nel campo di testo.
Infine, definiamo la finestra principale e le sue proprietà nelle ultime 3 righe del metodo di avvio.
Ora possiamo costruire il nostro progetto:
$ briefcase build iOS
Per vedere come appare la nostra applicazione sul nostro desktop, possiamo usare Xcode per aprire il progetto ed eseguirlo in un emulatore iOS.,716b536″>
Ecco cosa vedremo quando facciamo funzionare l’emulatore:
si noti che ogni volta che cambiamo il nostro codice, è necessario eseguire i seguenti comandi per vedere i cambiamenti nell’emulatore:
$ briefcase update iOS$ briefcase build iOS$ briefcase run iOS
Python Mobile di Utensileria vs Nativo di Utensileria
Ora che abbiamo visto alcuni esempi di creazione e costruzione di semplici applicazioni mobile con Python, molto importante domanda sorge spontanea:
Perché si dovrebbe investire in scrittura Python applicazioni mobile, invece di utilizzare standard di telefonia mobile linguaggi come Java o Swift?,
Per rispondere a ciò, dobbiamo discutere i pro ei contro dell’utilizzo di Python per lo sviluppo mobile.
Pro:
- Il potere di Python: Possiamo sfruttare la potenza di Python e del suo ecosistema con i framework Kivi e BeeWare. Questo si rivela essere un vantaggio considerevole se tu e il tuo team di sviluppo avete già familiarità con Python e dovete solo portare le vostre applicazioni esistenti su piattaforme mobili.
- Supporto multipiattaforma: ciò significa che scriviamo la nostra applicazione una volta e poi la compiliamo per piattaforme diverse, promuovendo la riusabilità.,
Contro:
- Tempo di compilazione più lento: sembra che il ciclo di sviluppo sia più lungo del solito a causa della necessità di eseguire strumenti aggiuntivi quando si cambia qualcosa nel nostro codice. Tuttavia, questo potrebbe essere migliorato in futuro con integrazioni di utensili o script di automazione.
- Caratteristiche meno supportate: Google e Apple promuoveranno sempre i loro strumenti nativi prima delle alternative. Gli utenti di framework non nativi saranno limitati da qualsiasi versione più recente di (ad esempio) Kivy/BeeWare abbia implementato., Sarà necessario essere in cima alla lista problema corrente e le limitazioni della versione corrente al fine di risolvere eventuali problemi che stai vedendo in modo rapido.
- Incoerenza: poiché non tutte le funzionalità sono supportate, ci saranno incongruenze tra le diverse piattaforme. Ad esempio, potresti avere un layout che viene visualizzato in modo diverso in Android rispetto a iOS. Pertanto, potrebbe essere necessario implementare molte soluzioni alternative per rendere coerenti i progetti.
In generale, l’utilizzo di codice imperativo per descrivere le interfacce utente richiede uno sforzo maggiore., Questi flussi di lavoro sono in genere più facili da implementare all’interno di Xcode di Apple o degli editor integrati di Android Studio.
Tuttavia, ci sono significativi vantaggi di riutilizzo del codice nell’andare con Python per un lavoro come questo, e ci sono molte applicazioni scritte in Python che puoi usare come esempi.
Se la tua organizzazione sta prendendo in considerazione la scrittura di applicazioni in Python e la compilazione incrociata in piattaforme native come iOS o Android, dovresti valutare attentamente i pro e i contro prima di procedere.,
Passi successivi
Per iniziare con i framework di sviluppo mobile in questo post, creare un account gratuito ActiveState Platform e quindi scaricare la nostra build “Sviluppo mobile”. La build contiene una versione di Python 3.7 e i framework in questo post in modo da poterli testare da soli.
NOTA: il modo più semplice per installare l’ambiente è installare prima l’interfaccia a riga di comando (CLI) della piattaforma ActiveState, lo strumento di stato.,
una Volta che lo Strumento è Stato installato, è sufficiente eseguire il comando seguente per scaricare il costruire e installare automaticamente in un ambiente virtuale:state activate Pizza-Team/Mobile-Development
Blog:
La Top 10 Python Framework per lo Sviluppo Web
Top 10 Pacchetti di Python, Ogni Sviluppatore Dovrebbe Imparare