Come rendere l'app Android completamente in Python? [chiuso]


105

Vorrei sviluppare un'app Android (piuttosto semplice) da distribuire tramite Play Store. Mi piacerebbe farlo completamente in Python. Tuttavia, la ricerca online non mi ha del tutto chiarito: la maggior parte dei commenti o sono obsoleti (> 1 anno, e penso che potrebbe esserci una migliore integrazione di Python da allora) o parlano di eseguire Python in Android (ad esempio qui ).

Pertanto, cerco informazioni in merito alle domande:

  • è possibile sviluppare un'app completamente in Python - e quali sono gli strumenti per farlo? (Ad esempio, Kivy è raccomandabile?)
  • in caso affermativo: quali sono i migliori ambienti software per implementarlo? (Ho provato senza successo a utilizzare Android Studio ma non sono riuscito a trovare un modo per eseguire codice Python lì.)

Sono abbastanza nuovo nello sviluppo di app e apprezzerei molto qualsiasi possibilità di farlo in Python piuttosto che in Jave ecc., Che non so ancora.

Molte grazie per il tuo aiuto in anticipo.


1
in passato, ho usato kivy e il loro programma buildozer. hanno la documentazione qui kivy.org/docs/guide/packaging-android.html
es

In modo nativo devi usare Java o Kotlin, tuttavia, come altri hanno sottolineato, ci sono "app-builder" di terze parti o framework che puoi usare con Python come PyMob o Kivy.
Dominik Schmidt

7
Ho creato un gioco per Android completamente sviluppato in Python usando Kivy. Si chiama CoinTex disponibile qui su Google Play: play.google.com/store/apps/details?id=coin.tex.cointexreactfast . Il codice sorgente del gioco è disponibile qui su GitHub: github.com/ahmedfgad/CoinTex . Ho anche scritto un libro che verrà pubblicato quest'anno per la creazione di app Android utilizzando Python. Si intitola "Creazione di app Android in Python utilizzando Kivy con Android Studio: con Pyjnius, Plyer e Buildozer Ahmed Fawzy Gad" disponibile qui su Amazon: amazon.com/dp/1484250303 .
Ahmed Gad

1
Non è possibile pubblicare una risposta, ma qui sembra esserci una soluzione : verranno dimostrate diverse tecnologie, comprese le GUI QML basate su PySide che utilizzano la porta Qt di Necessitas e l'approccio basato su Py4A / SL4A, che può essere combinato con WebKit e re di Android -Utilizzare framework web Python.
Basj

Risposte:


112

Per rispondere alla tua prima domanda: sì, è possibile sviluppare un'applicazione Android in puro python , per ottenere questo ti consiglio di utilizzare BeeWare , che è solo una suite di strumenti python , che funzionano molto bene insieme e ti permettono di sviluppare applicazioni native della piattaforma in python.

guarda questo video del creatore di BeeWare che spiega e dimostra perfettamente la sua applicazione

Come funziona

Il linguaggio di implementazione preferito di Android è Java, quindi se vuoi scrivere un'applicazione Android in Python, devi avere un modo per eseguire il tuo codice Python su una Java Virtual Machine. Questo è ciò che fa VOC . VOC è un transpiler: prende il codice sorgente Python, lo compila in CPython Bytecode e quindi trasferisce quel bytecode in bytecode compatibile con Java. Il risultato finale è che i file del codice sorgente Python vengono compilati direttamente in un file Java .class, che può essere impacchettato in un'applicazione Android.

VOC consente inoltre di accedere a oggetti Java nativi come se fossero oggetti Python, implementare interfacce Java con classi Python e classi Java sottoclasse con classi Python. Usando questo, puoi scrivere un'applicazione Android direttamente contro le API Android native.

Dopo aver scritto la tua applicazione Android nativa, puoi utilizzare Briefcase per creare il pacchetto del codice Python come applicazione Android.

Briefcase è uno strumento per convertire un progetto Python in un'applicazione nativa autonoma. Puoi creare pacchetti di progetti per:

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

Puoi controllare questa app nativa per Android Tic Tac Toe scritta in Python, utilizzando la suite BeeWare. su GitHub

oltre agli strumenti BeeWare, dovrai avere un JDK e un SDK Android installati per testare l'esecuzione dell'applicazione.

e per rispondere alla tua seconda domanda: un buon ambiente può essere qualsiasi cosa ti trovi a tuo agio sia che si tratti di un editor di testo e di una riga di comando, o di un IDE, se stai cercando un buon IDE python ti suggerirei di provare Pycharm , lo ha una community edition che è gratuita e ha un ambiente simile a Android Studio, poiché sono stati realizzati dalla stessa azienda.

