SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Kivy na Androidzie

PyWaw #56 22.03.2016
Marcin Jaroszewski
Python Developer @ DaftCode
Co to Kivy?
• Działa w pythonie 2.7 i 3.3+
• Licencja MIT
Kivy
Biblioteka pythonowa 

do tworzenia wieloplatformowych 

(linux, OS X, windows, Android, iOS) aplikacji GUI.
Środowisko
• Linux
• Python 2.7
Wymagane środowisko
• Android-sdk
• Android-ndk
Przygotowana przez zespół kivy
https://kivy.org/docs/guide/packaging-android-vm.html
Gotowa maszyna wirtualna
• Ubuntu 14.04 64 bit
Samodzielne przygotowanie
Ogólne instrukcje są dostępne na: 

https://kivy.org/docs/installation/installation-linux.html#ubuntu-11-10-or-newer
Ale bywają niespójne…
Zależności
• Python 2.7
python-pip
build-essential
git
python
python-dev
Zależności,

z którymi zadziałało
libportmidi-dev
libswscale-dev
libavformat-dev
libavcodec-dev
zlib1g-dev
ffmpeg ← !
libsdl2-dev
libsdl2-image-dev
libsdl2-mixer-dev
libsdl2-ttf-dev
• Cython==0.23
• Kivy==1.9.1
• Kivy-Garden==0.1.4
• requests==2.9.1
Wymagane

pakiety pythonowe
Możemy uruchomić 

aplikację Hello World w okienku, 

ale jeszcze nie na Androidzie
Pakowanie aplikacji na
Androida
• Kivy Launcher – nie wymaga pakowania
• Dedykowane rozwiązanie → buildozer

https://github.com/kivy/buildozer
• Wykonuje dużo pracy za nas
• pip install git+

https://github.com/kivy/buildozer.git@master
Pakowanie aplikacji
na Androida
Kivy Launcher
• Jest na Google Play
• Można pobrać i zainstalować 

ze strony kivy: https://kivy.org/#download
• Uwaga na wersję 1.9.1
Kivy Launcher
• Android.txt

• Nazwa aplikacji

• Autor

• Orientacja
• /sdcard/kivy/nazwa_aplikacji
• Restart Kivy Launcher
• Jeśli się nie popsuło to działa
Używanie Kivy Launcher
Buildozer
• Wersja alfa.
• Pakowanie aplikacji na iOS – nie działa,
ale może będzie za „jakiś” czas.
• Pakowanie aplikacji na Androida – działa.
Buildozer
• buildozer init – tworzy plik buildozer.spec
• Edycja buildozer.spec
• buildozer android debug
• buildozer android deploy
• buildozer android release
Praca z Buildozer
• Tytuł aplikacji
• Nazwa pakietu
• Pliki/katalogi źródłowe
• Wersja aplikacji + metoda
wersjonowania
• Wymagania (pakiety)
buildozer.spec
• Ikona
• Orientacja aplikacji
(portrait i/lub landscape)
• Uprawnienia
• Wersje SDK/NDK
•[…]
• Sprawdzi wszystkie wymagania.
• Ściągnie odpowiednie wersje SDK i NDK.
• Zbuduje Aplikację – plik apk w wersji debug.
Buildozer android debug
• Zainstaluje poprzednio zbudowany plik apk 

na urządzeniu z androidem.
• Wymaga podłączonego urządzenia w trybie debug.
• Urządzenia z Androidem nie zawsze dają się podłączyć
„bezproblemowo”.
• Adb jest mniej więcej tu: 

/home/user/.buildozer/android/platform/android-sdk-xx/platform-tools
Buildozer android deploy
• Zbuduje aplikację z flagą debug=false.
• Publikacja aplikacji na Google Play
wymaga dodatkowych czynności.
Buildozer android release
Problemy
początkujących
• I/python ( 9658): Android kivy bootstrap done.
__name__ is __main__
• I/python ( 9658): Run user program, change dir
and execute main.py
• I/python ( 9658): No main.pyo / main.py found.
• I/art ( 9658): System.exit called, status: 0
Aplikacja musi posiadać 

plik main.py
W przeciwnym wypadku layout nam się nie
załaduje - „widzę ciemność”
Nazwy pliku kv i klasy aplikacji
muszą sobie odpowiadać
https://github.com/kivy/kivy/issues/3937
Kivy Launcher w wersji 1.9.1 

nie obsługuje orientacji portrait
Podsumowanie
• Ogólnie działa
• Po przyzwyczajeniu, 

