Slide 1

Slide 1 text

Мобильное приложение на python c kivy Шашков Владислав https://www.facebook.com/vlad.shashkov [email protected]

Slide 2

Slide 2 text

Хорошая новость! Python и мобильные приложения дружат!  https://kivy.org (развивается с 2011г.)  Графическая библиотека UI кросс-платформенных приложений Android и iOS на Python  Язык разметки KV - «как бы HTML выглядел, если бы он был на python»  KivyMD – набор виджетов в стиле Material Design  Просто создавать приложения со стандартным, нативным дизайном

Slide 3

Slide 3 text

Возможности KivyMD Демонстрация набора виджетов KivyMD На iOS выглядят так же

Slide 4

Slide 4 text

Плохая новость. Надо победить бульдозер!  Не стоит заморачиваться установкой kivy, python-for-android…  Стоит победить «готовый» образ с buildozer’ом.

Slide 5

Slide 5 text

step-by-step к первой .apk 1. Качаем образ buildozer version 2.0, released the 13 May 2017 по ссылкам https://kivy.org/#download 2. В Oracle VM VirtualBox 5.2+ делаем «Импорт конфигурации» из образа. Обязательно добавить ОЗУ VM > 3Гб. 3. Обновляем последовательно: 1. sudo pip install --upgrade wheel 2. sudo pip install --upgrade setuptools 3. sudo pip install --upgrade buildozer 4. sudo pip install --upgrade python-for-android 5. Больше ничего сами не обновляем. 4. Работающее сочетание версий: 1. wheel: 0.30.0 2. Setuptools: 36.6.0 (38.4.1) 3. Buildozer: 0.34 4. python-for-android: 0.6 5. Kivy: 1.10.1.dev (или 1.10) 5. Обновить ОС VM до 17.10 чтобы включить контролер USB. 6. В корневой папке /build/ создаем папку для приложения “HelloWorld”. При первой сборке установятся компоненты, SDK и все такое.

Slide 6

Slide 6 text

Hello world buildozer.spec https://github.com/VladShashkov/kivy_HelloWorld

Slide 7

Slide 7 text

UIX (Widgets & Layouts)  Виджеты (Widgets) - это кнопки, слайдеры, списки и т. д. Виджеты получают События.  Макеты (Layouts) используются для позиционирования виджетов на экране.

Slide 8

Slide 8 text

Hello world Разметка https://github.com/VladShashkov/kivy_HelloWorld

Slide 9

Slide 9 text

Hello world Код https://github.com/VladShashkov/kivy_HelloWorld

Slide 10

Slide 10 text

Запустим на телефоне!

Slide 11

Slide 11 text

Подготовка телефона Включить режим разработчика на своем телефоне. Пункт «Для разработчиков» активируется в разделе НАСТРОЙКИ / О ТЕЛЕФОНЕ / НОМЕР СБОРКИ. По последнему пункту тапаем 5 раз. После этого в разделе НАСТРОЙКИ появится пункт «Для разработчиков» Но это неточно)

Slide 12

Slide 12 text

Подключение телефона Выбрать подключение телефона к виртуальной машине

Slide 13

Slide 13 text

Подключение телефона Разрешить отладку на телефоне

Slide 14

Slide 14 text

Сборка buildozer android debug

Slide 15

Slide 15 text

Установка на телефон adb install bin/HelloWorld-0.1-debug.apk

Slide 16

Slide 16 text

Отладка adb logcat > log.txt

Slide 17

Slide 17 text

Работа с платформой Возможности библиотеки plyer: Platform Android iOS Accelerometer + + Barometer + + Audio recording + Battery + + Brightness + + Call + + Camera (taking picture) + + Compass + + Email (open mail client) + + Flash + + GPS + + Gravity + + IR Blaster + Notifications + Platform Android iOS Text to speech + + Vibrator + + Sms (send messages) + + Unique ID + + Gyroscope + + IR Blaster + Light + Orientation + Proximity + Humidity + Spatial Orientation + + Storage Path + + Temperature +

Slide 18

Slide 18 text

Сканирование штрих-кодов С использованием jnius работа с java-классами https://github.com/VladShashkov/kivy_zbar

Slide 19

Slide 19 text

Garden – сторонние аддоны для Kivy # (list) Application requirements requirements = kivy==master, openssl, futures, requests # (list) Garden requirements garden_requirements = mapview # (list) Permissions android.permissions = INTERNET Например: mapview Подключение в buildozer.spec

Slide 20

Slide 20 text

Release 1. Собираем с параметром release  buildozer android release 2. Готовим ключи  export P4A_RELEASE_KEYSTORE_PASSWD=***  export P4A_RELEASE_KEYALIAS_PASSWD=***  keytool -genkey -v -keystore ./keystores/YOURNAME.keystore -alias pmkey -keyalg RSA - keysize 2048 -validity 10000  export P4A_RELEASE_KEYALIAS=pmkey  export P4A_RELEASE_KEYSTORE=~/keystores/YOURNAME.keystore 3. Подписание apk  kjarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ./keystores/YOURNAME.keystore bin/YOURAPP- 1.0.1-release-unsigned.apk pmkey ***  ~/.buildozer/android/platform/android-sdk-20/build- tools/27.0.1/zipalign -v 4 ./bin/YOURAPP-1.0.1-release- unsigned.apk ./bin/YOURAPP.apk 4. Публикация в Google Play

Slide 21

Slide 21 text

Спасибо за внимание Об авторе: Шашков Владислав АЛФ, планирование расходов ПАО Сбербанк [email protected] https://www.facebook.com/vlad.shashkov +7-985-660-55-67 Пример приложения на Kivy: https://play.google.com/store/apps/details?id=ru.pricemer.pricemer Актуальная документация: https://media.readthedocs.org/pdf/kivy/latest/kivy.pdf Спасибо за поддержку: https://vk.com/kivy_ru