Создание мобильных приложений на Python
Да, вы можете создавать мобильные приложения с использованием Python. Я этого не знал, но я достаточно давно заметил, что наш сайт ранжируется по запросу создание мобильных приложений на Python и мне стало интересно.
Существует несколько инструментов и фреймворков, которые помогут вам создать мобильные приложения на Python. Некоторые популярные варианты:
- Kivy: Kivy – это открытая библиотека Python для разработки многокасательных приложений. Она поддерживает платформы Android и iOS и позволяет создавать одну кодовую базу, которая может работать на обеих платформах. Kivy также имеет богатый набор элементов пользовательского интерфейса и довольно прост в изучении.
- BeeWare: BeeWare – это другой набор открытых инструментов и библиотек для создания мобильных приложений на Python. BeeWare включает набор виджетов, которые являются родными для каждой платформы, что обеспечивает внешний вид и ощущение вашего приложения как родного для Android и iOS. С помощью BeeWare вы можете написать свое приложение один раз и развернуть его на нескольких платформах.
- Chaquopy: Chaquopy – это плагин для Android Studio, который позволяет вам писать приложения для Android на Python. Он позволяет смешивать код Python и Java в одном проекте, что позволяет использовать существующие библиотеки и API Android при написании логики вашего приложения на Python.
Разберем чуть подробнее на примере Kivy. Она предоставляет инструменты и виджеты для разработки интерактивных приложений, работающих на разных операционных системах, таких как Windows, macOS, Linux, Android и iOS. Вот основные аспекты работы Kivy:
- Графический движок: Kivy использует OpenGL ES 2 (или выше) для отрисовки графики, что позволяет создавать аппаратно ускоренные и высокопроизводительные приложения. Он также предоставляет абстракцию от низкоуровневых графических вызовов, что делает работу с графикой проще для разработчиков.
- Интерфейс пользователя: Kivy предоставляет богатый набор виджетов и элементов пользовательского интерфейса (UI) для создания приложений. Виджеты в Kivy адаптивны и могут масштабироваться для различных размеров экрана и разрешений.
- События и ввод: Kivy поддерживает множество входных устройств и источников событий, таких как клавиатура, мышь, мультитач-экраны и другие. Он имеет встроенную систему событий, которая позволяет разработчикам управлять взаимодействием пользователя с приложением.
- Язык Kv: Kivy включает собственный язык разметки под названием Kv, который используется для определения пользовательского интерфейса и его свойств. Язык Kv позволяет разработчикам легко создавать сложные и гибкие интерфейсы с минимальным кодом Python.
- Кросс-платформенность: Kivy позволяет разработчикам создавать одну кодовую базу для приложения, которая будет работать на разных платформах. Это значительно снижает затраты на разработку и поддержку приложения.
Для начала работы с Kivy, вам нужно установить его с помощью pip:
pip install kivy
Затем вы можете создать свое первое приложение на Kivy, используя простой код Python:
from kivy.app import App from kivy.uix.button import Button class MyApp(App): def build(self): return Button(text='Hello, Kivy!') if __name__ == '__main__': MyApp().run()
Этот код создаст простое приложение с кнопкой и текстом “Hello, Kivy!”.
Обратите внимание, что Python может быть не лучшим выбором для всех типов мобильных приложений, особенно если вам требуется высокая производительность или широкое использование специфических для платформы API. В таких случаях вам может потребоваться использовать языки разработки нативных приложений, такие как Kotlin для Android или Swift для iOS. Однако для более простых приложений или прототипов Python может быть подходящим вариантом.
Kivy сам по себе не компилирует код Python в нативный код Android. Вместо этого Kivy использует инструмент под названием Buildozer, который автоматизирует процесс сборки Kivy-приложений для различных платформ, включая Android и iOS. Для Android Buildozer использует другой инструмент под названием Python for Android (Py4A или p4a).
Вот как Kivy и Buildozer работают вместе для компиляции приложения на Android:
- Установка Buildozer: Сначала вам нужно установить Buildozer с помощью pip:
pip install buildozer
- Создание спецификации проекта: Buildozer использует файл спецификации проекта ( buildozer.spec ) для настройки процесса сборки. Вы можете создать этот файл, запустив команду buildozer init в каталоге вашего проекта. Затем откройте файл buildozer.spec и настройте параметры в соответствии с вашим приложением.
- Компиляция приложения: Запустите следующую команду в каталоге вашего проекта, чтобы начать процесс сборки приложения для Android:
buildozer android debug deploy run
Обратите внимание, что весь код Python не компилируется в нативный код, а выполняется во встроенном интерпретаторе Python. Это может привести к более низкой производительности по сравнению с нативными приложениями Android, написанными на Java или Kotlin.
В общем вывод в том, что теоретически можно написать что угодно на чём угодно. Но если это возможно – совсем не значит, что вам следует это делать. Создание мобильных приложений на Python будет использовать несколько слоев и сторонних библиотек и кроме самых простых случаев, наверняка всегда будет работать криво.
Entrepreneur and full-stack web developer capable of multitasking and completing large-scale projects in a short period of time. Founder of moy-razmer.ru and nomadicsoft.io, large experience in e-commerce and various SaaS projects
Какие мобильные приложения можно сделать на python
00:00:00:00
Our Website is Almost Ready
Launch a targeted campaign.
Scale your infrastructure with our simple service.
Learn more |
22 октября
Популярные приложения, написанные на Python
В этой статье мы расскажем, почему Python такой популярный и какие программы и приложения были созданы на нем.
Немного истории и интересных фактов!
Это не новый язык, задумываться о нем начали уже в 80-х годах, а приступили к созданию в 1989. Автором стал Гвидо ван Россум, голландский программист, которого еще прозвали «великодушным пожизненным диктатором» — на протяжении долгого времени он наблюдал за процессом развития языка и оставлял за собой право принимать окончальные решения, когда это необходимо. А назван язык в честь популярного комедийного телешоу «Летающий цирк Монти Пайтона».
На сегодняшний день это один из самых популярных языков программирования на рынке. Он становился «Языком года» по версии TIOBE в 2007, 2010, 2018 и 2020 годах, а в июле 2021 занял третье место по популярности.
Так что будьте уверены, Python собрал вокруг себя огромное сообщество и попасть в него может каждый.
В чем же его преимущества?
Вы легко найдете решение в случае проблемы, скорее всего кто-то уже обсудил ее на форумах. Код довольно просто читается, есть специальные библиотеки под любые цели (NumPy, Pandas, Scikit-Learn и другие) и широкий спектр практического применения:
- веб-разработка;
- анализ данных;
- машинное обучение и искусственный интеллект;
- DevOps;
- разработка игр;
- аудио и видеоприложения;
- бизнес приложения;
- обработка текста, изображений;
- и другие.
Приятным преимуществом станет и довольно высокая зарплата уже на junior-позиции — в Беларуси от 600$.
Что касается проектов, созданных на Python, то многие из них очень популярны среди пользователей. Например, недавний масштабный сбой одного из таких приложений очень активно обсуждали… все? И да, речь про Instagram. Компания была основана в 2010 году, а на сегодня более чем 1 миллиард активных пользователей в месяц обменивается своими фотографиями и видео.
Конечно, стоит отметить, что в проекте применяется множество языков. Но до покупки приложения компанией Facebook, это был веб-сайт, построенный с использованием Django (свободный фреймворк для веб-приложений на языке Python). И несмотря на популярность мобильных приложений, сайт все также работает.
Сотни миллионов подписчиков есть и у потокового сервиса Netflix. Их сайт также написан на Python и имеет сильный механизм по аналитике и построению рекомендаций. Если сезон любимого сериала закончился — вы очень быстро найдете, что еще посмотреть. А компания определит, на создание каких проектов стоит уделить больше внимания.
Не будем уходить далеко от видеоконтента и расскажем вам про музыкальные возможности. Летом 2020 года в Беларуси заработал сервис Spotify, и да, он тоже на Python, как вы могли догадаться 🙂
Здесь язык также активно используется для анализа данных, чтобы в рекомендациях у нас было все самое лучшее и отвечающее нашему музыкальному вкусу.
Будет довольно сложно представить современную жизнь, особенно зумерам, без компании Google. Поисковая система настолько прочно вошла в нашу жизнь, что гуглить стало нарицательным, и мы советуем погулить, даже если сами пользуемся Яндексом.
Забавный факт
представители компании часто негативно смотрят на то, когда их бренд становится именем нарицательным, так было и с гуглом еще в 2000-х, и с ксероксом (в английском языке им удалось побороть это, слово заменилось на photocopier/photocopy).
Вернемся к нашей теме, и да, компания также любит и разрабатывает свои проекты на языке Python. Например, YouTube (где у нас, кстати, есть канал, на котором мы делимся различным IT-контентом, приглашаем экспертов на интервью и многое другое).
К слову, сам создатель языка, Гвидо ван Россум, почти 10 лет проработал в Google. Но в 2012 принял предложение перейти в Dropbox и, как можете догадаться, эта облачная система хранения файлов также использует Python в настольном клиенте. Благодаря применению различных библиотек, компания смогла масштабировать продукт под любое устройство пользователя.
Следующий пример может и не такой популярный среди рядовых пользователей, но будет интересен любителям компьютерных игр — речь о AlphaStar, искусственном интеллекте в игре StarCraft II. Программа была анонсирована в 2016 году и смогла достичь уровня лучших игроков.
Продолжая тему игр, одной из самых продаваемых будет Sims 4, — симулятор жизни, где большинство проблем решается с помощью Motherlode или удалением лестницы из бассейна.
Python также используется в World of Tanks, Civilization IV и EVE Online и многих других игр.
Быструю скорость разработки языка в свое время оценили и создатели социального сервиса обмена знаниями и веб-сайта вопросов и ответов Quora. Главная причина — желание поскорее выпустить в мир MVP (минимально жизнеспособный продукт), а Python отлично подойдет для этой цели.
Выполнение множества вычислительных процессов — еще одно преимущество языка, которое стало решающим для основателей международной компании Uber. С помощью их приложения мы узнали, как в пару кликов можно вызвать такси, оплатить его удобным способом и доставить себе еду на дом.
Помимо поездок на такси, язык используется и в компаниях с более глобальными маршрутами, даже космическими. Речь о NASA и их научных исследованиях, где применяется Python (уточнение, речь идет об исследованиях, а не о полетах на МКС).
Выводы:
изучая Python, вы откроете для себя путь ко многим крутым проектам, сможете довольно быстро реализовывать свои идеи, не теряя качества и актуальности в разработке.
Создание мобильных приложений на Python: интересное занятие для детей
Научиться созданию приложений на Python можно и самостоятельно, информации на просторах интернета для этого достаочно. Но чаще всего дети и подростки еще не могут сами правильно построить программу, систематизировать информацию, найти ее в нужном объеме. Поэтому начинать изучение Python лучше на специальных курсах, где ребята могут заниматься уже с 9-10 лет. Чтобы заниматься, достаточно компьютера и стабильно работающего интернета, ведь уроки программирования для детей проходят онлайн раз в неделю, индивидуально или в группе. За три месяца они освоят основы программирования на Питоне и дальше смогут развиваться в интересном им направлении: создавать игры, писать интересные и полезные приложения, придумывать что-то принципиально новое.
Кстати, нынешнее поколение senior-разработчиков и руководителей команд в 20-21 год выросло из детей, которые пришли в разработку в раннем возрасте. Многие из них получают высшее образование и параллельно работают в крупных компаниях, создают программы для портфолио, участвуют в хакатонах (соревнованиях для программистов) для получения необходимого опыта.
Уже сейчас вы можете обеспечить детям интересное будущее с любимой и перспективной работой. И чем раньше начнется обучение подростков программированию, тем быстрее они придут к своим первым успехам.
Разработка мобильных приложений на Python. Создание анимаций в Kivy. Part 2
Приветствую всех любителей и знатоков языка программирования Python!
Сегодня продолжим разбираться с темой анимаций в кроссплатформенном фреймворке для с поддержкой мультитач — Kivy в связке с библиотекой компонентов Google Material Design — KivyMD. В прошлой статье мы уже разбирали пример тестового приложения на Python/Kivy/KivyMD, в этой — пройдемся по теме анимаций более подробно. В конце статьи я приведу ссылку на репозиторий проекта, в котором вы сможете скачать и сами пощупать, демонстрационное Kivy/KivyMD приложение. Как и предыдущая, эта статья будет содержать не маленькое количество GIF анимаций и видео, а поэтому наливайте кофе и погнали!
Kivy работает на Linux, Windows, OS X, Android, iOS и Raspberry Pi. Вы можете запустить один и тот же код на всех поддерживаемых платформах без внесения дополнительных изменений в кодовую базу. Kivy поддерживает большое количество устройств ввода, включая WM_Touch, WM_Pen, Mac OS X Trackpad и Magic Mouse, Mtdev, Linux Kernel HID, TUIO и так же как и Flutter, не задействует нативные элементы управления. Все его виджеты настраиваются. Это значит, что приложения Kivy будут выглядеть одинаково на всех платформах. Но благодаря тому, что виджеты Kivy могут быть кастомизированы как угодно, вы можете создавать свои собственные виджеты. Например, так появилась библиотека KivyMD. Прежде чем продолжить, давайте посмотрим небольшой обзор возможностей Kivy:
Демонстрационные ролики Kivy приложений
В этих роликах наглядно продемонстрировано взаимодействие Kivy приложения с пользователем с помощью жестов и анимаций. Давайте и мы создадим простейшее приложение с анимацией двух лейблов:
from kivy.animation import Animation from kivy.lang import Builder from kivymd.app import MDApp KV = """ opacity: 0 adaptive_height: True halign: "center" y: -self.height MDScreen: on_touch_down: app.start_animation() CommonLabel: id: lbl_1 font_size: "32sp" text: "M A R S" CommonLabel: id: lbl_2 font_size: "12sp" text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" """ class TestAnimation(MDApp): def build(self): return Builder.load_string(KV) def start_animation(self): lbl_1 = self.root.ids.lbl_1 lbl_2 = self.root.ids.lbl_2 Animation( opacity=1, y=lbl_1.height * 2, d=0.9, t="in_out_back" ).start(lbl_1) Animation( opacity=1, y=lbl_2.height + ids.lbl_1.height, d=1, t="in_out_back" ).start(lbl_2) TestAnimation().run()
Это уже готовое приложение. Мы будем его лишь слегка редактировать. Правило CommonLabel в KV строке аналогично созданию класса в Python коде. Сравните:
Код в Kivy Language всегда короче и читабельнее. Поэтому в Python коде у нас будет только логика. Мы создали две метки с общими свойствами, описанными в правиле CommonLabel: прозрачность (opacity), размер текстуры метки (adaptive_height), горизонтальное выравнивание (halign), положение по оси Y (y ) и дали этим меткам id-шники (lbl_1, lbl_2), чтобы иметь возможность обращаться к свойствам объектов меток и манипулировать ими из Python кода. Далее мы привязали к событию on_touch_down (сработает при прикосновении к экрану в любом месте) вызов метода start_animation, в котором будем анимировать наши две метки.
Animation
Для анимарования объектов в Kivy используется класс Animation. Использовать его очень просто: при инициализации класса Animation вы должны передать в качестве аргументов имена свойств с целевыми значениями, которые будут достигнуты в конце анимации. Например:
def start_animation(self): # Получаем объекты меток из KV разметки lbl_1 = self.root.ids.lbl_1 lbl_2 = self.root.ids.lbl_2 # Анимация первой метки Animation( opacity=1, # анимация прозрачности до значения 1 y=lbl_1.height * 2, # анимация положения виджета по оси Y d=0.9, # время выполнения анимация t="in_out_back" # тип анимации ).start(lbl_1) # в метод start передаем объект, который нужно анимаровать # Анимация второй метки Animation( opacity=1, y=lbl_2.height + lbl_1.height, d=1, t="in_out_back" ).start(lbl_2)
На нижеследующей анимации я продемонстрировал результат простейшей анимации, которую мы создали, с разными типами анимирования:
Давайте немного усложним задачу и попробуем анимировать вращение меток на плоскости. Для этого будем использовать матричные манипуляции (PushMatrix, PopMatrix, Rotate, Translate, Scale). Добавим к общей метке инструкции canvas:
angle: 180 # значение вращения [. ] canvas.before: PushMatrix Rotate: angle: self.angle origin: self.center canvas.after: PopMatrix
А в Python коде в класс Animation передадим новое свойство angle для анимации:
def start_animation(self): lbl_1 = self.root.ids.lbl_1 lbl_2 = self.root.ids.lbl_2 Animation(angle=0, [. ]).start(lbl_1) Animation(angle=0, [. ]).start(lbl_2)
Добавим анимирование масштаба меток:
scale: 5 # значение масшбирования [. ] canvas.before: PushMatrix [. ] Scale: # масштабирование по трем осям x: self.scale y: self.scale z: self.scale origin: self.center canvas.after: PopMatrix
В Python коде в класс Animation передадим новое свойство scale для анимации:
def start_animation(self): lbl_1 = self.root.ids.lbl_1 lbl_2 = self.root.ids.lbl_2 Animation(scale=1, [. ]).start(lbl_1) Animation(scale=1, [. ]).start(lbl_2)
Класс Animation имеет ряд событий для отслеживания процесса анимации: on_start, on_progress, on_complete. Рассмотрим последний. on_complete вызывается в момент завершения процесса анимации. Привяжем это событие к методу complete_animation, который мы сейчас создадим:
[. ] class TestAnimation(MDApp): [. ] def complete_animation(self, animation, animated_instance): """ :type animation: :type animated_instance: > """ # Анимируем масштаб и цвет первой метки. Animation(scale=1.4, d=1, t="in_out_back").start(animated_instance) Animation(color=(1, 0, 1, 1), d=1).start(animated_instance)
def start_animation(self): [. ] animation = Animation( angle=0, scale=1, opacity=1, y=lbl_1.height * 2, d=0.9, t="in_out_back" ) animation.bind(on_complete=self.complete_animation) animation.start(lbl_1) [. ]
На этом пока все. Просили:
Ниже прикрепляю превью Kivy/KivyMD проекта и ссылку на репозиторий, где можно скачать APK и пощупать:
APK можно найти в директории репозитория — StarTest/bin