Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na...

30
Kivy na Androidzie PyWaw #56 22.03.2016 Marcin Jaroszewski Python Developer @ DaCode

Transcript of Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na...

Page 1: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Kivy na AndroidziePyWaw #56 22.03.2016

Marcin Jaroszewski Python Developer @ DaftCode

Page 2: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Co to Kivy?

Page 3: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• Działa w pythonie 2.7 i 3.3+

• Licencja MIT

KivyBiblioteka pythonowa

do tworzenia wieloplatformowych (linux, OS X, windows, Android, iOS) aplikacji GUI.

Page 4: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35
Page 5: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Środowisko

Page 6: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• Linux

• Python 2.7

Wymagane środowisko• Android-sdk

• Android-ndk

Page 7: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Przygotowana przez zespół kivy https://kivy.org/docs/guide/packaging-android-vm.html

Gotowa maszyna wirtualna

Page 8: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• 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

Page 9: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

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

Page 10: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• Cython==0.23

• Kivy==1.9.1

• Kivy-Garden==0.1.4

• requests==2.9.1

Wymaganepakiety pythonowe

Page 11: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Możemy uruchomić aplikację Hello World w okienku,

ale jeszcze nie na Androidzie

Page 12: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Pakowanie aplikacji na Androida

Page 13: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• 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

Page 14: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Kivy Launcher

Page 15: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• Jest na Google Play

• Można pobrać i zainstalować ze strony kivy: https://kivy.org/#download

• Uwaga na wersję 1.9.1

Kivy Launcher

Page 16: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• 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

Page 17: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Buildozer

Page 18: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• Wersja alfa.

• Pakowanie aplikacji na iOS – nie działa, ale może będzie za „jakiś” czas.

• Pakowanie aplikacji na Androida – działa.

Buildozer

Page 19: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• buildozer init – tworzy plik buildozer.spec

• Edycja buildozer.spec

• buildozer android debug

• buildozer android deploy

• buildozer android release

Praca z Buildozer

Page 20: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• 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

•[…]

Page 21: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• Sprawdzi wszystkie wymagania.

• Ściągnie odpowiednie wersje SDK i NDK.

• Zbuduje Aplikację – plik apk w wersji debug.

Buildozer android debug

Page 22: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• 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

Page 23: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• Zbuduje aplikację z flagą debug=false.

• Publikacja aplikacji na Google Play wymaga dodatkowych czynności.

Buildozer android release

Page 24: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Problemy początkujących

Page 25: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• 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

Page 26: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

W przeciwnym wypadku layout nam się nie załaduje - „widzę ciemność”

Nazwy pliku kv i klasy aplikacji muszą sobie odpowiadać

Page 27: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

https://github.com/kivy/kivy/issues/3937

Kivy Launcher w wersji 1.9.1 nie obsługuje orientacji portrait

Page 28: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Podsumowanie

Page 29: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

• 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

Page 30: Kivy na Androidziepywaw.org/.../pywaw-56-aplikacje-kivy-na-androidzie.pdf · 2016-03-23 · Kivy na Androidzie. Pytania? Title: Kivy na Androidzie Created Date: 3/22/2016 3:14:35

Pytania?