- Фреймворки Python для геймдева и мобильной разработки
- BeeWare
- Pyqtdeploy
- Python-for-android
- Ren’Py
- Заключение
- Как разрабатывать на Python под Android
- Авторизуйтесь
- Как разрабатывать на Python под Android
- Python-for-android
- Обращение к Android API с помощью PyJNIus
- Plyer: кроссплатформенное API для платформоспецифичных задач
- Не только ради Kivy
- Python в Mobile development
- Tooltip
- Bottom App Bar
- Backdropr
Фреймворки Python для геймдева и мобильной разработки
В этой статье мы рассмотрим полезные фреймворки Python для создания игр и приложений для мобильных устройств. Некоторые из этих фреймворков также поддерживают десктопные приложения или работают как автономные инструменты для сборки как для десктопных, так и для мобильных устройств. Благодаря этому вы можете использовать одну кодовую базу (с небольшими изменениями) для развертывания приложений на различных устройствах.
Kivy — это бесплатный фреймворк для создания приложений и игр. Имеет открытый исходный код. Kivy позволяет разрабатывать приложения и 2D-игры, совместимые с десктопными и мобильными устройствами. Лицензия фреймворка позволяет создавать приложения для коммерческих целей.
Основные особенности Kivy:
- поддержка мультитач-ввода,
- аппаратное ускорение графического интерфейса
- множество предопределенных GUI-виджетов
- пользовательские виджеты
- собственный уникальный язык дизайна «kv», подходящий для быстрого прототипирования
- возможность создавать пакеты для десктопных операционных систем и мобильных устройств, таких как Android и iOS.
Подробную документацию по Kivy можно почитать здесь. Kivy был разработан для многих дистрибутивов Linux. Его пакеты можно найти в дефолтных репозиториях с помощью диспетчера пакетов. Также вы можете получить последнюю версию Kivy, следуя инструкциям, доступным здесь.
BeeWare
BeeWare – еще один отличный бесплатный фреймворк с открытым исходным кодом, предназначенный для разработки приложений. По сути, он работает согласно концепции «написать один раз – развернуть везде». Вы можете использовать одну и ту же кодовую базу для создания и десктопных, и мобильных приложений.
Кроме того, приложения, разработанные с использованием BeeWare, хорошо интегрируются с разными платформами, сохраняя нативный внешний вид, характерный для платформы.
BeeWare также имеет довольно простые условия лицензирования, поэтому вы можете использовать его для коммерческих проектов.
Основные функции BeeWare включают:
- API для доступа к нативным виджетам графического интерфейса,
- API для доступа к библиотекам, специфическим для конкретных платформ
- возможность развертывания приложений на нескольких платформах.
Вы можете получить доступ к документации BeeWare здесь. Подробные инструкции по установке доступны здесь.
Pyqtdeploy
Pyqtdeploy, в отличии от Kivy и BeeWare, не является фреймворком для разработки приложений. Он предоставляет набор инструментов, позволяющих упаковать приложение PyQt для различных платформ, включая мобильные устройства.
Pyqtdeploy также может упаковывать приложения с графическим интерфейсом, CLI-приложения, а также библиотеки. Его также можно использовать для создания пакетов для Python-приложений , которые не используют библиотеки PyQt. Pyqtdeploy находится под лицензией BSD, что позволяет нам использовать его в коммерческих проектах.
Чтобы узнать больше о методах упаковки Pyqtdeploy и процессе развертывания, просмотрите онлайн-документацию, которая доступна здесь. Подробные инструкции по установке можно найти здесь.
Python-for-android
Python-for-android или p4a – это набор инструментов, которые можно использовать для создания Python-приложений для платформы Android.
Этот фреймворк имеет надежный набор инструментов для сборки, позволяющий создавать файлы «apk», которые вы можете опубликовать в Play Store.
Python-for-android в основном разрабатывался как упаковочная утилита для приложений Kivy. Однако теперь он значительно вырос и позволяет упаковывать и другие приложения на основе Python.
Основные функции Python-for-android включают поддержку создания пакетов для нескольких архитектур, рецепты сборки, поддержку упаковки приложений, разработанных с использованием библиотек SDL2, и многое другое.
Вы можете узнать больше о методах упаковки здесь. Инструкции по установке доступны здесь.
Ren’Py
Ren’Py – это ещё один бесплатный инструмент с открытым исходным кодом, который можно использовать для разработки визуальных романов как для компьютеров, так и для мобильных устройств (Android и iOS).
Основанный на Python, Ren’Py имеет графический инструмент управления проектами. Также в нем можно найти утилиты командной строки для разработки собственных игр. Более того, вы можете использовать данный инструмент для создания различных симуляторов и ролевых игр при помощи встроенной системы сценариев.
К другим основным функциям Ren’Py можно отнести API управления активами и API диалоговых скриптов. Кроме того, он поддерживает «мультитач», автосохранение и быструю перемотку вперед, перемотку и пропуск сцен, предопределенные и настраиваемые анимацию и переходы и т. д.
Официальная документация по Ren’Py доступна здесь. Вы можете установить его на свой компьютер, следуя инструкциям, которые можно найти здесь.
Заключение
Python – чрезвычайно универсальный язык программирования с огромной библиотекой встроенных модулей. Его можно использовать для разработки приложений практически под любой тип требований, для любой области. К сожалению, в сфере мобильной разработки Python не очень популярен. Здесь он не достигает тех высот, которые доступны другим языкам. Фреймворков Python для создания игр и мобильных приложений очень мало. Но все же они есть. И именно о них мы рассказали в сегодняшней статье.
Источник
Как разрабатывать на Python под Android
Авторизуйтесь
Как разрабатывать на Python под Android
Рассказывает Александр Тейлор, разработчик проекта Kivy
В последнее время появляется большое количество ресурсов по разработке на Python под Android. Все чаще упоминается предназначенный для этой задачи фреймворк Kivy (и его ответвления), ведь он является одним из самых проверенных временем и надежных проектов в этой области. Тем не менее, одну важную деталь незаслуженно обделяют вниманием — что вообще мы сможем делать после того, как Python станет запускаться на устройстве? Есть ли какие-то ограничения? Все ли библиотеки можно подключать? Возможно ли делать все то же, что и при написании приложения на Java? Данные вопросы волнуют многих, и они рассматриваются и решаются в рамках проекта Kivy. В этой статье я постараюсь рассмотреть наиболее интересные и важные детали.
Python-for-android
Прежде всего давайте посмотрим на то, с помощью чего Python получает возможность работать под Android — инструмент, названный, как ни странно, python-for-android. Его основная функция состоит в том, чтобы создать дистрибутив — папку проекта, содержащую все необходимое для запуска вашего приложения. А точнее, сам интерпретатор, Kivy и библиотеки, от которых он зависит: Pygame, SDL и несколько других. Также дистрибутив включает в себя загрузчик Java, отображающий OpenGL и выступающий в качестве посредника между Kivy и операционной системой. Затем вы добавляете ко всему этому свои скрипты, настройки вроде иконки и имени, компилируете с помощью Android NDK и вуаля — APK с вашим приложением готов!
И это всего лишь базовая процедура, на самом деле сгенерированный пакетный файл может включать (и включает) в себя гораздо больше. Вместе со всем прочим в APK вшивается большая часть стандартной библиотеки, а любой сторонний модуль, написанный на Python, может быть легко добавлен — все так же, как и при разработке десктоп-приложений. Добавка модулей с компилируемыми компонентами тоже не вызывает трудностей, необходимо лишь указать, как их нужно собирать. Как правило, это не представляет собой ничего сложного, достаточно лишь поставить пару галочек перед запуском процедуры сборки, хотя в редких отдельных случаях могут понадобиться дополнительные действия. Python-for-android уже включает в себя указания для компиляции таких популярных модулей, как: numpy, sqlite3, twisted и даже django!
Вышеописанные принципы лишь в общих словах объясняют, как работает python-for-android. В любой момент вы можете получить больше информации на данную тему, заглянув в документацию Kivy. Я рекомендую вам Buildozer — надстройку для python-for-android, предоставляющую собой удобный интерфейс и автоматическое разрешение некоторых зависимостей. Мы стараемся сделать так, чтобы написанная выше цепочка действий использовалась не только в Kivy, но и в других проектах. Основной процесс сборки останется таким же, но нужда в загрузчике Java отпадет, так как он необходим только для поддержки некоторых специфичных нужд фреймворка.
Обращение к Android API с помощью PyJNIus
Взаимодействие с Android API: получение информации с сенсоров, создание уведомлений, вибрация, пауза и перезапуск, да что угодно — важная часть вашего приложения. Kivy за вас позаботится об основном, но многими вещами вы захотите управлять сами. Для этого создан PyJNIus — инструмент, автоматически оборачивающий код на Java в интерфейс Python.
Sportmaster Lab , Санкт-Петербург, Москва, Липецк , От 100 000 до 150 000 ₽
В качестве простого примера приведем программу, которая заставит телефон вибрировать на протяжении 10 секунд:
Если вы знакомы с Android API, то без труда заметите, что код выше очень похож на аналогичный на Java — PyJNIus просто позволяет нам обращаться к тому же API, но прямо из Python. Большая часть Android API может быть вызвана подобным образом, что позволяет достичь того же функционала, что и при разработке на Java.
Главный минус PyJNIus в том, что он требует неплохого понимания структуры Android API, а код выходит громоздким, хотя его эквивалент на Java выглядит точно так же. Для решения этой проблемы Kivy включает в себя Plyer.
Plyer: кроссплатформенное API для платформоспецифичных задач
Проект Plyer ставит себе цель создать простой «питоничный» интерфейс для функций, которые присутствуют на большинстве платформ. Например, код выше легким движением руки превращается в…
Более того, написанный код попытается выполнить свою задачу на всех поддерживаемых Plyer платформах — на данный момент это: Android, iOS, Linux, Windows и OS X (для iOS также существует аналог PyJNIus, называемая PyOBJus). На самом деле, вибрация — не самый лучший пример, потому что сейчас она реализована только для Android, но такие функции как проверка уровня заряда батареи:
— работают как в десктопных, так и в мобильных приложениях, а получение данных с компаса/гироскопа и отправка SMS без проблем реализуются на Android и iOS.
Plyer находится на начальной стадии развития, так что любая помощь в разработке приветствуется. Также, мы участвуем с ним в Google Summer of Code в этом году.
Не только ради Kivy
Все вышеперечисленные инструменты были разработаны для нашего фреймворка, но на самом деле они больше предназначены для разработки под Python в целом. В Plyer мы специально избегаем какой-либо зависимости от Kivy, а PyJNIus нужен лишь для доступа к Android JNI. Искренне надеемся, что эти инструменты станут полезны для любого, кто пишет на Python под Android. Вы уже можете попробовать PyJNIus, используя QPython. Python-for-android больше завязан на взаимодействии с Kivy, но мы будем рады обсудить этот вопрос.
Многое можно реализовать при разработке на Android с помощью Python, несмотря на все различия с Java, которая предназначена для этого, но эти возможности могут быть расширены еще больше в ближайшем будущем. И если вы заинтересовались описанными выше проектами, то самое время присоединиться к нашей команде!
Источник
Python в Mobile development
Ни для кого не секрет, что область применения Python довольно широка: начиная от web-технологий, игровой индустрии и заканчивая проектами NASA. Python работает практически везде: от карманных компьютеров и смартфонов до серверов сети и практически на всех известных платформах, таких как Windows, Linux/UNIX, macOS, Palm OS, Raspberry PI и так далее. Благодаря фреймворку Kivy в 2011 году Python освоил и мобильные платформы в плане разработки приложений под iOS и Android, а в 2015 с помощью библиотеки KivyMD Python научился использовать Material Design.
Библиотека KivyMD — это коллекция виджетов в стиле Material Design, для использования их в кроссплатформенном фреймворке Kivy. В своей предыдущей статье KivyMD — жизнь продолжается, которая была выпущена год назад, я уже рассказывал о форке этой библиотеки, но в issues и в почту часто получал уведомления о том, что заявленые в форке возможности отсутствуют при установке KivyMD из PyPi. И это было действительно так, потому что в PyPi находилась старая версия библиотеки четырехлетней давности из репозитория на GitLab, которая уже не поддерживается автором и, поскольку мы не хотели использовать для своего форка новое имя, типа KivyMD-fork и загружать пакет в PyPi с таким названием, было решено написать автору KivyMD Andrés Rodríguez (@mixedCase_) и попросить его удалить свой пакет. После не долгих переговоров Андре дал нам инвайт в Python Package при условии, что он останется соавтором библиотеки. Так что теперь официальный репозиторий библиотеки находится здесь, а в PyPi доступны самые свежие наши обновления.
Итак, какие изменения в библиотеке произошли спустя год? Благодаря тем людям, которые используют KivyMD в своих проектах, мы устранили довольно много ошибок. Сейчас в репозитории 81 закрытый вопрос. Это если не учитывать того, что львиная доля вопросов решается в Discord онлайн чате поддержки пользователей. В нем существует как русскоязычный так и англоязычный разделы. На данный момент реализованы не все спецификации Material Design, потому что над библиотекой работают практически два человека в свободное от работы время. То, что уже реализовано и то, что хотелось бы реализовать можно посмотреть в этом списке. Он далеко не полный, но вы можете его дополнить, так как доступ на редактирование открыт для всех. Вот несколько новых виджетов:
Tooltip
* пример работы на Mac OS
Bottom App Bar
Слева — пример работы Bottom App Bar из демо приложения Flutter, справа — демонстрация Bottom App Bar библиотеки KivyMD.
Backdropr
Слева — пример работы Backdropr из демо приложения Flutter, справа — демонстрация Backdropr библиотеки KivyMD.
Также мы добавили в библиотеке раздел Studies в котором будем размещать демонстрационные приложения, такие как Shrine, Basil и другие. Пока можно посмотреть, как выглядит приложение Shrine:
А вот тоже самое, но из приложения на Flutter:
Так KivyMD выглядит на Android устройствах. В некоторых местах есть, конечно, проблемы с производительностью, но это касается, скорее самого Kivy. Например, все еще есть проблемы со стартом «тяжелых» библиотек. На нижеследующем видео я привел пример приложения использующего OpenCV в качестве бекенда к Android камере:
В конкретно этом случае уже ничего поделать нельзя, потому что при старте подгружаются не только OpenCV и NumPy, но еще и происходят нативные вызовы для того, чтобы все это связать. Однако грамотно спроектированное мобильное приложение на Kivy и KivyMD стартует довольно быстро. Все это касается мобильных платформ. На десктопе таких проблем нет и KivyMD выглядит там просто шикарно:
В принципе, не имеет значения на какой OS все это будет работать, потому что KivyMD, как и Kivy везде выглядит одинаково. Вы сами должны решать, какой вид будет у вашего приложения и я считаю, что это только плюс.
У нас очень много планов, но рук не хватает. Например, пока нет времени доработать файловый менеджер для десктопных систем, хотелось бы внедрить поддержку iOS виджетов и многое другое… Однако несмотря на все недостатки, количество скачиваний и интерес к библиотеке растет с каждым днем:
Присоединяйтесь к сообществу, если вы любите Python также, как любим его мы!
Источник