Spero che questo sia stato utile


2
Sono solo io o VOC è stato abbandonato?
Finanzia la causa di Monica il

2
questo è un vicolo cieco (l'ultima volta che l'ho controllato: dicembre 2018). Uno o più componenti di questa soluzione eccessivamente complessa non funzionano più o non possono essere aggiornati.
Berry Tsakala

2
Solo un aggiornamento per il 2019, ma Kotlin è ora la lingua preferita per lo sviluppo di Android.
DaveTheMinion

3
@Basj Vorrei dire che Beeware sarà sicuramente in giro per un po ', perché solo dando un'occhiata al suo account GitHub scoprirai che è attivamente sviluppato e se vai sul canale Gitter, puoi raggiungono sempre l'intero team, in particolare il dottor Russell (freakyboy) il creatore, e la comunità è piuttosto amichevole, e inoltre c'è stato un tweet molto recente (26 settembre 2019) dal loro account ufficiale che annunciava di aver ricevuto una borsa di studio dal Python fondazione software. Penso che varrebbe la pena il tuo tempo, soprattutto se ti piace il pitone come linguaggio
maroof shittu

1
BeeWare non sembra supportare Android (Java) in questa fase in ogni caso.
Mark Anderson,

15

Potresti provare BeeWare , come descritto sul loro sito web:

Scrivi le tue app in Python e rilasciale su iOS, Android, Windows, MacOS, Linux, Web e tvOS utilizzando interfacce utente ricche e native. Una base di codice. Più app.

Ti dà il desiderio di voler scrivere ora app Android in Python, inoltre ha il vantaggio che non avrai bisogno di imparare ancora un altro framework in futuro se finirai per voler fare qualcosa anche su una delle altre piattaforme elencate.

Ecco il tutorial per le app Android .


5
Hai creato tu stesso un'app con BeeWare?
Berry Tsakala

11

Ci sono due principali contendenti per le app Python su Android

Chaquopy

https://chaquo.com/chaquopy/

Si integra con il sistema di build Android, fornisce un'API Python per tutte le funzionalità Android. Per citare il sito "L'API Android completa e il toolkit dell'interfaccia utente sono direttamente a tua disposizione."

Beeware (toolkit widget di Toga)

https://pybee.org/

Questo fornisce un transpiler multi target, supporta molti target come Android e iOS. Utilizza un widget toolkit generico (toga) che esegue il mapping alle chiamate dell'interfaccia host.

Quale?

Entrambi sono progetti attivi e i loro account GitHub mostrano una discreta quantità di attività recente.

Beeware Toga come tutte le librerie di widget è utile per portare le basi su più piattaforme. Se hai progetti di base e il desiderio di espandere ad altre piattaforme, questo dovrebbe funzionare bene per te.

D'altra parte, Chaquopy è molto più preciso nella sua mappatura dell'API python su Android. Ti permette anche di mixare in Java, utile se vuoi usare codice esistente da altre risorse. Se hai obiettivi di progettazione rigorosi e desideri principalmente scegliere come target Android, questa è una risorsa molto migliore.


10

Android, Python!

Quando ho visto queste due parole chiave insieme nella tua domanda, Kivy è quella che mi è venuta in mente per prima.

Logo Kivy

Prima di arrivare allo sviluppo Android nativo in Java utilizzando Android Studio, avevo provato Kivy . È semplicemente fantastico. Ecco alcuni vantaggi che ho potuto scoprire.


Semplice da usare

Con le basi di Python, non avrai problemi ad impararlo.


Buona comunità

È ben documentato e ha una comunità fantastica e attiva.


Piattaforma multipla.

Puoi sviluppare cose per Android, iOS, Windows, Linux e persino Raspberry Pi con questo unico framework. Open source.


è un software gratuito

Almeno alcuni dei suoi concorrenti (multipiattaforma) vogliono che tu paghi una commissione se desideri una licenza commerciale.


Supporto grafico accelerato

Il motore grafico di Kivy costruito su OpenGL ES 2 lo rende adatto per i software che richiedono un rendering grafico veloce come i giochi.



Ora arrivando alla parte successiva della domanda, non puoi utilizzare Android Studio IDE per Kivy. Ecco una guida dettagliata per impostare l'ambiente di sviluppo.


5
Il supporto di Windows è in ritardo rispetto agli standard di produzione (o anche agli standard hobbisti). Inoltre, metà del mondo non può utilizzarlo a causa della mancanza del supporto RTL.
Berry Tsakala

Perché hai lasciato Kivy e lo hai trasformato in strumenti di sviluppo nativi? Suggerisci che ha alcuni svantaggi.
igoemon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.