kivy python android приложение


Изучаю python kivy и для себя решил написал маленькое приложение, чтобы разнообразить свое питание. Решил поделиться. Статья рассчитана на новичков в kivy. Приложение занимает около 100 строк кода.

Цель создания велосипеда приложения:

Интро

Можно не читать, в интро всякая лирика.

Пришлось пожить в одной стране, в одной гостинице, где кормили ежедневно яйцами на завтрак и больше ничем, так через месяц начал чесаться. Обращался за медицинской помощью, хотя раньше никогда ничем подобным не страдал. Наученный горьким опытом после этого для себя решил допускать как можно меньше повторений в еде, чтобы ничего не успевало в организме накопиться. Это мой личный опыт, я просто рассказываю, без навязывания. Возможно, нет правил без исключения, наверное, овсянку можно есть и каждый день на протяжении десятков лет.

Скриншоты

image loader

Предположим мой рацион состоит из 50 блюд. Например, сегодня ел омлет. Нажимаю на кнопку, и омлет стал на 50 строку в очереди, а перед ним стоят 49 блюд, которые съем, чтобы опять добраться до омлета. Вот и вся логика приложения. (На скриншотах блюда нагенеренные, все совпадения случайны, к моему реальному рациону отношения не имеющие).

Исходный код и пояснения

Я сознательно не использовал kv файлы, так как код дан в учебных целях, для людей, которые знакомы с python. Все написано на голом python. В пояснениях я не буду останавливаться на объяснении python кода, а сразу перейду к специфическим фишкам Kivy.

Запуск на windows & linux & macos

Принцип для всех операционок одинаковый:

Программа должна заработать.

Сборка apk файла и запуск на телефоне с андроид

Итак, у нас есть файл с кодом программы, написанный на python. Как теперь создать приложение, чтобы его можно было запустить на телефоне с андроидом? Раньше это был достаточно мудреный процесс, требующий навыков и танцев с бубном. Теперь это не проблема.
Вот пошаговая инструкция:

image loader

Как закинуть apk файл на телефон?

Можно, конечно, сделать это как угодно, отправить себе по почте, куда-нибудь выложить, закинуть в телеграмм и т.д., а потом скачать приложение на телефон.

Но существует специализированный инструмент для этого. Включаем на телефоне режим разработчика, подключаем USB-кабелем. Виртуалка должна увидеть, что вы подключили телефон. Дальше устанавливаем adb:

После установки заходим в папку bin и вводим команду

И можно примерно через минутку увидеть на телефоне приложение после того, как увидим
Success в консоли.

Если вдруг приложение падает или ведет себя не так, как ожидалось, то есть вот такая команда для просмотра ошибок

Русское имя приложения

Если вы захотите, чтобы ваше приложение называлось по-русски, например, «Дневник питания», то надо внести изменения в файл:

В тег appName прописывается русское название приложения, эта папка создается после первого запуска buildozer android debug. После того как файл отредактируете, вернитесь назад в папку FoodOptions и запустите buildozer android debug повторно. Файл соберется по-новой. После установки на телефон имя программы будет написано на русском.

О файле buildozer.spec

Вот мой файл с гитхаба: buildozer.spec
Именно этот файл указывает buildozer-у, как именно собрать пакет.

Там множество разных вариаций. Кому интересно, то введите внутри виртуалки команду:

Будет создан дефолтный файл buildozer.spec с кучей комментариев и пояснений. Например, если вы хотите какую-нибудь свою иконку для приложения, то указываете в строке:

свой файл с иконкой. И приложение соберется уже с вашей иконкой.

Если вам надо подгрузить какой-нибудь специфический модуль, который не входит в официальную библиотеку python, то это делается в строке requirements =. В общем, рассказ о файле buildozer.spec может занять целую статью, а то и две.

Загрузка приложения в Google Play

Надо зарегаться, пройти все процедуры, получить ключи. И дальше запускать:

Полученный файл apk-apkname-release.apk заливать в Google Play.

Ссылки

Источник

Kivy — Создание мобильных приложений на Python

DevOps Worm 2021

kivy python android ios

В наши дни каждый разработчик может столкнуться с необходимостью работы над мобильным или веб-приложением на Python. В Python нет встроенных инструментов для мобильных устройств, тем не менее существуют пакеты, которые можно использовать для создания мобильных приложений. Это Kivy, PyQt и даже библиотека Toga от Beeware.

Содержание

