Очередной сборник новостей Qt, на этот раз за последние полгода с прошлой статьи. Релизы 5.11 и 5.12, реинкарнация PySide, внезапные похороны Qbs, выход Qt Design Studio и значительное улучшение условий лицензий для стартапов.
Интересной КПДВ я не придумал, потому вместо неё просто ДДПВ — это к нам летом в офис приходил фотограф на корпоративную фотосессию, из которой я и подрезал фотку коллеги.
Начнём с нарушенных обещаний. В конце предыдущей статьи были размещены два голосования: за перевод поста из официального блога про портирование Qt на микроконтроллеры и за написание обзора Safe Renderer, и голосование показало, что обе статьи заслуживают публикации. Но в размещении микроконтроллерной статьи НЛО автору отказало: "Публикации рекламного характера вне корпоративного блога и хаба «Я пиарюсь» запрещены правилами сайта". Сложно сказать, что именно там было рекламного (можете посмотреть английский оригинал и оценить), но в таком случае про Safe Renderer не было даже и смысла пытаться (потому что это исключительно коммерческая фича). Так что простите, если кто ждал.
Содержание на сегодня:
- Новые релизы
- Обновления инструментов
- Анонс Kuesa
- Релиз PySide / Qt for Python
- Дальнейшее портирование на MCU
- Отказ от Qbs
- Изменения в коммерческом лицензировании
- Другие новости
Новые релизы
Qt 5.11
22 мая вышел Qt 5.11.
Не могу выделить какие-то особо значительные нововведения, кроме переработанного процесса компиляции QML, который должен существенно улучшить производительность Qt Quick приложений:
Также в релизе:
- поддержка High-DPI для Qt Widgets на Windows (до этого было только в Mac OS и Linux);
- поддержка сжатых текстур в Qt Quick;
- превью реализации коммуникационного протокола OPC UA;
- превью Qt for WebAssembly.
Но зачем.
Qt 5.12
6 декабря вышел Qt 5.12 (обзор от CTO), очередной LTS релиз, который будет поддерживаться 3 года.
Улучшена производительность. В основном это касается движка QML и JavaScript, который теперь соответствует стандарту ECMAScript 7.
Релиз Qt Remote Object — механизма межпроцессорного взаимодействия как на одном хосте, так и между разными хостами по сети.
Релиз Qt Quick WebGL, он же Qt WebGL streaming — то есть возможность транслировать GUI приложения, работающего на удалённом хосте (устройстве без дисплея), и отображать его в браузере на десктопе или планшете. Как пример — Raspberry Pi с камерой, Qt-приложение стримит GUI вместе с выводом камеры, а рендерится всё в обычном Safari на iPad:
Очень прикольная штука, я прямо восторгом с ней поигрался, но откровенно говоря я не представляю, кто и зачем будет этим пользоваться. Если и так подразумевается работа с девайсом из браузера, то зачем городить GUI на Qt Quick и стримить его в WebGL? Не проще ли тогда просто запустить на девайсе нормальный веб-сервер, а GUI на клиенте будет с HTML/CSS/JS без вот этого всего? Странная фича, в общем.
В Qt Quick Controls 2 наконец-то добавили TableView. Вот даже сравнение производительности аналога из Qt Quick Controls 1. К сожалению, по-прежнему никаких новостей про TreeView.
Pointer Handlers вышли из статуса превью и переименовались в Input Handlers. Это новый модуль для обработки ввода с мыши, клавиатуры и тачскрина. В связи с этим в какой-то момент следует ожидать "устаревания" MouseArea.
В Qt Virtual Keyboard помимо прочего добавлены новые языки а также новый движок рукописного ввода — MyScript.
В Qt for Device Creation появились так называемые Qt Board Support Packages. Это те же самые Yocto образы и тулчейны, только теперь в виде отдельно загружаемых и подключаемых к установщику пакетов. Смысл QBSP заключается в поддержке партнёров-вендоров железа, чтобы им было удобнее создавать и распространять Boot to Qt образы для своих устройств.
Развивается поддержка Wayland.
Обновления инструментов
Qt Creator
За полгода вышло две версии Qt Creator: 4.7 и 4.8.
Из наиболее значимых нововведений — поддержка Language Server Protocol, то есть возможность расширения Qt Creator для работы с большим количеством языков программирования. В то же время, "родной" QML до сих пор не в курсе последних версий модулей для импорта, из-за чего их приходится перебирать научным тыком.
В версии 4.8 также должен был быть добавлен модуль телеметрии, но в этот релиз он не попал, так что ожидайте в 4.9.
Qt Design Studio
Тот самый полусекретный проект:
Как вы знаете, в составе Qt есть прекрасный инструмент для создания GUI на Widgets — Qt Designer. С ним можно работать как из Qt Creator (вкладка Design), так и запустив его как самостоятельное приложение для работы с .iu
файлами.
С появлением Qt Quick добавился инструмент Qt Quick Designer, который уже нельзя запустить как отдельное приложение, так как он насмерть прибит гвоздями к Qt Creator.
И вот Qt Design Studio — это тот же самый Qt Quick Designer, но с дополнительным функционалом. Также это теперь самостоятельное приложение, хотя по факту это просто покалеченная копия Qt Creator, которая запускается сразу в режиме дизайна Qt Quick (с возможностью переключения в режим редактирования QML).
Из нового функционала: линия времени для работы с анимациями, удобные диалоги для настройки этих анимаций и компонент live-preview для предпросмотра изменений на лету как в отдельном окне, так и на присоединённом планшете или другом устройстве. Примечательно, что все эти вещи вряд ли когда-нибудь попадут обратно в Qt Quick Designer.
Qt Design Studio предназначена для дизайнеров, и подразумевается, что они будут создавать в ней дизайн приложения, передавать результат (.ui.qml
файлы) разработчикам, а разработчики будут работать с ними в полноценном Qt Creator.
Также ведётся разработка плагинов для существующих популярных инструментов дизайна, чтобы дизайнеры могли экспортировать свои наработки из этих инструментов в QML. Первым был создан плагин для Adobe Photoshop, следующим ожидается плагин для Sketch, затем Adobe XD и другие.
Я не дизайнер, потому мне сложно оценить полезность Qt Design Studio. Когда в Qt были только Widgets, я с плохо скрываемым удовольствием работал в Qt Designer, это отличный инструмент для создания GUI и по сей день. Когда появился Qt Quick, я несколько раз пытался пользоваться Qt Quick Designer, но в итоге бросил и просто пишу QML, для меня так удобнее и быстрее. А так как Qt Design Studio это почти что и есть Qt Quick Designer, то лично я ей пользоваться буду вряд ли. В то же время, насколько мне известно, ряд дизайнерских агентств, которые получили Qt Design Studio на "тест-драйв", отзываются о ней положительно.
В плане лицензирования инструмент вроде как заявлен в Open Source (GPLv3), но в то же время вроде как для распространения результатов работы требуется коммерческая лицензия. Да и просто загрузить установщик не так-то просто, требуется наличие Qt Account. В общем, менеджеры продукта пока ещё не совсем определились.
Qt 3D Studio
Продолжается развитие Qt 3D Studio. За это время вышли версии 2.0 (более подробный обзор), 2.1 и 2.2.
Наиболее значительно изменение — переход с движка оригинальной NVIDIA DRIVE Design Studio на собственный движок на основе Qt 3D и значительное улучшение производительности.
Также был обозначен план объединения Qt 3D Studio и Qt Design Studio в единый инструмент, то есть вместо двух это будет одно приложение для работы с 2D и 3D.
Анонс Kuesa
Говоря о 3D, тут KDAB выпустили своё решение для работы с 3D — Kuesa.
В отличие от Qt 3D Studio, они не стали тратить ресурсы на собственный инструмент для 3D моделирования, а позволяют дизайнерам работать с их привычными инструментами (3DS Max, Blender), и далее разработчик может использовать экспортированные glTF модели в Qt. Для удобства в наличии также есть приложение для предпросмотра модели и наименований компонентов, чтобы разработчик знал как к ним обращаться у себя в коде, не открывая модель в оригинальном 3D редакторе.
На мой взгляд Kuesa является конкурирующим Qt 3D Studio решением (и судя по всему, более удачным), и это досадно, потому что вместо того, чтобы параллельно заниматься одним и тем же, эти усилия можно было бы потратить на что-то более полезное (я сейчас не обязательно про KDAB). Тут кстати будет напомнить что сам Qt 3D это тоже вклад KDAB.
Релиз PySide2 / Qt for Python
PySide вернулся, переименовался сначала в PySide2, а потом в скучный Qt for Python.
Первый релиз вышел с Qt 5.11, но он всё ещё не считался за полноценный, а вот буквально на днях выпустили уже официальный релиз вместе с Qt 5.12.
Вряд ли я могу рассказать здесь что-то новое. Как и раньше, PySide — это возможность использовать Qt (в основном, для GUI) из Python. Распространяется через PyPI, то есть в состав официального установщика Qt не входит, и устанавливается отдельно через pip
. Поддержка на embedded платформах пока отсутствует, хотя и запланирована.
Списка отличий от PyQt нет, хотя разработчики и заверяют, что PySide почти ни в чём не уступает, а скоро будет ещё и превосходить. С точки зрения коммерческого лицензирования, с PySide "всё включено" в стоимость лицензии Qt без дополнительной платы, а с PyQt надо ещё платить в Riverbank; с точки зрения Open Source, PySide доступен как под GPLv3, так и под LGPLv3, в то время как PyQt доступен только под GPLv3.
Дальнейшее портирование на MCU
Продолжается работа над портированием Qt на железо уровня микроконтроллеров. Помимо RTEMS были опробованы FreeRTOS (которая стала выглядеть чуть получше после того как Amazon добавил туда некоторую поддержку POSIX) и uClinux, и пока вывод такой, что мы всё-таки рекомендуем именно RTEMS.
Говоря о конкретных устройствах, помимо STM32F4/F7 удалось достичь хороших результатов на NXP i.MX RT1050.
Отказ от Qbs
Топ 10 предательств в аниме! Вероломно, без объявления войны, в официальном блоге было заявлено об отказе от Qbs.
Вкратце: разработка Qbs прекращается, хотя и будет выпущен ещё один релиз, поддержка закончится в конце 2019 года, qmake пока останется, но в перспективе (Qt 6) будет осуществлён переход на CMake как основную систему сборки.
Пост собрал две сотни комментариев (рекорд для нашего блога), и собрал бы больше, но комментарии к постам автоматически закрываются через две недели после публикации. Вот тут ещё есть комментарии на русском.
Опуская техническое обоснование решения, основное возмущение вызвал тот факт, что несколько лет сообществу твердили о том как Qbs прекрасен и какой это шаг вперёд, не говоря уже о заверениях что это будет официальная система сборки в Qt 6 и всем надо на неё переходить (и народ таки начал переходить), и тут вдруг Qbs закрывается таким стремительным домкратом.
Изменения в коммерческом лицензировании
Коммерческое лицензионное соглашение обновилось до версии 4.1. Добавился аппендикс с перечислением лицензируемого/распространяемого ПО.
Значительно улучшились условия лицензии для стартапов: во-первых, она теперь не со скидкой, а вообще полностью бесплатная, а во-вторых, теперь доступны компоненты и из Device Creation тоже (готовые образы на основе Yocto Linux, тулчейны для кросс-компиляции и т.д.), однако для распространения продуктов-устройств рантаймы покупать всё равно потребуется (логика такая, что если есть деньги на железо, то должны найтись и на рантаймы).
Лицензия для стартапов выдаётся на год и потом может быть продлена ещё на год. Юридически это полноценная коммерческая лицензия без необходимости выполнять требования GPL/LGPL. После первого года (или двух) она превращается в обычную лицензию за полную стоимость.
У стартапных лицензий действуют следующие ограничения:
- годовой доход компании должен быть меньше 100 000 долларов, иначе вы не квалифицируетесь как стартап;
- получить лицензии можно максимум на 3 разработчиков;
- техническая поддержка сильно урезана: 5 тикетов в месяц и низкий приоритет в очереди.
Кстати, не исключено, что вашу заявку на стартапную лицензию будет рассматривать как раз девушка с обложки статьи.
Другие новости
В этом году Qt World Summit прошёл два раза: Бостоне и потом в Берлине. Записей выступлений пока нет, есть только короткий видео-обзор берлинского и пост от KDAB.
Грядёт обновление иконок приложений:
Как вам? Мне тоже. А главное, откуда опять эта нужда в редизайне, не так давно был уже один, и довольно неплохой.
Компания Forrester провела исследование, в котором изучила влияние Qt на бизнес, всякие там ROI показатели и прочее. Вроде как это должно помочь компаниям оценить пользу от Qt и принять решение о приобретении коммерческой лицензии. Есть даже онлайн-калькулятор для подсчёта сэкономленных попугаев.
На этом с новостями пока всё, следующий выпуск будет где-нибудь в мае или как наберётся достаточно материала.
Автор: abagnale