Перейти к содержимому

Как создать мобильное приложение на python 2

  • автор:

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

Dmitry Kulbeda

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

  1. import kivy.uix.boxlayout
  2. import kivy.uix.textinput
  3. import kivy.uix.label
  4. import kivy.uix.button
  5. class SimpleApp(kivy.app.App):
  6. def build(self):
  7. self.textInput = kivy.uix.textinput.TextInput()
  8. self.label = kivy.uix.label.Label(text=”Your Message.”)
  9. self.button = kivy.uix.button.Button(text=”Click Me.”)
  10. self.button.bind(on_press=self.displayMessage)
  11. self.boxLayout = kivy.uix.boxlayout.BoxLayout(orientation=”vertical”)
  12. self.boxLayout.add_widget(self.textInput)
  13. self.boxLayout.add_widget(self.label)
  14. self.boxLayout.add_widget(self.button)
  15. return self.boxLayout
  16. def displayMessage(self, btn):
  17. self.label.text = self.textInput.text
  18. if __name__ == “__main__”:
  19. simpleApp = SimpleApp()
  20. simpleApp.run()

Метод сборки — это то, что вызывается после запуска приложения, и, таким образом, оно используется для инициализации окна графического интерфейса Kivy. Три виджета создаются, а затем добавляются в макет окна. Метод bind привязывает метод обратного вызова к кнопке, чтобы выполняться при нажатии. Метод обратного вызова называется «displayMessage», который устанавливает текстом ярлыка текст, который введён в виджет текстового ввода . Приложения запускаются, только если файл main.py выполняется, гарантируя, что переменная «__name__» имеет значение «__main__» внутри оператора if. Делать так — хорошая практика. Для запуска приложения необходимо выполнить два шага. Сначала нужно активировать созданную ранее виртуальную среду Kivy с именем «mykivyinstall». Затем, запустить файл приложения «main.py» после перехода в папку, в которой он существует. Эти шаги показаны на рисунке 3.

На рисунке 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-приложении, такую как название и версия. Как создать этот файл?

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

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

Далее перечислены некоторые из важных свойств приложения 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.

11. Используемые источники

Филипс, Дасти. Создание приложений в Kivy: Мобильный софт вместе с Python. “O’Reilly Media, Inc.”, 2014.

Как сделать простые мобильные приложения с помощью Kivy на Python?

Язык программирования Python занимает первое место в списке языков программирования. Одна из многих причин — отличная поддержка библиотек для создания приложений мирового класса. Одной из таких библиотек является Kivy на Python, которая является кроссплатформенной библиотекой и используется для создания приложений с поддержкой multi-touch. Мы подробно узнаем о различных аспектах в этом руководстве по Kivy, в этой статье рассматриваются следующие темы:

  • Что такое Киви?
  1. Киви Архитектура
  • Создание простого приложения с использованием Python Kivy
  • Виджеты Kivy
  • Еще несколько взаимодействий с виджетами
  • Что такое язык киви?
  • Python и язык киви
  • Киви Недвижимость
  • Анимации
  • Панель настроек Kivy
  • Создание Android APK

Что такое Киви?

Kivy — это кроссплатформенная бесплатная библиотека Python с открытым исходным кодом для создания мультитач-приложений с естественным пользовательским интерфейсом. Kivy работает на поддерживаемых платформах, таких как Windows, OS X, Linux, Raspberry Pi, Android и т. Д.

Он распространяется под лицензией MIT и полностью бесплатен для использования. Фреймворк kivy стабилен и имеет хорошо документированный API.

Графический движок построен на OpenGL ES2 с использованием быстрого и современного конвейера. В набор инструментов входит более 20 виджетов, и все они легко расширяемы.

Киви Архитектура

Архитектура Киви состоит из следующего:

  • Основные поставщики и поставщики ввода
  • Графика
  • Основной
  • UIX
  • Модули
  • Входные события
  • Виджеты и диспетчеризация ввода

Давайте посмотрим на простое приложение, использующее Python kivy и несколько основных виджетов, таких как label и FloatLayout.

Создание простого приложения с использованием Python Kivy

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

Вывод:

Kivy Widgets

Давайте посмотрим на различные виджеты kivy. Виджеты kivy можно разделить на следующие категории.

  • Виджеты UX
  • Макеты
  • Сложные UX-виджеты
  • Виджеты поведения
  • Диспетчер экрана