Библиотеки являются основными элементами мобильного мира Python. Однако, говоря о Kivy, нельзя игнорировать преимущества данного фреймворка при работе с мобильными приложениями. Внешний вид приложения автоматически подстраивается под все платформы, разработчику при этом не нужно компилировать код после каждой поправки. Кроме того, здесь для создания приложений можно использовать чистый синтаксис Python.

В руководстве будут разобраны следующие темы:

Разбор данного руководства предполагает, что читатель знаком с объектно-ориентированным программированием. Для введения в курс дела можете просмотреть статью об Объектно-ориентированном программировании (ООП) в Python 3.

Принципы работы фреймворка Kivy Python

Kivy был создан в 2011 году. Данный кросс-платформенный фреймворк Python работает на Windows, Mac, Linux и Raspberry Pi. В дополнение к стандартному вводу через клавиатуру и мышь он поддерживает мультитач. Kivy даже поддерживает ускорение GPU своей графики, что во многом является следствием использования OpenGL ES2. У проекта есть лицензия MIT, поэтому библиотеку можно использовать бесплатно и вкупе с коммерческим программным обеспечением.

Во время разработки приложения через Kivy создается интуитивно понятный интерфейс (Natural user Interface), или NUI. Его главная идея в том, чтобы пользователь мог легко и быстро приспособиться к программному обеспечению без чтения инструкций.

Kivy не задействует нативные элементы управления, или виджеты. Все его виджеты настраиваются. Это значит, что приложения Kivy будут выглядеть одинаково на всех платформах. Тем не менее, это также предполагает, что внешний вид вашего приложения будет отличаться от нативных приложений пользователя. Это может стать как преимуществом, так и недостатком, все зависит от аудитории.

Установка Kivy

У Kivy есть множество зависимостей, поэтому лучше устанавливать его в виртуальную среду Python. Можно использовать встроенную библиотеку Python venv или же пакет virtualenv.

Виртуальная среда Python создается следующим образом:

Источник

Kivy. Сборка пакетов под Android и никакой магии

image loader
Во вчерашней статье Python в Mobile development, в которой речь шла о библиотеке KivyMD (коллекции виджетов в стиле Material Design для использования их в кроссплатформенном фреймворке Kivy), в комментариях меня попросили рассказать о процессе сборки пакета для платформы Android. Для многих этот процесс, к сожалению, был и остается чем-то из ряда магического шаманства и не подъёмным для новичков делом. Что ж, давайте разбираться, так ли на самом деле все сложно и действительно ли я маг и волшебник.

image loader

Конечно, мог бы! Итак, вы написали свой код на Python и Kivy. Что нужно для того, чтобы это можно было запустить на Android устройствах? Перейдите в репозиторий KivyMD и вы увидите, что в этой инструкции уже давно прописаны шаги, которые позволят вам собрать APK пакет:

Все! Теперь у вас есть виртуальная машина для сборки APK пакетов для приложений Kivy! Что дальше? Давайте, собственно, займемся сборкой тестового приложения. Создайте в домашнем каталоге вашей виртуальной машины директорию TestKivyMD с пустым файлом main.py:

image loader
Далее откройте файл main.py и напишите код нашего тестового приложения, которое будет использовать библиотеку KivyMD:

Сохраните, откройте терминал в директории с файлом main.py и установите библиотеку KivyMD:

После установки можно протестировать наш код:

Результатом работы скрипта будет экран с Toolbar и одной кнопкой «Hello World»:

image loader
Дальше нам нужно создать файл спецификации buildozer.spec, который должен располагаться в той же директории, что и файл main.py:

image loader
Если вы не закрывали терминал (если терминал был закрыт, откройте его в директории TestKivyMD), введите команду:

Эта команда создаст дефолтный файл спецификации. Откройте его и отредактируйте:

Здесь все понятно поэтому дополнительные комментарии излишни. Почитайте внимательно дефолтную спецификацию, в ней можно указать путь к иконке, пресплеш при загрузке приложения и многое другое. Я оставил лишь то, что нам сейчас нужно для сборки нашего тестового пакета. И, собственно, запускаем процесс сборки командой в терминале:

Можете смело идти на кухню и заваривать кофе, потому что в первый раз процесс загрузки и компиляции библиотек займет очень много времени. Все последующие сборки проходят за 10-20 секунд.

Кофе выпит и самое время заглянуть в терминал:

