Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Мобильное приложение на Python c kivy/buildozer...

Мобильное приложение на Python c kivy/buildozer — ключ к успеху

Владислав Шашков (Сбербанк) @ MoscowPython Meetup 53
"Как известно, на Python можно написать практически что угодно: веб- и настольные приложения, игры, скрипты автоматизации, комплексные системы расчёта, хранимые процедуры СУБД, IoT, ML и многое другое. И чем бы кто ни занимался, рано или поздно возникнет потребность сделать дружелюбный фронт. А значит, реальный опыт создания мобильного приложения на Python будет интересен многим. Тем более что там есть подводные камни — если о них знать, можно сэкономить много времени. Моя история будет интересна не только разработчикам, но и продуктологам. Из собственного опыта берусь утверждать, что новые продуктовые идеи уже не продаются в виде презентаций и кликабельных прототипов, а продаются в виде работающего сервиса. Быстро и эффективно это получается делать на Python".
Видео: http://www.moscowpython.ru/meetup/53/mobile-app-with-kivy/

Moscow Python Meetup

February 22, 2018
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Хорошая новость! Python и мобильные приложения дружат!  https://kivy.org (развивается

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

    kivy, python-for-android…  Стоит победить «готовый» образ с buildozer’ом.
  3. 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 и все такое.
  4. UIX (Widgets & Layouts)  Виджеты (Widgets) - это кнопки,

    слайдеры, списки и т. д. Виджеты получают События.  Макеты (Layouts) используются для позиционирования виджетов на экране.
  5. Подготовка телефона Включить режим разработчика на своем телефоне. Пункт «Для

    разработчиков» активируется в разделе НАСТРОЙКИ / О ТЕЛЕФОНЕ / НОМЕР СБОРКИ. По последнему пункту тапаем 5 раз. После этого в разделе НАСТРОЙКИ появится пункт «Для разработчиков» Но это неточно)
  6. Работа с платформой Возможности библиотеки 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 +
  7. 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
  8. 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
  9. Спасибо за внимание Об авторе: Шашков Владислав АЛФ, планирование расходов

    ПАО Сбербанк vladshashkov@mail.ru 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