Версия Qt 5.3 доступна для загрузки

    Итак, давайте посмотрим, что нового в этом релизе:



    Поддержка новых платформ


    Бета-версия Qt для Windows Runtime
    Qt для Windows Runtime перешла в стадию поддерживаемой бета-версии, что означает возможность запуска приложений не только на Windows Phone, но и на планшетах и настольных компьютерах.
    Это значит, что теперь вы можете использовать Qt на:

    • Всех компьютерах и планшетах, работающих на Windows 8.1, где используется Modern UI
    • ARM планшетах на WinRT, таких как Microsoft Surface
    • Смартфонах на Windows Phone 8

    Приложения, разработанные с использованием Qt могут быть добавлены в Windows (Phone) Store.
    Инструменты для поддержки этой платформы уже интегрированы Qt Creator, что позволяет заливать программы напрямую на устройство. Узнать больше можно из видео по ссылке.

    Официальная поддержка QNX 6.6 и QNX 6.5 SP1
    Также добавлена официальная поддержка последней версии QNX Neutrino 6.6, однако доступна она только в платной версии Qt Enterprise.

    Новые функции


    QQuickWidget
    Если раньше было строгое разделение между интерфейсами на Qt Widget и Qt Quick, и нужно было выбрать что-то одно, то теперь границы начинают стираться. С появлением класса QQuickWidget стало возможным встраивать компоненты Qt Quick в приложения, основанные на QWidget. Такой подход позволяет легко добавлять интерактивные элементы в традиционные приложения.

    Компилятор Qt Quick
    В платную версию Qt Enterprise добавлен компилятор Qt Quick, преобразующий соответствующие файлы в нативный код. Не удивительно, что такой прием позволяет значительно поднять производительность на платформах (iOS и WinRT), где не используется JIT. С другой стороны, из-за того, что парсинг интерфейсов происходит во время компиляции, удалось ускорить запуск приложений. Еще одной полезной особенностью такого подхода будет защита исходного кода, который сейчас находится внутри приложения в открытом виде.

    Purchasing API
    Добавлена поддержка in-app purchases — важнейшей функции в деле монетизации приложения. Для упрощения использования таких покупок в Qt приложениях было добавлено специализированное Purchasing API. Qt Purchasing API доступно только в платной Enterprise версии, на сегодня заявлена поддержка Android (Google Play) и iOS (App Store). В дальнейшем ожидается расширение поддерживаемых платформ, включая WinRT (Windows Store / Windows Phone Store), Mac App store. Еще одним направлением в будущем может стать поддержка встраивания рекламы.

    Веб-сокеты и облака
    В Qt 5.3 также добавлено API для работы с веб-сокетами, что позволяет использовать соответствующую технологию как из C++, так и из QML. Есть возможность создавать как клиентские, так и серверные приложения. Больше того, если задействовать Qt Cloud Services, можно легко развернуть, например, сервер рассылки push-уведомлений или организовать многопользовательскую среду. Больше информации можно найти на qtcloudservices.com.

    Остальное
    В Qt Quick Controls добавлен стандартный элемент календаря (Calendar), родные диалоговые окна и возможность кастомизации панели меню. Qt Positioning API теперь доступно на Android и iOS, а Qt Bluetooth API пока только на Android. Была проведена большая работа по расширению возможностей модуля Qt Print Support.

    Послесловие


    Очевидно, что бизнес-модель Digia не может быть такой же, как как во времена Nokia, ведь у них разные задачи и возможности. С каждым релизом это проявляется все ярче: с одной стороны очень интенсивно идет портирование фреймворка на новые платформы, с другой — все больше функций становятся доступны только в платной версии. Цена на нее, прямо скажем, совсем не демократична, за месяц подписки на разработку для мобильных платформ просят 150$, за все платформы — 400$. При этом минимальный срок подписки — 3 месяца. К сожалению, этот релиз не принес сколько-нибудь значимых изменений в плане разработки стандартных приложений для мобильных ОС, разве что Message dialog на Android стал выглядеть нативно, остальные всё ещё печальны.

    Скачать свежий SDK можно здесь.

    Обзор возможностей мобильной разработки на QML.

    Полный чейнжлог.
    Официальный пост в блоге Digia.
    Поделиться публикацией

    Похожие публикации

    Комментарии 7

      +2
      Не понимаю, зачем Qt на телефоне, за исключением того, что компания зарабатывает на подписке таких любителей. Одно дело писать для десктопа, совсем другое — для телефонов. Не знаю, как с iOS, но в Android при разработке на Qt придётся делать JNI-обёртки, много. И ещё объём внешних зависимостей напрягает. Вот скриншот структуры:
      image

      Вариант справа подразумевает запаковку всех зависимостей в APK, что добавит 30-40мб сверху. И это не ассеты для игры, а рантайм для вашего калькулятора.
      Вариант слева требует установки внешнего хелпера Ministro, что возвращает нас в 2004 год, когда в PalmOS нужно было устанавливать всякие рантаймы вроде PocketC Runtime. Типичная реакция современного пользователя
      image
      Если, разумеется, вы не раздаёте планшеты с вшитым Ministro и самим приложением всяким ведомствам под заказ.

      Имхо, единственная фича от всего стека Qt, которая реально пригодилась бы на телефонах — это Qml/QtQuick для действительно сложных приложений, которые и не должны копировать нативный интерфейс. Как Photoshop на ПК — не копирует нативный интерфейс, а работать удобно. Таким и +30мб на рантайм не жалко.
      Причём для работы QtQuick достаточно лишь NativeActivity и сюрфейса, по которому рисовать. Разработка таких приложений будет идти легче. В основном из-за заранее низких ожиданий — мол, что вы хотите, это же NativeActivity. А надеяться на идеальный порт Qt, с его-то виджетами и модулями вроде QtXml, при разработке под Android (.., iOS, ..) — это удел особо упоротых.
        0
        Никто и не предлагает использовать Qt Widgets на телефоне, они ведь не подходят для сенсорно-ориентированных интерфейсов, да и ведут себя по-другому.
          0
          Ну, всё равно порт Qt на Android включает в себя и это в том числе.
          Screen 1
          image

          А вообще, может быть два подхода с QtQuick — первый, это когда QtQuick используется как часть приложения, а всякие диалоги/меню и так далее вызываются стандартными средствами Android. Второй — когда используется NativeActivity, то есть в режиме для игр, когда взаимодействие с пользователем лежит на плечах программиста QML.
          И их отказ от NativeActivity был следствием углубления в первый.
          Screen 2
          image

          Но, как я уже наисал выше, если требуется хорошая интеграция и нативные контролы — лучше уж сразу идти учить Android SDK и забить на возню с Qt. Xamarin уже давно всё умеют, и C# приятней C++/Qt, однако когда дело доходит до приложений и до взаимодейтсвия с Android SDK — начинается боль.
          Процесс кодинга Xamarin/C# под Android
          image
            0
            Причём для работы QtQuick достаточно лишь NativeActivity...
            И их отказ от NativeActivity был следствием...
            Я запутался, вроде как верно первое, и NativeActivity и используют. Клавиатура есть, лейоуты тоже, мультимедиа поддерживается. Другое дело, что контролов/стилей нет, потому до написания стандартных приложений еще далеко, но интеграция будет как в Xamarin, это да.
              0
              Причём для работы QtQuick достаточно лишь NativeActivity
              Это верно технически.

              NativeActivity и используют
              Нет, они сделали QtActivity.java. Слайд про минусы NativeActivity не мой, это из вебкаста «Qt on Android: Is it right for you?» от авторов порта, вероятно они что-то скрывают. ;)
            0
            Тут скорее вопрос в адаптации. В свое время на платформе Meego Qt-приложения выглядели и работали очень по-мобильному. Я когда ради интереса написал клиент к mpd (точнее даже не написал, а скомпилировал написанный ранее под десктоп), он выглядел и работал лучше, чем другие, написанные на gtk-mm. Так что если разработчики Qt поднатужатся и сделают так, чтобы все стандартные контролы выглядели и работали как нативные, получится натуральная конфетка.
          +2
          вкусно… пошел обновляться!

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое