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.