Виджеты UX

  • Этикетка
  • Кнопка
  • Флажок
  • Изображение
  • Слайдер
  • Индикатор
  • Ввод текста
  • Кнопка-переключатель
  • Выключатель
  • видео
Ярлык

Виджет метки используется для визуализации текста. Он поддерживает строки как ascii, так и unicode. Вот простой пример, показывающий, как мы можем использовать виджет метки в нашем приложении.

Вывод:

Кнопка

Кнопка — это метка с действиями, которые запускаются при нажатии кнопки. Для настройки кнопки используются те же параметры, что и для метки. Вот простой пример, показывающий виджет кнопки. Он меняет состояние при нажатии, и мы даже можем добавить свойства или привязать некоторые действия к кнопке.

Вывод:

Флажок

Флажок — это кнопка с двумя состояниями, которую можно установить или снять. Вот небольшой пример, показывающий, как мы можем использовать флажок в приложении kivy.

Вывод:

Изображение

Этот виджет используется для отображения изображения. Когда вы запустите эту программу, она покажет изображение в приложении.

Вывод:

Ползунок

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

Вывод:

Индикатор выполнения

Он используется для отслеживания прогресса любой задачи. Вот простой пример, показывающий, как мы используем индикатор выполнения в приложении kivy.

Вывод:

Ввод текста

Он предоставляет поле для редактирования простого текста.

Вывод:

Кнопка-переключатель

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

Вывод:

Переключить

Это похоже на механический переключатель, который включается или выключается. Вот простой пример, показывающий, как он используется в приложении kivy.

Вывод:

Видео

Он используется для отображения видео файлов или потоков. Вот простой пример, демонстрирующий, как это работает в приложении kivy.

Вывод: будет воспроизведено видео, указанное в ссылке на файл.

Макеты

Виджет макета не выполняет рендеринг, а просто действует как триггер, который определенным образом упорядочивает свои дочерние элементы.

  • Макет якоря
  • Макет коробки
  • Макет поплавка
  • Макет сетки
  • Макет страницы
  • Относительный макет
  • Макет разброса
  • Макет стека
Макет якоря

Он выравнивает дочерние виджеты по границе (слева, справа, вверх, вниз) или по центру. Вот простой пример, показывающий, как макет привязки используется в приложении kivy, когда привязка установлена ​​в центральное положение, мы можем установить ее в разные положения, такие как нижний левый, снизу вверх и т. Д.

Вывод:

Макет коробки

Он размещает дочерние виджеты в горизонтальных или вертикальных полях. В этом примере макет блока хранит виджеты в двух блоках, как показано ниже.

Вывод:

Плавающий макет

Он учитывает свойства size_hint и pos_hint своих дочерних виджетов.

Вывод:

Макет сетки

Он помещает дочерние виджеты в коробку.

Вывод:

Макет страницы

Он используется для создания многостраничного макета.

Вывод:

Относительный макет

Он позволяет вам устанавливать относительные координаты для дочерних виджетов.

В этой программе мы использовали подход на языке KV, он будет рассмотрен позже на этом занятии.

Вывод:

Точечный макет

Он реализован в виде плавающего макета внутри скаттера. Вы можете изменить положение виджетов, используя разброс.

Вывод:

Макет стека

Он размещает виджеты по горизонтали или вертикали и столько, сколько может поместиться.

Вывод:

Теперь, когда мы закончили с макетами, давайте взглянем на виджеты поведения в Kivy.

Виджеты поведения

Эти виджеты не выполняют рендеринга, а действуют в соответствии с графическими инструкциями или взаимодействием (касанием) своих дочерних элементов.

  • Разброс
  • Просмотр трафарета
Разброс

Scatter используется для создания интерактивных виджетов, которые можно вращать и масштабировать двумя или более пальцами в системе мультитач.

Вывод:

Просмотр по шаблону

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

Вывод:

Диспетчер экрана

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

Вывод:

Еще несколько взаимодействий с виджетами

Давайте посмотрим на довольно интересный пример, где мы собираемся связать взаимодействие двух виджетов вместе с помощью метода bind.

Что такое язык киви?

По мере того, как наше приложение становится все более сложным, становится трудно поддерживать конструкцию виджетов и явное объявление привязок. Чтобы преодолеть эти недостатки, альтернативой является язык kv, также известный как язык kivy или kvlang.

Язык kv позволяет создавать дерево виджетов декларативным образом, он позволяет создавать очень быстрые прототипы и гибко вносить изменения в пользовательский интерфейс. Это также помогает, отделяя логику приложения от пользовательского интерфейса.

