Баннер мобильный (1) Пройти тест

Kivy

Глоссарий

7 ноября 2023

Поделиться

Скопировано

Содержание

    Kivy — мультиплатформенный фреймворк с открытым исходным кодом для разработки приложений на языке Python. Распространяется по свободной лицензии MIT, начиная с версии 1.7.2, более ранние — по лицензии LGPL 3. Kivy используется для создания сложных многофункциональных мобильных и десктопных приложений с мультитач или естественным пользовательским интерфейсом. Фреймворк работает на всех распространенных платформах: Windows, Linux, MacOS, iOS, Android и Raspberry PI.

    Официальный логотип проекта Kivy
    Логотип Kivy

    Что такое Kivy Python?

    Kivy представляет собой среду разработки мобильных и десктопных приложений с инновационными мультисенсорными интерфейсами пользователя. Этот фреймворк был создан в 2010 году Kivy Organisation на основе более раннего проекта PiMT. Разработка приложений в нем осуществляется на языке программирования Python, а для разметки элементов пользовательского интерфейса применяется встроенный декларативный язык KV Language.

    В Kivy используются не нативные, а настраиваемые визуальные компоненты (виджеты), с помощью которых пользователь может добавить в свое приложение множество функций. Благодаря этому созданные с помощью данного фреймворка приложения будут одинаково выглядеть на любой платформе. В нем используется графический интерфейс OpenGL ES, который обеспечивает ускорение GPU для более качественной отрисовки визуальных компонентов и эффектов.

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

    • настольных компьютеров под управлением операционных систем MacOS, Linux, Windows;
    • мобильных устройств (смартфонов, планшетов) на iOS и Android;
    • любых устройств с сенсорным дисплеем, поддерживающих технологию TUIO (Tangible User Interface Objects) — например, интерактивных досок и панелей.

    Фреймворк Kivy позволяет написать код один раз, а потом запускать приложения на любой платформе практически без изменений. 

    Архитектура Kivy

    Внутреннее устройство kivy основано на двух принципах:

    • Абстракция. Разработчики фреймворка постарались абстрагировать многие типовые задачи, такие как открытие окна, отображение картинок и текста, воспроизведение звука, исправление орфографии и т. д. Это упрощает и расширяет интерфейс программирования (API). Кроме того, в работе Kivy используются основные провайдеры сценариев, роль которых играют собственные API конкретной платформы. Они позволяют использовать функциональные возможности ОС, повышая эффективность работы во фреймворке. Более того, собственные библиотеки ОС сокращают размер дистрибутива Kivy. 
    • Модульность. Модули — это дополнительные программные компоненты, расширяющие функциональность Kivy. По своему принципу они схожи с расширениями для веб-браузеров. Помимо использования уже существующих модулей, разработчик может написать свои собственные. Модульность делает разработку приложений в Kivy более гибкой.

    Ядро фреймворка включает наиболее часто используемые функции:

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

    Также ядро фреймворка содержит собственный декларативный язык Kv для разметки пользовательского интерфейса.

    Сам UI приложения в Kivy создается с помощью двух категорий объектов:

    • виджеты — это элементы пользовательского интерфейса, которые отвечают за реакцию приложения на действия пользователя или передачу данных об этих событиях другим интерактивным элементам. К ним относятся, например, ползунки, виртуальные кнопки, таймеры, поисковая строка, списки, меню и т. д. Они могут быть как видимыми, так и невидимыми. Эти элементы располагаются в древовидной структуре (дереве виджетов), которая отражает их иерархию;
    • макеты — это разметки, с помощью которых пользователь может быстро расположить виджеты в интерфейсе приложения. Сделать это можно и без них, однако макеты существенно упрощают и ускоряют разработку UI.

    Подробнее о Kivy MD

    Kivy имеет встроенный набор виджетов для создания интерфейсов. Однако из-за кросс-платформенности этого фреймворка его создатели сделали дизайн этих элементов максимально простым и невыразительным, но легко настраиваемым. Логика достаточно проста: если пользователь разрабатывает приложение для Windows, то сам адаптирует виджеты к дизайну этой операционной системы. Аналогично предполагается поступать и для других платформ: MacOS, Linux, Android и т. д. 

    Однако пользователи и разработчики приложений в большинстве своем хотят видеть их красивыми, стильными и современными. Поэтому базовый функционал фреймворка расширен за счет дополнительной сторонней библиотеки Kivy MD, реализующей концепцию Material Design — стандарта Google в разработке приложений, выпущенного в 2014 году. Материальный дизайн призван сделать интерфейс визуально осязаемым, словно пользователь взаимодействует не с виртуальными, а с реальными объектами. В нем органично сочетаются элементы flat design (плоского дизайна) и скевоморфизма (имитации реалистичности объектов). Отличительные особенности материального дизайна:

    • лаконичные геометрические формы, отсутствие мелких деталей и декоративных элементов;
    • минималистичные цветовые сочетания, выделение объектов на фоне с помощью акцентирующих оттенков;
    • ненавязчивая имитация реалистичных материалов (например, листов бумаги) за счет изменяемых теней;
    • плавная анимация объектов, использование эффектов затемнения, прозрачности, размытия — например, при прокрутке, перемещении, изменении размера и формы интерактивных объектов.

    Интерфейсы, создаваемые с применением принципов материального дизайна, выглядят более привычными пользователям, а потому и интуитивно понятными. Например, поле, отбрасывающее тень на фон, воспринимается как находящееся над ним, а потому его можно переместить, как обычный листок бумаги на белом столе. Концепция Material Design развивается с 2014 года, хотя ее отдельные элементы использовались и раньше. Большинство современных мобильных и десктопных приложений в той или иной мере разрабатываются в соответствии с ее принципами. 

    Преимущества Kivy

    Кросс-платформенность. Фреймворк Kivy предназначен для использования на всех распространенных мобильных и десктопных устройствах под управлением операционных систем Windows, MacOS, Linux, iOS, Android, а также поддерживает одноплатные компьютеры Raspberry Pi. Кроме того, разработка приложений с его помощью осуществляется по принципу «Пишите код один раз и запускайте на любой платформе». То есть программные продукты, созданные с использованием этого фреймворка, будут работать на всех поддерживаемых устройствах. Такой подход максимально упрощает процесс разработки, так как не нужно создавать и тестировать различные версии приложений под разные платформы, а охват пользователей будет при этом максимальным. 

    Использование Python. Хотя этот язык программирования не был разработан специально для создания пользовательских интерфейсов, он подходит для решения этой задачи благодаря простому синтаксису и наличию большого числа библиотек. Кроме того, он хорошо адаптирован именно под разработку кросс-платформенных программных продуктов. 

    Наличие собственного языка. Помимо Python, во фреймворке Kivy используется встроенный промежуточный язык разметки пользовательских интерфейсов Kv. Он позволяет декларативно создавать дерево виджетов и естественным образом связывать их свойства друг с другом или с обратными вызовами. С его помощью можно очень быстро разрабатывать прототипы и гибко вносить изменения в пользовательский интерфейс. Это также облегчает разделение логики и UI приложения.

    Открытый исходный код. Скачать Kivy можно на официальном сайте проекта абсолютно бесплатно. Это на 100% свободное программное обеспечение, распространяемое по лицензии MIT. Оно доступно как профессионалам, так и разработчикам-любителям. С его помощью можно свободно создавать не только приложения для самостоятельного или учебного использования, но и полноценные коммерческие продукты. Особенно это преимущество важно для небольших стартапов или одиночных специалистов, так как позволяет вести разработку даже с минимальным бюджетом.

    Недостатки Kivy

    Упрощенный дизайн виджетов. Из-за кросс-платформенности самого фреймворка и создаваемых с его помощью приложений разработчики сделали дизайн базовых виджетов максимально усредненным. Это делает создаваемые с их помощью интерфейсы достаточно посредственными и невыразительными в визуальном плане. Частично этот недостаток компенсируется тем, что облик и анимацию виджетов можно настраивать под дизайн конкретной платформы. Кроме того, есть возможность использовать библиотеки виджетов от сторонних разработчиков.

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

    Фреймворк Kivy был разработан для максимально простого и быстрого создания десктопных и мобильных приложений и получил широкую популярность как среди любителей, так и у профессионалов. Этому способствуют такие его преимущества, как кросс-платформенность, возможность подключения сторонних библиотек, гибкие настройки виджетов, наличие родного языка разметки, открытый исходный код. Продуманная архитектура фреймворка позволяет разрабатывать UI с поддержкой традиционных и инновационных способов ввода, прорисовывать как типовые, так и уникальные запоминающиеся интерфейсы.

    Другие термины на «K»

    Все термины

    Поделиться

    Скопировано

    0 комментариев

    Комментарии