Как написать приложение для андроид на python
Перейти к содержимому

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

Как Python используется в разработке мобильных приложений

До определенного времени о разработке приложений под Android на языке Python не могло быть и речи. Однако энтузиасты все же смогли приспособить один из лучших языков программирования, который в основном используется для веб-разработки, к индустрии мобильных приложений. И хотя большинство предпочитает использовать в мобильной разработке другие языки, без Python многие приложения просто не смогли бы нормально работать. Для Android чаще пишут на Java, C#, C++ или Kotlin, а для iOS — на Swift или Objective-C, но за ними, как правило, «стоит» Python.

Область применения «Питона» не ограничивается только веб-разработкой

Успейте принять участие в любом курсе онлайн-школы SkillFactory со скидкой 50% по промокоду Android специально для читателей AndroidInsider.ru. Промокод действует до 30.09 и не суммируется с другими акциями.

Python в мобильных приложениях

За примером далеко ходить не надо. Например, самый популярный фотосервис Instagram был написан на Objective-C, однако его серверная часть полностью во власти Python. А без нее, открывая приложение, вы бы просто видели белый экран, поскольку фотографии не смогли бы загрузиться с сервера (как и другие пользователи не смогли бы выложить новое фото). Язык также распространен в Facebook, Yahoo, Red Hat, Dropbox, Pinterest, Quora, Mail.ru и Яндексе.

Со временем разработчики стали создавать полноценные мобильные приложения на Python. Это стало возможным благодаря двум фреймфоркам — Kivy и BeeWare. Первый представляет собой библиотеку Python с открытым исходным кодом, которая используется для разработки кроссплатформенных приложений. Она позволяет писать приложения с графическим интерфейсом на чистом Python, которые работают на основных платформах — от Windows и Android до iOS и macOS.

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

BeeWare позволяет писать нативные Python-приложения для Android

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

  • Battlefield 2;
  • World of Tanks;
  • Civilization IV;
  • EVE Online.

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

Да, и здесь не обошлось без Python

Где еще используется Python

Несмотря на то, что этот язык можно использовать для разработки под Android или iOS, наибольшую популярность он все же получил в веб-разработке. Это очень удобный язык — он не компилируется, то есть до запуска представляет из себя обычный текстовый файл. Кода с ним требуется меньше, выглядит он почти как обычные предложения на английском языке. По этой же причине Python очень популярен среди новичков.

Если у вас давно есть желание попробовать себя в программировании, лучше начать именно с него. В Сети есть различные курсы, которые в этом помогут — одним из лучших считается курс «Fullstack веб-разработчик на Python» от онлайн-школы SkillFactory. Школа отличается гибким подходом к обучению, позволяет заниматься из любой точки планеты (что особенно актуально в условиях пандемии), а также предоставляет все необходимые материалы для обучения. Контроль за выполнением заданий осуществляют менторы — профессиональные программисты, которые работают в крупных IT-компаниях.

Во время обучения Python уделяется особое внимание

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

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

Как разрабатывать на Python под Android

В последнее время появляется большое количество ресурсов по разработке на 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.

24–30 июня, Онлайн, Беcплатно

В качестве простого примера приведем программу, которая заставит телефон вибрировать на протяжении 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, которая предназначена для этого, но эти возможности могут быть расширены еще больше в ближайшем будущем. И если вы заинтересовались описанными выше проектами, то самое время присоединиться к нашей команде!

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

Создание приложений на Android, iOS

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

Содержание

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

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

  • Работа с виджетами Kivy;
  • Планировка UI и лейауты;
  • Добавление событий;
  • Использование языка KV;
  • Создание приложения-калькулятора;
  • Упаковка приложения для iOS, Android, Windows и macOS.

Разбор данного руководства предполагает, что читатель знаком с объектно-ориентированным программированием. Для введения в курс дела можете просмотреть статью об Объектно-ориентированном программировании (ООП) в 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.

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

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