Как загрузить файл KV?

Есть два способа загрузить файл kv в свое приложение.

  1. Соглашение по названию — kivy ищет файл с тем же именем, что и ваше приложение, начиная со строчной буквы минус «приложение», если он присутствует в имени вашего приложения.

Если это определяет корневой виджет, он будет добавлен в дерево виджетов в качестве основы приложения.

2. Builder — вы можете напрямую указать kivy загрузить файл kv с помощью Builder.

Языковые правила KV

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

Правило класса, объявленное именем класса виджета между ‹›, определяет внешний вид и поведение экземпляра этого класса

Для языка KV есть три конкретных ключевых слова.

  1. приложение: относится к экземпляру приложения.
  2. root: относится к базовому виджету или корневому виджету.
  3. self: относится к текущему виджету.

Давайте рассмотрим простой пример, чтобы понять, как мы используем язык KV в нашем приложении.

Файл .KV

Вывод:

Python и язык киви

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

Давайте попробуем смешать языки Python и Kivy в следующем примере.

Файл .KV

Вывод:

Киви Недвижимость

Свойства — это более простой способ определять события и связывать их вместе. Существуют различные типы свойств для описания типа данных, которые вы хотите обрабатывать.

  • StringProperty
  • NumericProperty
  • BoundedNumericProperty
  • ObjectProperty
  • DictProperty
  • ListProperty
  • OptionProperty
  • Псевдоним
  • BooleanProperty
  • ReferenceListProperty
Как декларировать недвижимость?

Мы должны объявить свойства на уровне класса. Вот простой пример, показывающий, как мы можем использовать свойства в приложении.

Вывод:

Наш CustomBtn не имеет визуального представления и поэтому выглядит черным. Вы можете коснуться / щелкнуть черную область, чтобы увидеть результат на консоли.

Анимации

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

Вывод:

Панель настроек Kivy

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

Вывод:

Создание Android APK

Мы можем использовать инструмент Buildozer, чтобы сделать автономный полнофункциональный APK для Android. В первую очередь следует позаботиться о зависимостях после установки инструмента. Если вы используете kivy в Windows, может быть несколько избыточностей, поэтому лучше использовать Linux или любую другую платформу. Вместо этого вы также можете использовать виртуальную коробку, чтобы сделать APK и для Windows.

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

  1. Первым шагом после установки является создание файла .spec с помощью buildozer. Этот файл будет содержать все параметры, которые вам понадобятся при создании вашего приложения. Следующая команда создаст файл .spec со значениями по умолчанию.

2. После создания файла .spec вам необходимо внести несколько изменений, например заголовок, имя пакета, ориентацию, версию, требования и т. Д.

3. Следующим шагом после внесения всех необходимых изменений в файл .spec является сборка APK. Следующая команда переведет APK-файл Android в режим сборки.

4. Последний аргумент «deploy» указывает buildozer на автоматическую установку APK на ваше устройство после завершения процесса сборки.

На этом мы подошли к концу статьи, где мы узнали, как создавать приложения с поддержкой multi-touch, используя библиотеку kivy python. Я надеюсь, что вы понимаете все, о чем вам рассказали в этом уроке.

Если вы хотите ознакомиться с другими статьями о самых популярных технологиях на рынке, таких как искусственный интеллект, DevOps, этический взлом, посетите официальный сайт Edureka.

Обязательно обратите внимание на другие статьи в этой серии, которые объяснят различные другие аспекты Python и Data Science.

Как написать приложение для Android на Python

Существуют несколько фреймворков для создания мобильных приложений на Python, но наиболее популярными являются Kivy и BeeWare. В этой статье мы рассмотрим процесс создания простого приложения на Android с использованием Kivy.

Установка необходимого ПО

Перед тем, как начать создавать приложение, вам потребуется установить несколько программ. Вот их список:

  • Python 3.6 или новее
  • Kivy
  • Buildozer

Создание приложения на Kivy

Сначала вам нужно написать приложение на Kivy. Вот пример простого приложения:

Конфигурация Buildozer

Теперь, когда у вас есть приложение, вам нужно настроить Buildozer. Для этого создайте файл buildozer.spec в той же директории, что и ваше приложение, и добавьте следующий код:

Сборка приложения

Теперь вы готовы собрать свое приложение. Для этого просто выполните следующую команду в терминале:

После завершения сборки у вас поя

вится файл .apk, который можно установить на устройство с Android.

