2012-01-22 27 views
47

Ho appena iniziato a immergermi nel mondo Android. Ho un sacco di esperienza nella programmazione di app in Python, quindi ho cercato una buona combinazione "Android + Python", e penso di averlo trovato: Kivy.Kivy per app Android

Ho bisogno di creare applicazioni che siano in grado di scaricare e caricare contenuti da Internet, magari qualche connessione con il componente della mappa incluso in Android e altre cose da fare una bella app per Android.

Ma io davvero non voglio sprecare il mio tempo in qualcosa che forse non funzionerà. Quindi, qualcuno ha qualche esperienza nello sviluppo di app per Android usando Kivy? È davvero utile, semplice, possibile? O c'è un'opzione migliore che hai in mente?

+0

Quali sono le tue esperienze con Kivy finora? Supporta alcune funzionalità Android, come ottenere la posizione GPS o leggere l'elenco dei contatti? Qualche idea dopo aver presumibilmente usato Kivy per un po 'ora? – Tadeck

+1

@Tadeck Devo ammettere che, come molti altri, ho rinunciato all'idea di usare Kivy, a causa della scarsa documentazione e della comunità attiva quasi inesistente. – juliomalegria

+5

La kivy non è quasi inesistente. Ricevo una risposta alle mie domande ogni volta che chiedo loro sul loro canale IRC. – Joschua

risposta

3

Ho poca esperienza con esso. Ma so che

SL4A (Scripting Layer For Android) supporta anche la scrittura di applicazioni Android con Python. Potrebbe valere la pena esaminarlo un po 'prima di prendere una decisione su cosa usare.

+2

Ho letto che SL4A consente di eseguire script Python in Android ma non consente di creare app Android reali, ne sai qualcosa al riguardo? e cosa sai di Kivy dalla tua piccola esperienza? – juliomalegria

+0

ultimo sapevo che non c'era un modo per avvolgere i tuoi script Python in un file apk all'interno di sl4a. Tuttavia sembra che Tasker abbia la possibilità di lanciare script di sl4a individuali (compresi quelli di python) con o senza mostrare l'output della console. E se tasker è in grado di farlo, sembra possibile che tu possa in qualche modo creare un'apk che contenga gli script python e sia in grado di avviarli nello stesso modo che può farlo il tasker. – FoamyGuy

22

Utilizzo e contribuisco a Kivy da un po 'di tempo e lo utilizzo per una grande applicazione destinata al mercato. Anche se non è ancora completo quanto lo sviluppo nativo (non sono sicuro che l'utilizzo della mappa API Android sia possibile, ma ci sono alternative), funziona molto bene, con buone prestazioni. Il linguaggio kv per la prototipazione rapida è davvero eccezionale.

E come punti bonus, le tue app funzionano anche su windows/linux/mac/ios ... (dobbiamo ancora provare ad andare su Apple Store, ma tecnicamente funziona). modifica: fino ad oggi è stata accettata almeno un'app kivy sul mercato delle mele, cercare "deflectouch" se si è interrotti.

Contrariamente a SL4A, si ottiene un vero e proprio apk da distribuire, con kivy e un'app per la GUI molto bella e perfetta, adatta per le app multitouch.

+0

Kivy sembra molto buono, ha un grande potenziale per quanto riguarda l'interfaccia. Ma per quanto riguarda le API Android? C'è un modo per usarlo (ad esempio in SL4A)? Sono molto interessato a Kivy, ma non ho trovato alcuna informazione riguardo ad es. leggere i dati sulla posizione GPS, creare un brindisi, leggere l'elenco dei contatti, né ho trovato le informazioni su tali funzionalità non disponibili dall'app Kivy. Sai qualcosa a riguardo? – Tadeck

+2

kivy android port è basato su pgs4a, quindi puoi accedere a questo modulo http://pygame.renpy.org/api.html#module-android non fa parte di kivy api perché non è portabile (solo Android). – Tshirtman

+0

@tshirtman, Ciao, grazie per il video di YouTube che hai realizzato, mi ha dato una spinta in Kivy mentre cercavo di trovare la mia strada. Posso vedere la maggior parte dei tuoi contributi su StackOverflow su Kivy, è grandioso, ci metteremo in contatto presto su SO :) – securecurve

12

Credo che lo KivyMaps sia simile a quello che si sta tentando di fare.

Se si evita il codice specifico della piattaforma non Android, l'applicazione dovrebbe funzionare su Android senza problemi.

Suggerisco di guardare allo Python for Android inoltre, è un progetto gemello di Kivy che mira ad aiutarti a creare la tua distribuzione Python inclusi i moduli che desideri e creare un apk che includa python, librerie e la tua applicazione. In particolare, guarda i suoi wrapper API nativi per Android. Il progetto è nuovo, quindi sono supportate solo poche API native, ma potrebbe darti un'idea su come andare a creare un wrapper per le API dei servizi di localizzazione di Android, se necessario.

Per quanto riguarda la libreria esterna di Google Maps, sono d'accordo con tshirtman. Non sono sicuro di come potrebbe essere usato, ma come evidenzia il link KiviMaps sopra, sono disponibili approcci alternativi.

1

Kivy è un framework Python multipiattaforma per lo sviluppo NUI. È buono per alcune applicazioni Android di prototipazione. Puoi usare Kivy Launcher per un test più veloce. È possibile utilizzare la libreria Python per lo sviluppo rapido delle funzionalità. È possibile utilizzare pyjnius per accedere alle classi java per le funzionalità basate su java.

Ti suggerisco di leggere il libro Kivy Interactive Applications in Python per principianti.

Tuttavia, in una profondità più approfondita, è necessario sapere come utilizzare attentamente il widget di base. Perché c'è qualche concetto di confusione.Per il canvas, è un concetto diverso in html5. La regola e la classe della classe di Kivy sono un po 'confuse per i principianti.

E per l'app per Android, ci sono alcune librerie supportate non di base difficili da usare come Beautiful Soup (famosa libreria di parser html e xml).