Глава 1. Инструментальные средства для разработки кроссплатформенных приложений на Python
Современным людям бывает просто необходимо иметь выход в Интернет со своего мобильного устройства. Средства сотовой связи обеспечивают подключение к сети Интернет с планшета или смартфона практически в любой точке вне дома или офиса, а специально созданные мобильные приложения позволяют решать как деловые задачи, так и выполнять развлекательные функции. Мобильные приложения действительно захватили нашу жизнь. Почти каждый день мы используем такие средства общения как WhatsApp и Viber, LinkedIn, обучающие приложения и игры.
Различные компании через мобильные приложения могут рассказать о своих товарах и услугах, найти потенциальных партнеров и клиентов, организовать продажу товаров. Рядовые пользователи взаимодействуют с торговыми точками, используют интернет-банкинг, общаются через мессенджеры, получают государственные услуги.
Для разработки мобильных приложений существует множество языков программирования, причем они позволяют создавать мобильные приложения для устройств, работающих либо только под Android, либо под iOS. Но из этих инструментальных средств хочется выделить связку: Python, фреймворк Kivy и библиотека KivyMD.
Kivy — это фреймворк Python, который упрощает создание кроссплатформенных приложений, способных работать в Windows, Linux, Android, OSX, iOS и мини компьютерах типа Raspberry Pi. Это популярный пакет для создания графического интерфейса на Python, который набирает большую популярность благодаря своей простоте в использовании, хорошей поддержке сообщества и простой интеграции различных компонентов.
Библиотека KivyMD построена на основе фреймворка Kivy. Это набор виджетов Material Design (MD) для использования с Kivy. Данная библиотека предлагает достаточно элегантные компоненты для создания интерфейса — UI (user interface — пользовательский интерфейс), в то время как программный код на Kivy используется для написания основных функций приложения, например, доступ к ресурсам Интернет, обращение к элементам мобильного устройства, таким как видеокамера, микрофон, GPS приемник и т. п.
Используя Python и Kivy можно создавать действительно универсальные приложения, которые из одного программного кода будут работать:
— на настольных компьютерах (OS X, Linux, Windows);
— на устройствах iOS (iPad, iPhone);
— на Android-устройствах (планшеты, смартфоны);
— на любых других устройства с сенсорным экраном, поддерживающие TUIO (Tangible User Interface Objects).
Kivy дает возможность написать программный код один раз и запустить его на совершенно разных платформах.
Для ускорения процесса написания программного кода удобно использовать специализированную инструментальную среду — так называемую интегрированную среду разработки (IDE, Integrated Development Environment). Эта среда включает полный комплект средств, необходимых для эффективного программирования на Python. Обычно в состав IDE входят текстовый редактор, компилятор или интерпретатор, отладчик и другое программное обеспечение. Использование IDE позволяет увеличить скорость разработки программ (при условии предварительного обучения работе с такой инструментальной средой). Для написания программного кода на Python наиболее популярной инструментальной средой является IDE PyCharm — это кроссплатформенная среда разработки, которая совместима с Windows, macOS, Linux.
Из материалов этой главы вы узнаете:
— что такое мобильные приложения;
— как установить и проверить работу интерпретатора Python;
— как установить интегрированную среду разработки PyCharm;
— с помощью какого инструментария можно загрузить в Python дополнительные пакеты программных средств
— как загрузить фреймворк Kivy и библиотеку KivyMD;
— как создать первое простейшее приложение с использованием Kivy и KivyMD.
1.1. Мобильные приложения
Мобильное приложение (от англ. «Mobile app») это программное обеспечение, предназначенное для работы на смартфонах, планшетах и других мобильных устройствах, разработанное для конкретной платформы (iOS, Android, Windows Phone и т. д.). Многие мобильные приложения предустановлены на самом устройстве или могут быть загружены на него из онлайновых магазинов приложений.
Буквально 15—20 лет назад на вопрос, что такое мобильное приложение, владелец сотового телефона не нашел бы ответа. Однако с появлением смартфонов возможности мобильных устройств перестали ограничиваться функциями звонков, отправки СМС и простейшими играми. Сегодня можно сказать, что мобильное приложение — это специально разработанное программное обеспечение под функциональные возможности различных мобильных устройств. Назначение программного обеспечения может быть самым разнообразным: сервисы, магазины, развлечения, игры, онлайн-помощники и другое. Эти приложения скачиваются и устанавливаются самим пользователем через специальные платформы, такие как App Store, Google Play бесплатно или за определенную плату.
Довольно часто пользователи путаются в функциональных различиях мобильной версией сайта и мобильного приложения для смартфона, планшета или другого гаджета. Мобильный вариант сайта представляет собой переработанный, а в некоторых вариантах адаптированный дизайн и контент веб-страниц для удобного просмотра на небольшом дисплее смартфона. Самый простой способ — это создать копию основного сайта для настольного компьютера и подстроить его под разрешение мобильного устройства. Более сложный вариант — это создать новый дизайн web-страниц, с которыми будет удобно взаимодействовать пользователю посредством сенсорного экрана.
Мобильное приложение — это программный пакет, функционал и дизайн которого «заточен» под возможности конкретной мобильной платформы. Вот несколько основных плюсов мобильных приложений:
— интерфейс программы создан конкретно под работу на мобильном устройстве через сенсорный экран;
— удобная и понятная для пользователей гаджетов навигация через мобильное меню;
— лучшее взаимодействие с пользователем через сообщения, пуш-уведомления, напоминания;
— приложение может выполнять функции даже в фоновом режиме, чего нельзя сказать о сайте;
— для работы с программой не нужно открывать браузер, а многие приложения поддерживают свои функций и при отключенном интернете;
— реализована возможность хранение персональных данных пользователя (эта функция расширяет возможности персонализации приложений, например, вызывает такси на домашний адрес, запись на прием к врачу по медицинскому полису и т.п.;
— более гибкая, по сути прямая, обратная связь с торговой компанией или иным сервисом;
— можно задействовать больше ресурсов (например, подключить геолокацию, видеокамеру, датчик ускорения, Bluetooth модуль и т.п.).
На самом деле функционал мобильных приложений уже давно превзошел адаптированные сайты. Сегодня можно скачать и установить на смартфон программы для бизнеса, обучения, органайзеры с опциями напоминания, развлекательный контент и игры, программы различных сервисных служб.
Для разработки мобильных приложений используются различные языка программирования. Среди них можно выделить:
— Java — один из самых популярных языков программирования, который предлагает широкий спектр функций, он считается лучшим языком для разработки под Android;
— Kotlin — это язык программирования со статической типизацией, его можно использовать в сочетании с JAVA для создания более эффективных и высокопроизводительных приложений под Android;
— Swift — в основном используется для разработки приложений для iOS. Достаточно долгое время Swift сохранял монополию в бизнесе по разработке приложений для iOS;
— Dart — это быстрый, объектно-ориентированный язык программирования, основанный на парадигме, который используется для разработки кроссплатформенных приложений. Этот язык программирования, созданный Google, позиционируется в качестве альтернативы JavaScript;
— C # — является еще одним объектно-ориентированным языком, который широко используется для мобильной разработки. Он в основном используется для платформы Windows Mobile;
— C ++ -считается хорошим выбором для разработки приложений для Android. То, что прочно удерживает рынок мобильной индустрии, это системы на базе Android;
— Xamarin — это бесплатная кроссплатформенная среда разработки мобильных приложений с открытым исходным кодом, используемая для создания приложений с использованием. NET и C #. Xamarin расширяет платформу для разработчиков. NET, предоставляя пользователям доступ к инструментам и технологиям для разработки приложений для iOS, Android и Windows.
Большинство из этих языков программирования ориентированы на разработку приложений под определенную платформу (например, Java — под Android, Swift под iOS). В отличие от них Python с пакетами Kivy и KivyMD действительно универсальный набор инструментов разработок кроссплатформенных приложений для любых операционных систем настольных компьютеров и любых платформ мобильных устройств.
1.2. Интерпретатор Python
Язык программирования Python является весьма мощным инструментальным средством для разработки различных систем. Однако наибольшую ценность представляет даже не столько сам этот язык программирования, сколько набор подключаемых библиотек, на уровне которых уже реализованы все необходимые процедуры и функции. Разработчику достаточно написать несколько десятков строк программного кода, чтобы подключить требуемые библиотеки, создать набор необходимых объектов, передать им исходные данные и отобразить итоговые результаты.
Для установки интерпретатора Python на компьютер, прежде всего надо загрузить его дистрибутив. Скачать дистрибутив Python можно с официального сайта, перейдя по ссылке: https://www.python.org/downloads/ (рис. 1.1).
Рис. 1.1. Сайт для скачивания дистрибутива языка программирования Python
1.2.1. Установка Python в Windows
Для операционной системы Windows дистрибутив Python распространяется либо в виде исполняемого файла (с расширением exe), либо в виде архивного файла (с расширением zip). На момент подготовки этой книги была доступна версия Python 3.8.3.
Порядок установки Python в Windows следующий:
— Запустите скачанный установочный файл.
— Выберите способ установки (рис. 1.2).
Рис. 1.2. Выбор способа установки Python
В открывшемся окне предлагаются два варианта: Install Now и Customize installation:
— при выборе Install Now Python установится в папку по указанному в окне пути. Помимо самого интерпретатора будут инсталлированы IDLE (интегрированная среда разработки), pip (пакетный менеджер) и документация, а также созданы соответствующие ярлыки и установлены связи (ассоциации) файлов, имеющих расширение py, с интерпретатором Python;
— Customize installation — это вариант настраиваемой установки. Опция Add Python 3.8 to PATH нужна для того, чтобы появилась возможность запускать интерпретатор без указания полного пути до исполняемого файла при работе в командной строке.
— Отметьте необходимые опции установки, как показано на рис. 1.3 (доступно при выборе варианта Customize installation).
Рис. 1.3. Выбор опций установки Python
На этом шаге нам предлагается отметить дополнения, устанавливаемые вместе с интерпретатором Python. Рекомендуется выбрать как минимум следующие опции:
— Documentation — установка документации;
— pip — установка пакетного менеджера pip;
— tcl/tk and IDLE — установка интегрированной среды разработки (IDLE) и библиотеки для построения графического интерфейса (tkinter).
— На следующем шаге в разделе Advanced Options (Дополнительные опции) выберите место установки, как показано на рис. 1.4 (доступно при выборе варианта Customize installation).
Рис. 1.4. Выбор места установки Python
Помимо указания пути, этот раздел позволяет внести дополнительные изменения в процесс установки с помощью опций:
— Install for all users — установить для всех пользователей. Если не выбрать эту опцию, то будет предложен вариант инсталляции в папку пользователя, устанавливающего интерпретатор;
— Associate files with Python — связать файлы, имеющие расширение py, с Python. При выборе этой опции будут внесены изменения в Windows, позволяющие Python запускать скрипты по двойному щелчку мыши;
— Create shortcuts for installed applications — создать ярлыки для запуска приложений;
— Add Python to environment variables — добавить пути до интерпретатора Python в переменную PATH;
— Precomple standard library — провести перекомпиляцию стандартной библиотеки.
Последние два пункта связаны с загрузкой компонентов для отладки, их мы устанавливать не будем.
— После успешной установки Python вас ждет следующее сообщение (рис. 1.5).
Рис. 1.5. Финальное сообщение после установки Python
1.2.2.Установка Python в Linux
Чаще всего интерпретатор Python уже входит в состав дистрибутива Linux. Это можно проверить, набрав в окне терминала команду:
> python
или
> python3
В первом случае, вы запустите Python 2, во втором — Python 3. В будущем, скорее всего, во все дистрибутивы Linux, включающие Python, будет входить только третья его версия. Если у вас при попытке запустить Python выдается сообщение о том, что он не установлен или установлен, но не тот, что вы хотите, то у вас есть возможность взять его из репозитория.
Для установки Python из репозитория Ubuntu воспользуйтесь командой:
> sudo apt-get install python3
1.2.3. Проверка интерпретатора Python
Для начала протестируем интерпретатор в командном режиме. Если вы работаете в Windows, то нажмите комбинацию клавиш <Win> + <R> и в открывшемся окне введите: python. В Linux откройте окно терминала и в нем введите: python3 (или python).
В результате Python запустится в командном режиме. Выглядеть это будет примерно так, как показано на рис. 1.6 (иллюстрация приведена для Windows, в Linux результат будет аналогичным).
Рис. 1.6. Результат запуска интерпретатора Python в окне терминала
В этом окне введите программный код следующего содержания:
print («Hello, World!»)
В результате вы увидите следующий ответ (рис. 1.7).
Рис. 1.7. Результат работы программы на Python в окне терминала
Получение такого результата означает, что установка интерпретатора Python прошла без ошибок.
1.3. Интерактивная среда разработки программного кода PyCharm
В процессе разработки программных модулей удобнее работать в интерактивной среде разработки (IDE), а не в текстовом редакторе. Для Python одним из лучших вариантов считается IDE PyCharm от компании JetBrains. Для скачивания его дистрибутива перейдите по ссылке: https://www.jetbrains.com/pycharm/download/ (рис. 1.8).
Рис. 1.8. Главное окно сайта для скачивания дистрибутива PyCharm
Эта среда разработки доступна для Windows, Linux и macOS. Существуют два вида лицензии PyCharm: Professional и Community. Мы будем использовать версию Community, поскольку она бесплатная и ее функционала более чем достаточно для наших задач. На момент подготовки этой книги была доступна версия PyCharm 2020.1.2.
1.3.1. Установка PyCharm в Windows
Запустите на выполнение скачанный дистрибутив PyCharm (рис. 1.9).
Рис. 1.9. Начальная заставка при инсталляции PyCharm
Выберите путь установки программы (рис. 1.10).
Рис. 1.10. Выбор пути установки PyCharm
Укажите ярлыки, которые нужно создать на рабочем столе (запуск 32- или 64-разрядной версии PyCharm), и отметьте флажком опцию. py d области Create associations, если требуется ассоциировать с PyCharm файлы с расширением py (рис. 1.11).
Рис. 1.11. Выбор разрядности устанавливаемой среды разработки PyCharm
Выберите имя для папки в меню Пуск (рис. 1.12).
Рис. 1.12. Выбор имени папки для PyCharm в меню
Пуск
Далее PyCharm будет установлен на ваш компьютер (рис. 1.13).
Рис. 1.13. Финальное окно установки пакета PyCharm
1.3.2. Установка PyCharm в Linux
Скачайте с сайта программы ее дистрибутив на свой компьютер.
Распакуйте архивный файл, для чего можно воспользоваться командой:
> tar xvf имя_архива. tar. gz
Результат работы этой команды представлен на рис. 1.14.
Рис. 1.14. Результат работы команды распаковки архива PyCharm
Перейдите в каталог, который был создан после распаковки дистрибутива, найдите в нем подкаталог bin и зайдите в него. Запустите установку PyCharm командой:
> ./pycharm.sh
Результат работы этой команды представлен на рис. 1.15.
Рис. 1.15. Результаты работы команды инсталляции PyCharm
1.3.3. Проверка PyCharm
Запустите PyCharm и выберите вариант Create New Project в открывшемся окне (рис. 1.16).
Рис. 1.16. Создание нового проекта в среде разработки PyCharm
Укажите путь до создаваемого проекта Python и интерпретатор, который будет использоваться для его запуска и отладки (рис. 1.17).
Рис. 1.17. Указание пути до проекта в среде разработки PyCharm
Добавьте в проект файл, в котором будет храниться программный код Python (рис. 1.18).
Рис. 1.18. Добавление в проект файла для программного кода на Python
Введите одну строчку кода программы (рис. 1.19).
Рис. 1.19. Одна строка программного кода на Python в среде разработки PyCharm
Запустите программу командой Run (рис. 1.20).
Рис. 1.20. Запуск программного кода на Python в среде разработки PyCharm
В результате в нижней части экрана должно открыться окно с выводом результатов работы программы (рис. 1.21).
Рис. 1.21. Вывод результатов работы программы на Python в среде разработки PyCharm
Можно перейти к следующему разделу.
1.4. Инструментарий для загрузки в Python пакетов программных средств
В процессе разработки программного обеспечения на Python часто возникает необходимость воспользоваться пакетом (библиотекой), который в текущий момент отсутствует на вашем компьютере.
В этом разделе вы узнаете о том, откуда можно взять нужный вам дополнительный инструментарий для разработки ваших программ. В частности:
— где взять отсутствующий пакет;
— как установить pip — менеджер пакетов в Python;
— как использовать pip;
— как установить пакет;
— как удалить пакет;
— как обновить пакет;
— как получить список установленных пакетов;
— как выполнить поиск пакета в репозитории.
1.4.1. Репозиторий пакетов программных средств PyPI
Необходимость в установке дополнительных пакетов возникнет достаточно часто, поскольку решение практических задач обычно выходит за рамками базового функционала, который предоставляет Python. Это, например, создание веб-приложений, обработка изображений, распознавание объектов, нейронные сети и другие элементы искусственного интеллекта, геолокация и т. п. В таком случае, необходимо узнать, какой пакет содержит функционал, который вам необходим, найти его, скачать, разместить в нужном каталоге и начать использовать. Все указанные действия можно выполнить и вручную, однако этот процесс поддается автоматизации. К тому же скачивать пакеты с неизвестных сайтов может быть весьма опасно.
В рамках Python все эти задачи автоматизированы и решены. Существует так называемый Python Package Index (PyPI) — репозиторий, открытый для всех разработчиков на Python, в котором вы можете найти пакеты для решения практически любых задач. При этом у вас отпадает необходимость в разработке и отладке сложного программного кода — вы можете воспользоваться уже готовыми и проверенными решениями огромного сообщества программистов на Python. Вам нужно просто подключить нужный пакет или библиотеку к своему проекту и активировать уже реализованный в них функционал. В этом и заключается преимущества Python перед другими языками программирования, когда небольшим количеством программного кода можно реализовать решение достаточно сложных практических задач. Там также есть возможность выкладывать свои пакеты. Для скачивания и установки нужных модулей в ваш проект используется специальная утилита, которая называется pip. Сама аббревиатура, которая на русском языке звучит как «пип», фактически раскрывается как «установщик пакетов» или «предпочитаемый установщик программ». Это утилита командной строки, которая позволяет устанавливать, переустанавливать и деинсталлировать PyPI пакеты простой командой pip.
1.4.2. Менеджер пакетов в Python — pip
Менеджер пакетов pip — это консольная утилита (без графического интерфейса). После того, как вы ее скачаете и установите, она пропишется в PATH и будет доступна для использования. Эту утилиту можно запускать как самостоятельно — например, через терминал в Windows или Linux, а также в терминальном окне PyCharm командой:
> pip <аргументы>
pip можно запустить и через интерпретатор Python:
> python -m pip <аргументы>
Ключ -m означает, что мы хотим запустить модуль (в нашем случае pip).
При развертывании современной версии Python (начиная с Python 2.7.9 и более поздних версий), pip устанавливается автоматически. В PyCharm проверить наличие модуля pip достаточно просто — для этого нужно войти в настройки проекта через меню File | Settings | Project Interpreter. Модуль pip должен присутствовать в списке загруженных пакетов и библиотек (рис. 1.22).
Рис. 1.22. Проверка наличия в проекте модуля pip
В случае отсутствия в списке этого модуля последнюю его версию можно загрузить, нажав на значок + в правой части окна и выбрав модуль pip из списка (рис. 1.23).
Рис. 1.23. Загрузка модуля pip
1.4.3. Использование менеджера пакетов pip
Здесь мы рассмотрим основные варианты использования pip: установку пакетов, удаление и обновление пакетов.
Pip позволяет установить самую последнюю версию пакета, конкретную версию или воспользоваться логическим выражением, через которое можно определить, что вам, например, нужна версия не ниже указанной. Также есть поддержка установки пакетов из репозитория. Рассмотрим, как использовать эти варианты (здесь Name — это имя пакета).
— Установка последней версии пакета:
> pip install Name
— Установка определенной версии:
> pip install Name==3.2
— Установка пакета с версией не ниже 3.1:
> pip install Name> =3.1
— Для того чтобы удалить пакет, воспользуйтесь командой:
> pip uninstall Name
— Для обновления пакета используйте ключ — upgrade:
> pip install — upgrade Name
— Для вывода списка всех установленных пакетов служит команда:
> pip list
— Если вы хотите получить более подробную информацию о конкретном пакете, то используйте аргумент show:
> pip show Name
— Если вы не знаете точного названия пакета или хотите посмотреть на пакеты, содержащие конкретное слово, то вы можете это сделать, используя аргумент search:
> pip search «test».
Если вы запускаете pip в терминале Windows, то терминальное окно автоматически закроется после того, как эта утилита завершит свою работу. При этом вы просто не успеете увидеть результаты ее работы. Чтобы терминальное окно не закрывалось автоматически, команды pip нужно запускать в нем с ключом /k. Например, запуск процедуры установки пакета tensorflow должен выглядеть так, как показано на рис. 1.24.
Рис. 1.24. Выполнение команды модуля pip в терминальном окне Windows
Если же пакет pip запускается из терминального окна PyCharm, то в использовании дополнительных ключей нет необходимости, так как терминальное окно после завершения работы программ не закрывается. Пример выполнения той же команды в терминальном окне PyCharm показан на рис. 1.25.
Рис. 1.25. Выполнение команды модуля pip в терминальном окне PyCharm
1.5. Загрузка фреймворка Kivy и библиотеки KivyMD
Итак, основной инструментарий для разработки программ на языке Python установлен, и мы можем перейти к установке дополнительных модулей, с помощью которых можно вести разработку кроссплатформенных мобильных и настольных приложений. В этом разделе мы установим фреймворк Kivy и библиотеку KivyMD.
Запустим среду разработки PyCharm и создадим в ней новый проект с именем Kivy_Project. Для этого в главном меню среды выполните команду File | New Project (рис. 1.26).
Рис. 1.26. Создание нового проекта в среде разработки PyCharm
Откроется окно, где вы можете задать имя создаваемому проекту, определить виртуальное окружение для этого проекта и указать каталог, в котором находится интерпретатор Python. В данном окне необходимо задать новому проекту имя Kivy_Project, после чего нажать кнопку Create (рис. 1.27).
Рис. 1.27. Задаем новому проекту имя Kivy_Project в среде разработки PyCharm
Будет создан новый проект. Это, по сути дела, шаблон проекта, в котором пока еще ничего нет (рис. 1.28).
Рис. 1.28. Интерфейс PyCharm с окном пустого проекта
Теперь в виртуальное окружение созданного проекта нужно добавить фреймворк Kivy — это фактически дополнительная библиотека к Python, и установить этот инструментарий можно так же, как и любую другую библиотеку. Подключение данной библиотеки к проекту можно выполнить двумя способами: через меню PyCharm, или с использованием менеджера пакетов pip в терминальном окне PyCharm.
Для установки библиотеки Kivy первым способом нужно в меню File выбрать опцию Settings (рис. 1.29).
Рис. 1.29. Вызов окна
Settings настройки параметров проекта
В левой части открывшегося окна настроек выберите опцию Project Interpreter, при этом в правой части окна будет показана информация об интерпретаторе языка Python и подключенных к нему библиотеках (рис. 1.30).
Рис. 1.30. Информация об интерпретаторе языка Python
Чтобы добавить новую библиотеку, нужно нажать на значок "+" в правой части окна, после чего будет отображен полный список доступных библиотек. Здесь можно либо пролистать весь список и найти библиотеку Kivy, либо набрать наименование этой библиотеки в верхней строке поиска, и она будет найдена в списке (рис. 1.31).
Рис. 1.31. Поиск библиотеки Kivy в списке доступных библиотек
Нажмите на кнопку Install Package, после этого выбранная библиотека и сопровождающие ее модули будут добавлены в ваш проект (рис. 1.32).
Рис. 1.32. Библиотека Kivy добавлена в список подключенных библиотек
Аналог