Отправка приложения на устройство

Чтобы установить приложение на свой Android-смартфон, выполните следующие шаги:

  1. Подключите смартфон к компьютеру через USB.
  2. Включите режим разработчика и разрешите установку приложений из неизвестных источников на своем смартфоне.
  3. Перенесите файл .apk на свой смартфон.
  4. Откройте файл .apk на своем смартфоне, чтобы установить приложение.

Поздравляем! Вы только что создали и установили свое первое приложение на Android, написанное на Python.

Заключение

Python, несмотря на то, что он не является традиционным выбором для разработки мобильных приложений, все же может быть очень полезным инструментом, особенно если вы уже знакомы с этим языком. С помощью Kivy и Buildozer вы можете создать кросс-платформенные приложения, которые будут работать как на Android, так и на iOS.

Создание Android-приложения с помощью Python Kivy

Если вы являетесь Python-разработчиком и подумываете заняться мобильной разработкой, то фреймворк Kivy — это отличный выбор для вас. С помощью Kivy можно создавать платформонезависимые приложения, компилируемые под iOS, Android, Windows, MacOS и Linux.

Содержание

Чтобы понимать, о чем идет речь в этой статье, вы должны быть знакомы с языком Python. Давайте начнем!

Начало работы с Kivy

Во-первых, вам понадобится новая директория для вашего приложения. Убедитесь, что на вашей машине установлен Python, и создайте новый файл Python. Далее в терминале необходимо установить модуль Kivy. Чтобы избежать конфликтов пакетов, давайте сделаем это в виртуальным окружении:

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

Установка Киви

Установка Киви

В нашей рабочей директории в файле main.py нам нужно импортировать модуль Kivy и указать, какую версию мы хотим получить. Можно использовать Kivy v2.0.0, но если у вас смартфон старше Android v8, то я рекомендую использовать v1.9.0. Во время сборки можно поработать с разными версиями, чтобы увидеть разницу в возможностях и производительности.

Чтобы указать версию, добавьте ее номер сразу после строки import kivy следующим образом:

Создание класса RandomNumber

Теперь создадим класс, который будет определять наше приложение. Я назову его RandomNumber . Этот класс будет наследовать класс App из Kivy. Поэтому необходимо импортировать приложение, добавив from kivy.app import App .

В класс RandomNumber необходимо добавить метод build . Чтобы вернуть пользовательский интерфейс, мы будем использовать функцию build . Пока что я возвращаю его в виде простой метки. Для этого необходимо импортировать Label с помощью строки from kivy.uix.label import Label :

Теперь скелет нашего приложения готов! Прежде чем двигаться дальше, необходимо инициировать экземпляр класса RandomNumber и запустить его в терминале или IDE, чтобы увидеть интерфейс:

При запуске экземпляра класса с текстом Random Number Generator должен появиться простой интерфейс или окно, выглядящее как на скриншоте ниже:

Простой интерфейс после выполнения кода

Простой интерфейс после выполнения кода

Вы не сможете запустить текст на Android, пока не закончите сборку.

Аутсорсинг интерфейса

Далее нам потребуется способ аутсорсинга интерфейса. Сначала мы создадим файл Kivy в нашем каталоге, который будет содержать большую часть нашей работы по дизайну.

Примечание по именованию файлов

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

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

Подробнее о различных макетах Kivy можно прочитать в руководстве по началу работы.

Применение box layout

Для простоты этого приложения я буду использовать компоновку box. В двух словах, при боксовом расположении виджеты и другие элементы располагаются в одной из двух ориентаций: вертикальной или горизонтальной.

Я добавлю три метки:

  • Для заголовка RandomNumber
  • Для размещения генерируемого случайного числа
  • Кнопка Generate , вызывающая функцию generate

Следует помнить, что эти метки будут располагаться друг над другом.

Мой .kv -файл выглядит так, как показано ниже, но вы можете изменять различные значения в соответствии с вашими требованиями:

Здесь строка 2 задает тип макета, который я использую для своего приложения, а строка 3 — ориентацию, о которой я только что говорил. Остальные строки являются настраиваемыми, поэтому вы можете указать, как должны выглядеть ваши элементы пользовательского интерфейса.

Значения цветов в Kivy

Значения цветов в Kivy не являются обычными значениями RGB — они нормализованы. Для понимания нормализации цвета необходимо знать, что распределение значений цвета обычно зависит от освещенности. Оно зависит от таких факторов, как условия освещения, эффект объектива и другие.