image loader
Вуаля! Наше приложение построено! Самое время закинуть его на смартфон и запустить:

image loader
Все работает! И оказывается не все так сложно, как казалось.

Также меня спрашивали:

image loader
Ниже я привожу код из статьи Про Flutter, кратко: Основы:

А вот абсолютно тоже самое, но с использованием Kivy и KivyMD:

По-моему, вывод очевиден и не нуждается в моем комментировании…

Надеюсь, был вам полезен. Оставляю опрос на тему «Удалось ли вам построить приложение для Андроид».

Источник

Python для Android: Как начать делать кроссплатформенные приложения с Kivy

688828 f879

В этом руководстве приведены шаги, необходимые для создания кроссплатформенного приложения для Android с использованием Python-фреймворка Kivy и Linux Ubuntu. Перед началом установки и запуском Kivy необходимо установить его зависимости. Большая часть времени уйдёт на подготовку рабочей среды Kivy путем установки библиотек, необходимых для его работы. В этом уроке Kivy будет установлен в виртуальной среде.

Используемой платформой будет Linux Ubuntu 18.04 с Python 3.6.5. При запуске Kivy на разных платформах появляются некоторые различия. Чтобы иметь возможность устанавливать библиотеки, перемещаться по каталогам ОС, копировать/удалять/извлекать файлы, запускать скрипты Python, читатель должен иметь базовое представление о командах терминала Linux и Python.

1. Введение

Kivy используется для создания естественных пользовательских интерфейсов с преимуществами абстракции и модульности. Он отделяет разработчика от ненужных и сложных деталей и просто предоставляет простые API для выполнения сложных задач. В результате вы должны определить, какие бэкенд библиотеки Kivy будет использовать для выполнения своих задач. Мы собираемся использовать SDL ( Simple DirectMedia Layer) — кроссплатформенную библиотеку для низкоуровневого доступа к графическому оборудованию через OpenGL. Помимо SDL, другие библиотеки, такие как GStreamer, используются для обработки аудио и видео. Поскольку такие библиотеки написаны на C, нам также потребуется Cython.

2. Установка зависимостей Kivy

