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

И это прекрасно, что все меняется. Потому что мириться с ограничениями, значит, ограничивать себя и свою свободу. К примеру, всем известно, что в Москве временная регистрация для граждан РФ требуется в обязательном порядке, если те планируют задержаться в столице на срок свыше 90 дней. И здесь обязательно понадобится собственник для временной регистрации. Без него никуда. Только вот где его брать тем людям, у которых нет друзей и родственников в Москве?

Москва временная регистрация для граждан РФ
Временная регистрация

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

Библиотека Kivy

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

А когда ведется разработка мобильных приложений с помощью Kivy, можно не сомневаться, что на выходе получится достойная утилита. Единственный момент, который тут заслуживает внимания, состоит в кроссплатформенности. Поскольку разработчики склонны упрощать себе задачу. И могут не делать приложение с нуля, к примеру, для iPhone, а просто перенести на iOS готовые шаблоны с пользовательским интерфейсом приложения, разработанного для Android.

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

  • уникальных кнопок;
  • radio button;
  • форм для ввода текстовых уведомлений.

Так что для отображения таких виджетов не используются компоненты управления собственной платформы. А это одновременно радует, т. к. созданная утилита будет нормально работать и на Android, и на iOS. И в то же время печалит, т. к. программы под iOS могут не выглядеть, как утилиты под iOS, и наоборот. Но это не проблема, если разработчики не используют нативный набор доступных инструментов.

Пример кода

BeeWare Project для нативных утилит

Другая популярная библиотека для Python называется BeeWare. Ее функциональность позволяет создавать десктопные и мобильные утилиты. От уже рассмотренного выше фреймворка BeeWare отличается наличием нативных UL-инструментов для соответствующих платформ. В то время как в Kivy опираются на наличие кастомного набора с UL-инструментами.

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

Единственный недостаток заключается в том, что BeeWare еще немного сыроват. Соответственно, придется подстраиваться под изменения алгоритмов API, терпеть возможные ошибки и мириться с отсутствием некоторых нужных функций.

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