Чтобы избежать этой проблемы, Kivy использует соглашение (1, 1, 1) . Это представление Kivy для RGB (255, 255, 255) . Для преобразования обычных значений RGB в соглашение Kivy вам нужно разделить все ваши значения на 255 . Таким образом вы получите значения в диапазоне от 0 до 1.

Создание остальной части пользовательского интерфейса

В файле main.py оператор импорта Label больше не нужен, поскольку файл Kivy позаботится о вашем пользовательском интерфейсе. Однако необходимо импортировать boxlayout , который будет использоваться в файле Kivy.

В свой основной файл импортируйте BoxLayout и отредактируйте файл main.py так, чтобы в методе build возвращалась функция return BoxLayout() :

Если выполнить приведенную выше команду, то должен появиться простой интерфейс, содержащий заголовок, заполнитель _ и кнопку generate , на которую можно нажать:

Генерируется приложение случайных чисел

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

Не забывайте, что это простой интерфейс, а вы можете сделать свое приложение настолько мощным, насколько захотите. За идеями обязательно обратитесь к документации по языку Kv.

Функция для генерации случайных чисел

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

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

В данной демонстрации я буду использовать диапазон от 0 до 2000. Генерировать случайное число очень просто с помощью функции random.randint(0, 2000) . Мы добавим его в наш код в ближайшее время.

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

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

Чтобы разместить этот метод, необходимо сначала внести изменения в файл .kv . Поскольку класс MyRoot унаследовал box layout , можно сделать MyRoot элементом верхнего уровня в файле .kv :

Обратите внимание, что все спецификации пользовательского интерфейса по-прежнему располагаются с отступами в макете Box Layout .

После этого необходимо добавить к метке идентификатор для хранения сгенерированных чисел, чтобы ими можно было легко манипулировать при вызове функции generate . Необходимо указать связь между id в этом файле и другим идентификатором в основном коде вверху, непосредственно перед строкой BoxLayout :

Строка random_label: random_label в основном означает, что метка с идентификатором random_label будет отображена на random_label в файле main.py, так что любое действие относительно random_label будет отображено на метку с указанным именем.

Теперь можно создать метод генерации случайного числа в файле main.py:

Обратите внимание, как метод класса манипулирует атрибутом text метки random_label , присваивая ему новое случайное число, сгенерированное функцией random.randint(0, 2000) .

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

Теперь класс MyRoot должен выглядеть так, как показано ниже:

Поздравляем! Вы закончили работу с основным файлом приложения.

Ручное тестирование приложения

Осталось только убедиться, что при нажатии на кнопку generate вызывается эта функция. Для этого достаточно добавить строку on_press: root.generate_number() в часть выбора кнопки в файле .kv :

Теперь можно запустить это приложение:

Перед компиляцией нашего приложения для Android у меня есть плохие новости для пользователей Windows. Для компиляции приложения под Android вам потребуется Linux или macOS. Однако не обязательно иметь отдельный дистрибутив Linux — вместо этого можно использовать виртуальную машину.

Для компиляции и генерации полноценного приложения Android в формате .apk мы будем использовать инструмент Buildozer.

Установим Buildozer через терминал, используя одну из приведенных ниже команд:

Теперь мы установим некоторые необходимые для Buildozer зависимости. Я использую Linux Ergo, поэтому буду использовать команды, специфичные для Linux. Выполнять эти команды следует поочередно:

После выполнения указанных команд запустите buildozer init . Вы должны увидеть результат, аналогичный результату на скриншоте:

Успешная инициализация Buildozer

Успешная инициализация Buildozer

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

Если необходимо указать такие параметры, как значок, требования или экран загрузки, то следует отредактировать этот файл.

После внесения всех необходимых изменений в приложение запустите команду buildozer -v android debug из каталога app для сборки и компиляции приложения. Это может занять некоторое время, особенно если у вас медленное устройство.

После завершения процесса в терминале должно появиться несколько логов, один из которых подтверждает, что сборка прошла успешно:

В каталоге bin также должна находиться APK-версия приложения. Это исполняемый файл приложения, который будет установлен и запущен на телефоне:

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

Заключение

Как видите, создать мобильное приложение на Python достаточно просто, особенно, если вы хорошо знакомы с фреймворком или модулем, с которым работаете.

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

Дальше можете ознакомиться с модулем Kivy и его виджетами. Невозможно познать все и сразу. Нужно только найти проект и как можно раньше начать работать. Счастливого кодинга!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *