2012-01-22 14 views
47

Właśnie zacząłem nurkować w świecie Androida. Mam duże doświadczenie w programowaniu aplikacji w Pythonie, więc szukam dobrej kombinacji "Android + Python" i myślę, że znalazłem ją: Kivy.Kivy dla aplikacji Android

Potrzebuję aplikacji, które są w stanie pobierać i przesyłać treści z Internetu, być może mieć połączenie z komponentem mapy zawartym w systemie Android i innymi rzeczami, by stworzyć ładną aplikację na Androida.

Ale naprawdę nie chcę tracić czasu na coś, co może nie zadziała. Czy ktoś ma jakieś doświadczenie w tworzeniu aplikacji na Androida przy użyciu Kivy? Czy to naprawdę przydatne, proste, możliwe? Czy istnieje lepsza opcja, którą masz na myśli?

+0

Jakie są twoje doświadczenia z Kivy? Czy obsługuje niektóre funkcje Androida, takie jak uzyskiwanie lokalizacji GPS czy czytanie listy kontaktów? Jakieś myśli po tym, jak prawdopodobnie używasz Kivy już od jakiegoś czasu? – Tadeck

+1

@ Tadeck Muszę przyznać, że podobnie jak wielu innych, porzuciłem pomysł wykorzystania Kivy, z powodu złej dokumentacji i prawie nieistniejącej aktywnej społeczności. – juliomalegria

+5

Kivy prawie nie istnieje. Dostaję odpowiedź na moje pytania za każdym razem, gdy pytam ich na swoim kanale IRC. – Joschua

Odpowiedz

3

Mam bardzo małe doświadczenie z tym. Ale wiem, że

SL4A (Scripting Layer For Android) obsługuje również pisanie aplikacji na Androida w Pythonie. Być może warto się nad tym zastanowić, zanim podejmiesz decyzję, czego użyć.

+2

Czytałem, że SL4A pozwala uruchamiać skrypty Pythona w systemie Android, ale nie pozwala tworzyć prawdziwych aplikacji na Androida, czy wiesz coś o tym? i co wiesz o Kivy z twojego małego doświadczenia? – juliomalegria

+0

last Wiedziałem, że nie było sposobu na zawinięcie skryptów Pythona do pliku APK w sl4a. Wydaje się jednak, że Tasker ma możliwość uruchamiania pojedynczych skryptów sl4a (w tym także Pythona) z lub bez wyświetlania danych wyjściowych konsoli. A jeśli tasker jest w stanie to zrobić, wydaje się możliwe, że uda ci się zrobić apk, który zawierał skrypty Pythona i był w stanie uruchomić je w taki sam sposób, jak to możliwe. – FoamyGuy

22

Używam i wnoszę wkład do kivy przez jakiś czas i używam go do dużej aplikacji przeznaczonej na rynek. Chociaż wciąż nie jest tak kompletny jak natywny program (nie ma pewności, czy korzystanie z mapy API systemu Android jest w ogóle możliwe, ale istnieją alternatywy), działa bardzo dobrze, z dobrą wydajnością. Język kv szybkiego prototypowania jest naprawdę fajny.

A jako punkty bonusowe, twoje aplikacje działają również na windows/linux/mac/ios ... (wciąż musimy próbować wejść do sklepu Apple, ale technicznie działa). edytuj: do dziś co najmniej jedna aplikacja kivy została zaakceptowana na rynku jabłkowym, poszukaj "deflectouch", jeśli jesteś zainteresowany.

W przeciwieństwie do SL4A, dostajesz prawdziwą apkę do rozpowszechniania, z kivy oraz bardzo ładnym i zgrabnym interfejsem GUI, dostosowanym do aplikacji wielodotykowych.

+0

Kivy wygląda bardzo dobrze, ma duży potencjał jeśli chodzi o interfejs. Ale co z Androidem API? Czy istnieje sposób, w jaki możesz go użyć (np. Jak w SL4A)? Naprawdę interesuje mnie Kivy, ale nie znalazłem żadnych informacji dotyczących np. odczytywanie danych lokalizacji GPS, tworzenie toastu, czytanie listy kontaktów, a także nie znajdowanie informacji o takich funkcjach niedostępnych w aplikacji Kivy. Czy wiesz coś o tym? – Tadeck

+2

Port android kivy bazuje na pgs4a, więc masz dostęp do tego modułu http://pygame.renpy.org/api.html#module-android to nie jest częścią kivy api, ponieważ nie jest przenośny (tylko dla Androida). – Tshirtman

+0

@tshirtman, Cześć, Dzięki za wideo youtube, które zrobiliście, dało mi to pchnięcie w Kivy podczas próby znalezienia drogi. Widzę, że większość twoich wkładów na StackOverflow jest na Kivy, to świetnie, niedługo będziemy w kontakcie na SO :) – securecurve

12

Wierzę, że KivyMaps jest bardzo podobny do tego, co próbujesz zrobić.

Jeśli unikniesz specyficznego dla platformy systemu operacyjnego Android, to aplikacja powinna działać bez żadnych problemów.

Proponuję również przejrzeć Python for Android, jest to siostrzany projekt Kivy, mający na celu pomóc Ci stworzyć własną dystrybucję Pythona, w tym moduły, które chcesz, i utworzyć apk, w tym python, libs i twoją aplikację. Zwróć szczególną uwagę na swoje natywne wrappery API dla Androida. Projekt jest nowy, więc obsługiwanych jest tylko kilka natywnych interfejsów API, ale w razie potrzeby można uzyskać informacje na temat tworzenia otoki dla interfejsów API usług lokalizacyjnych Androida.

Jeśli chodzi o zewnętrzną bibliotekę map Google, zgadzam się z tshirtman. Nie jestem pewien, w jaki sposób można go użyć, ale jako link KiviMaps powyżej podkreśla istnieją alternatywne podejścia.

1

Kivy to wieloplatformowe środowisko Pythona do programowania NUI. Jest to dobre dla niektórych aplikacji Android do prototypowania. Możesz użyć Kivy Launchera do szybszego testu. Możesz używać biblioteki Pythona do szybkiego tworzenia funkcji. Możesz użyć pyjnius do uzyskiwania dostępu do klas java dla funkcji opartej na języku Java.

Proponuję lekturę książki Kivy Interactive Applications in Python dla początkujących.

Jednak w nieco głębszej głębi powinieneś wiedzieć, jak używać podstawowego widgetu. Ponieważ istnieje pewna niejasna koncepcja.W przypadku płótna jest to inna koncepcja w html5. Reguła i klasa klasowa języka Kivy jest trochę myląca dla początkujących.

W przypadku aplikacji dla systemu Android istnieje kilka trudnych w użyciu nie podstawowych obsługiwanych bibliotek, takich jak Beautiful Soup (znana biblioteka html i xml parser).

Powiązane problemy