Python для Android: Как начать делать кроссплатформенные приложения с Kivy. Часть первая
Перевод статьи Ahmed Gad: Python for Android: Start Building Kivy Cross-Platform Applications
В этом руководстве приведены шаги, необходимые для создания кроссплатформенного приложения для Android с использованием Python-фреймворка Kivy и Linux Ubuntu. Перед началом установки и запуском Kivy необходимо установить его зависимости. Большая часть времени уйдёт на подготовку рабочей среды Kivy путем установки библиотек, необходимых для его работы. В этом уроке Kivy будет установлен в виртуальной среде.
Используемой платформой будет Linux Ubuntu 18.04 с Python 3.6.5. При запуске Kivy на разных платформах появляются некоторые различия. Чтобы иметь возможность устанавливать библиотеки, перемещаться по каталогам ОС, копировать/удалять/извлекать файлы, запускать скрипты Python, читатель должен иметь базовое представление о командах терминала Linux и Python.
Это руководство имеет следующие разделы:
- Введение
- Установка зависимостей Kivy
- Создание виртуальной среды для установки Kivy
- Установка Cython
- Установка Kivy
- Импорт Kivy
- Создание простого приложения Kivy
- Установка Buildozer
- Создание файла buildozer.spec
- Создание приложения для Android с помощью Buildozer
- Используемые источники
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.
ahmed-gad@ubuntu:~$ sudo apt install -y \python-pip \build-essential \git \python3 \python3-dev \ffmpeg \libsdl2-dev \libsdl2-image-dev \libsdl2-mixer-dev \libsdl2-ttf-dev \libportmidi-dev \libswscale-dev \libavformat-dev \libavcodec-dev \zlib1g-dev \libgstreamer1.0 \gstreamer1.0-plugins-base \gstreamer1.0-plugins-good
3. Создание виртуальной среды для установки Kivy
После подготовки зависимостей Kivy мы можем начать установку самого Kivy, создав его виртуальную среду. Нет необходимости использовать виртуальную среду для запуска Kivy, но есть рекомендация отделить Kivy от других уже существующих проектов.
Перед началом создания виртуальной среды мы должны убедиться, что инструменты, необходимые для ее создания, уже установлены и обновлены. Следующие команды гарантируют, что инструменты virtualenv и setuptools уже существуют и обновлены.
ahmed-gad@ubuntu:~$ sudo pip install --upgrade pip virtualenv setuptools
virtualenv используется для создания изолированной среды Python. Для получения дополнительной информации о преимуществах виртуальной среды вы можете посетить страницу https://virtualenv.pypa.io/en/stable/. setuptools используется для упаковки проектов Python.
После этого мы готовы создать виртуальную среду Kivy. Следующая команда создает среду с названием mykivyinstall.
ahmed-gad@ubuntu:~$ virtualenv --no-site-packages mykivyinstall
Аргумент --no-site-packages используется для изоляции среды от основной установки Python. Это делается для того, чтобы вы могли свободно работать с этим проектом, не затронув другие.
После введения этой команды мы ожидаем получить новую папку в текущем каталоге, названную в соответствии с именем виртуальной среды, как показано на рисунке 1.
В предыдущей команде будет использоваться обычный интерпретатор Python внутри среды. Это может быть Python 2, а мы работаем с Python 3. По этой причине мы могли бы явно указать, какой интерпретатор Python использовать с использованием ключа -p, как в следующей команде:
ahmed-gad@ubuntu:~$ virtualenv --no-site-packages -p /usr/bin/python3 mykivyinstall
После создания виртуальной среды мы можем активировать её, чтобы начать установку Kivy. Она может быть активирована следующей командой.
ahmed-gad@ubuntu:~$ . mykivyinstall/bin/activate
Точка (.) в предыдущей команде представляет собой встроенную команду, которая выполняет содержимое файла, переданного в качестве аргумента. Это синоним источника команды. В результате предыдущая команда идентична этой команде:
ahmed-gad@ubuntu:~$ source mykivyinstall/bin/activate
Командная строка должна измениться после активации виртуальной среды и начать выглядеть следующим образом:
(mykivyinstall) ahmed-gad@ubuntu:~$
4. Установка Cython
Перед установкой Kivy Cython должен быть установлен в такой же среде в соответствии со следующей командой:
(mykivyinstall) ahmed-gad@ubuntu:~$ pip install cython=0.25.2
Обратите внимание, что версия Cython зависит от версии Kivy, которая будет установлена. В данный момент последняя версия Kivy — 1.10.0, и для нее требуется Cython 0.25.2, и именно поэтому она используется в приведенной выше команде. После этого мы готовы к установке Kivy.
5. Установка Kivy
Kivy можно установить с помощью pip в соответствии со следующей командой:
(mykivyinstall) ahmed-gad@ubuntu:~$ pip install kivy
После этой команды ожидается, что Kivy будет загружен и установлен автоматически. Но учтите, что установка Kivy — это трудная часть, потому что существует множество зависимостей, которые являются варьируются в зависимости от используемой машины, платформы и библиотек, которые у вас уже есть и которых нету. Процесс не является простым и прямолинейным, поэтому вы должны искать альтернативные способы решения ошибок установки. Например, Kivy можно установить с помощью wheel-файла или путем клонирования его проекта github в соответствии со следующей командой:
(mykivyinstall) ahmed-gad@ubuntu:~$ pip install git+https://github.com/kivy/kivy.git@master
6. Импорт Kivy
При достижении этого этапа, ожидается, что Kivy уже установлен и успешно работает на вашем компьютере. Мы можем протестировать эту среду, импортировав Kivy, как показано на рисунке 2. Виртуальная среда активирована, Python активирован и Kivy успешно импортирован.
Убедившись, что Kivy работает хорошо, мы готовы создать наше первое приложение Kivy.
На этом конец первой части. Во второй части мы приступим непосредственно к написанию приложения и переносу его на Android-платформу.