Основываясь на инструкциях по установке Kivy на Linux (https://kivy.org/docs/installation/installation-linux.html), здесь перечислены необходимые библиотеки для установки SDL2 и GStreamer. Обратите внимание, что вы можете выбрать версию Python для использования в Kivy с помощью python и python-dev для Python 2 или с помощью python3 и python3-dev для Python 3. Pip также находится в перечисленном ниже списке для последующего использования в подготовке виртуальной среды Kivy.

3. Создание виртуальной среды для установки Kivy

После подготовки зависимостей Kivy мы можем начать установку самого Kivy, создав его виртуальную среду. Нет необходимости использовать виртуальную среду для запуска Kivy, но есть рекомендация отделить Kivy от других уже существующих проектов.

Перед началом создания виртуальной среды мы должны убедиться, что инструменты, необходимые для ее создания, уже установлены и обновлены. Следующие команды гарантируют, что инструменты virtualenv и setuptoolsуже существуют и обновлены.

virtualenv используется для создания изолированной среды Python. Для получения дополнительной информации о преимуществах виртуальной среды вы можете посетить страницу https://virtualenv.pypa.io/en/stable/. setuptools используется для упаковки проектов Python.

После этого мы готовы создать виртуальную среду Kivy. Следующая команда создает среду с названием mykivyinstall.

Аргумент —no-site-packages используется для изоляции среды от основной установки Python. Это делается для того, чтобы вы могли свободно работать с этим проектом, не затронув другие.

После введения этой команды мы ожидаем получить новую папку в текущем каталоге, названную в соответствии с именем виртуальной среды, как показано на рисунке 1.

После создания виртуальной среды мы можем активировать её, чтобы начать установку Kivy. Она может быть активирована следующей командой.

Точка (.) в предыдущей команде представляет собой встроенную команду, которая выполняет содержимое файла, переданного в качестве аргумента. Это синоним источника команды. В результате предыдущая команда идентична этой команде:

Командная строка должна измениться после активации виртуальной среды и начать выглядеть следующим образом:

4. Установка Cython

Перед установкой Kivy Cython должен быть установлен в такой же среде в соответствии со следующей командой:

Обратите внимание, что версия Cython зависит от версии Kivy, которая будет установлена. В данный момент последняя версия Kivy — 1.10.0, и для нее требуется Cython 0.25.2, и именно поэтому она используется в приведенной выше команде. После этого мы готовы к установке Kivy.

5. Установка Kivy

Kivy можно установить с помощью pip в соответствии со следующей командой:

После этой команды ожидается, что Kivy будет загружен и установлен автоматически. Но учтите, что установка Kivy — это трудная часть, потому что существует множество зависимостей, которые являются варьируются в зависимости от используемой машины, платформы и библиотек, которые у вас уже есть и которых нету. Процесс не является простым и прямолинейным, поэтому вы должны искать альтернативные способы решения ошибок установки. Например, Kivy можно установить с помощью wheel-файла или путем клонирования его проекта github в соответствии со следующей командой:

6. Импорт Kivy

При достижении этого этапа, ожидается, что Kivy уже установлен и успешно работает на вашем компьютере. Мы можем протестировать эту среду, импортировав Kivy, как показано на рисунке 2. Виртуальная среда активирована, Python активирован и Kivy успешно импортирован.

7. Создание простого приложения Kivy

Убедившись, что Kivy работает хорошо, мы готовы создать наше первое приложение Kivy.

Приложение Kivy представляет из себя простой файл Python, который содержит код Kivy. Файл в нашем приложении будет называться « main.py». Причина в том, что при создании мобильного приложения должен быть файл с именем « main.py», который является входом приложения. В приложении, которое будет создано, будет три виджета Kivy, которые представляют собой ввод текста (text input), ярлык (label) и кнопку (button). Эти виджеты располагаются вертикально в окне при использовании коробочной схемы расположения инструментов. Они появятся в соответствии с тем порядком, в котором были добавлены в коробочную схему расположения. Другими словами, текстовый ввод будет первым виджетом, ярлык вторым и кнопка в самом низу. Когда кнопка нажата, текст, введенный в текстовый ввод, будет отображаться в ярлыке. Вот код Kivy этого приложения.

На рисунке 4 показано окно с тремя созданными ранее виджетами. Обратите внимание, что высота окна делится поровну между тремя виджетама так, чтобы каждый виджет имел одну третью высоты окна. В этом примере сообщение « Hello Kivy» вводится в поле текстового ввод. Когда кнопка нажата, сообщение появится в ярлыке.

На этом этапе можно сказать, что приложение Kivy для рабочего стола успешно создано. Теперь мы можем начать упаковку этого проекта как приложения для Android.

8. Установка Buildozer

Инструмент Buildozer используется для упаковки проекта в качестве приложения для Android. После установки Buildozer автоматизирует процесс создания приложения для Android. Чтобы установить Buildozer, необходимо разрешить некоторые зависимости. В дополнение к установленным ранее Cython и git, есть некоторые другие библиотеки, которые должны быть установлены. На основе инструкций по установке взятых с http://buildozer.readthedocs.io/en/latest/installation.html, все зависимости можно скачать и установить с помощью следующих команд Ubuntu:

Buildozer может быть установлен с помощью этой команды. Эта команда гарантирует, что Buildozer будет установлен и обновлен.

После успешной установки Buildozer, давайте подготовим все необходимые файлы, чтобы успешно создать приложение для Android.

9. Создание файла buildozer.spec

Структура нашего проекта показана на рисунке 5. В папке с именем simpleapp размещен файл main.py, созданный ранее. Красота Kivy заключается в том, что этот же файл Python будет использоваться без изменений в приложении для Android. Но есть и другой файл с именем buildozer.spec, который необходим для создания приложения. Этот файл содержит информацию об Android-приложении, такую как название и версия. Как создать этот файл?

1*3hi HheJtTooTly2 eroCg

Файл buildozer.spec может быть сгенерирован с использованием инструмента Buildozer. Измените текущий рабочий каталог на каталог, в котором размещён файл приложения main.py, а затем выполните следующую команду:

Появится сообщение, указывающее, что был создан файл buildozer.spec, как показано на рисунке 6.

1*0K gNJwMcKrlwQvZykndog

Далее перечислены некоторые из важных свойств приложения Android в файле buildozer.spec:

Например, заголовок (title) содержит заголовок приложения, исходный каталог (source directory) ссылается на каталог приложения, который устанавливается в этом случае как текущий каталог, версия приложения, версии Python и Kivy и прочее. Эти поля находятся внутри раздела [ app] файла спецификации. Вы можете проверить спецификации приложения пройдя по этой ссылке http://buildozer.readthedocs.io/en/latest/specifications.html. Вы также можете отредактировать файл спецификации, чтобы изменить все поля, которые, по вашему мнению, требуют редактирования.

После подготовки всех файлов, необходимых для создания Android приложения, давайте наконец его создадим.

10. Создание приложения для Android с помощью Buildozer

Buildozer — хороший инструмент для создания приложения для Android, потому что он готовит среду в соответствии со всеми требованиям по созданию успешного приложения. Эти такие требования такие, как python-for-android, Android SDK, NDK и другие. Внутри каталога приложения его можно создать, используя следующую команду:

На рисунке 7 показан ответ при вводе команды. При создании приложения в первый раз, Buildozer должен загрузить все эти зависимости. Это займет некоторое время, пока они загрузятся и установятся. Потерпите.

После выполнения команды файл APK будет найден в следующем каталоге проекта: /simpleapp/.buildozer/android/platform/build/dists/simpleapp/bin. Файл APK можно перенести на устройство Android для его запуска. Также можно подключить устройство Android к машине, создать, развернуть и запустить приложение, используя одну команду, которая выглядит следующим образом:

На рисунке 8 показан запуск приложения для Android.

Источник

Kivy on Android¶

You can run Kivy applications on Android, on (more or less) any device with OpenGL ES 2.0 (Android 2.2 minimum). This is standard on modern devices; Google reports the requirement is met by 99.9% of devices.

Kivy APKs are normal Android apps that you can distribute like any other, including on stores like the Play store. They behave properly when paused or restarted, may utilise Android services and have access to most of the normal java API as described below.

Package for Android¶

The Kivy project provides all the necessary tools to package your app on Android, including building your own standalone APK that may be distributed on a market like the Play store. This is covered fully in the Create a package for Android documentation.

Debugging your application on the Android platform¶

You can view the normal output of your code (stdout, stderr), as well as the normal Kivy logs, through the Android logcat stream. This is accessed through adb, provided by the Android SDK. You may need to enable adb in your device’s developer options, then connect your device to your computer and run:

You’ll see all the logs including your stdout/stderr and Kivy logger.

You can also run and debug your application using the Kivy Launcher. If you run your application this way, you will find log files inside the “/.kivy/logs” sub-folder within your application folder.

Using Android APIs¶

Although Kivy is a Python framework, the Kivy project maintains tools to easily use the normal java APIs, for everything from vibration to sensors to sending messages through SMS or email.

User contributed Android code and examples are available on the Kivy wiki.

Plyer¶

Plyer is a pythonic, platform-independent API to use features commonly found on various platforms, particularly mobile ones. The idea is that your app can call simply call a Plyer function, such as to present a notification to the user, and Plyer will take care of doing so in the right way regardless of the platform or operating system. Internally, Plyer uses Pyjnius (on Android), Pyobjus (on iOS) and some platform specific APIs on desktop platforms.

For instance, the following code would make your Android device vibrate, or raise a NotImplementedError that you can handle appropriately on other platforms such as desktops that don’t have appropriate hardware::

Plyer’s list of supported APIs is growing quite quickly, you can see the full list in the Plyer README.

Pyjnius¶

Pyjnius is a Python module that lets you access java classes directly from Python, automatically converting arguments to the right type, and letting you easily convert the java results to Python.

Pyjnius can be obtained from github, and has its own documentation.

Here is a simple example showing Pyjnius’ ability to access the normal Android vibration API, the same result of the plyer code above:

This code directly follows the java API functions to call the vibrator, with Pyjnius automatically translating the api to Python code and our calls back to the equivalent java. It is much more verbose and java-like than Plyer’s version, for no benefit in this case, though Plyer does not wrap every API available to Pyjnius.

Android module¶

Python-for-android includes a python module (actually cython wrapping java) to access a limited set of Android APIs. This has been largely superseded by the more flexible Pyjnius and Plyer as above, but may still occasionally be useful. The available functions are given in the python-for-android documentation.

This includes code for billing/IAP and creating/accessing Android services, which is not yet available in the other tools above.

Status of the Project and Tested Devices¶

These sections previously described the existence of Kivy’s Android build tools, with their limitations and some devices that were known to work.

A current technical limitation is that the Android build tools compile only ARM APKs, which will not run on Android devices with x86 processors (these are currently rare). This should be added soon.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • kivi tv приложение для россии
  • kitsune приложение читалка манги