nawet przyjemnie się używa
• Powolny rozwój
• Niewielu developerów
• Braki w dokumentacji, przykładach, 

ficzerach
Kivy na Androidzie
Pytania?

Contenu connexe

Similaire à Kivy na Androidzie

Full Stack JavaScript case study na podstawie Maracuya Jukebox audio player
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio playerFull Stack JavaScript case study na podstawie Maracuya Jukebox audio player
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio playerMarek Będkowski
 
Ionic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutIonic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutTomasz Borowski
 
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Mateusz Paprocki, PMP
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...The Software House
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Dariusz Kacban
 
Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012Cezary Walenciuk
 
Jak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzieńJak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzieńPaweł Kondraciuk
 
Delphi 2005. 303 gotowe rozwiązania
Delphi 2005. 303 gotowe rozwiązaniaDelphi 2005. 303 gotowe rozwiązania
Delphi 2005. 303 gotowe rozwiązaniaWydawnictwo Helion
 
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...3camp
 
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnychGanymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnychSKN Shader
 
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsVisual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
ITAD PolSl 2014 - Nowości w .NET 2015
ITAD PolSl 2014 - Nowości w .NET 2015ITAD PolSl 2014 - Nowości w .NET 2015
ITAD PolSl 2014 - Nowości w .NET 2015Michał Dudak
 
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'aUruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'aLaravel Poland MeetUp
 
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...HighSolutions Sp. z o.o.
 
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?Damian Szczurek
 

Similaire à Kivy na Androidzie (20)

Full Stack JavaScript case study na podstawie Maracuya Jukebox audio player
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio playerFull Stack JavaScript case study na podstawie Maracuya Jukebox audio player
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio player
 
Ionic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutIonic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minut
 
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
 
Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012
 
Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...
Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...
Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...
 
Od Zera do Farmera
Od Zera do FarmeraOd Zera do Farmera
Od Zera do Farmera
 
Jak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzieńJak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzień
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Środowisko PWA
Środowisko PWAŚrodowisko PWA
Środowisko PWA
 
Delphi 2005. 303 gotowe rozwiązania
Delphi 2005. 303 gotowe rozwiązaniaDelphi 2005. 303 gotowe rozwiązania
Delphi 2005. 303 gotowe rozwiązania
 
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
 
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnychGanymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
 
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsVisual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
 
ITAD PolSl 2014 - Nowości w .NET 2015
ITAD PolSl 2014 - Nowości w .NET 2015ITAD PolSl 2014 - Nowości w .NET 2015
ITAD PolSl 2014 - Nowości w .NET 2015
 
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'aUruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
 
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
 
WordCamp Poznan 2018
WordCamp Poznan 2018WordCamp Poznan 2018
WordCamp Poznan 2018
 
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
 

Plus de Daftcode

Hacking Employer Branding - case study
Hacking Employer Branding - case study Hacking Employer Branding - case study
Hacking Employer Branding - case study Daftcode
 
Building Engineering Culture
Building Engineering Culture Building Engineering Culture
Building Engineering Culture Daftcode
 
Pair Programming demystified
Pair Programming demystifiedPair Programming demystified
Pair Programming demystifiedDaftcode
 
Lecture #4: What is innovation?
Lecture #4: What is innovation?Lecture #4: What is innovation?
Lecture #4: What is innovation?Daftcode
 
Lecture #2: Results Measurement
Lecture #2: Results MeasurementLecture #2: Results Measurement
Lecture #2: Results MeasurementDaftcode
 
Lecture #1: In 60 days from idea to product
Lecture #1: In 60 days from idea to productLecture #1: In 60 days from idea to product
Lecture #1: In 60 days from idea to productDaftcode
 

Plus de Daftcode (6)

Hacking Employer Branding - case study
Hacking Employer Branding - case study Hacking Employer Branding - case study
Hacking Employer Branding - case study
 
Building Engineering Culture
Building Engineering Culture Building Engineering Culture
Building Engineering Culture
 
Pair Programming demystified
Pair Programming demystifiedPair Programming demystified
Pair Programming demystified
 
Lecture #4: What is innovation?
Lecture #4: What is innovation?Lecture #4: What is innovation?
Lecture #4: What is innovation?
 
Lecture #2: Results Measurement
Lecture #2: Results MeasurementLecture #2: Results Measurement
Lecture #2: Results Measurement
 
Lecture #1: In 60 days from idea to product
Lecture #1: In 60 days from idea to productLecture #1: In 60 days from idea to product
Lecture #1: In 60 days from idea to product
 

Kivy na Androidzie