Мобильное приложение на Qt Quick: возможности и перспективы

5e14eb2500210c04635891c9a17de018.pngПредставим на минуту, что существует простая технология, позволяющая писать мобильные приложения под все платформы сразу. Без проблем с производительностью, с легким доступом к железу на низком уровне. Бесплатно*. Приложения выглядят почти как родные. Ведут себя как родные. Просто мечта, а не технология! «Так не бывает» — скажете вы. И будете правы. Почти. Но у сообщества есть отличный шанс изменить ситуацию, благо все предпосылки для этого есть. Если интересно, что уже сделано, и что еще предстоит — прошу под кат.* Печалит только юридическая неопределенность при статической линковке (LGPL), обязательной, например, под iOS

Возможности Наверняка большинство разработчиков так или иначе слышало о Qt Quick. Если вкратце, то концепция создания интерфейсов заключается в построении визуального дерева из прямоугольных элементов, логика описывается на JavaScript. Доступны мощная машина состояний, куча разных анимаций, стандартные элементы вроде списков или областей ввода. То есть уже сегодня технология идеально подходит для кастомных интерфейсов типа терминалов оплаты или систем управления умного дома. Важнейшее преимущество — широкий охват платформ, начиная Android и заканчивая Tizen.Следующий ролик отлично демонстрирует текущие возможности библиотеки:[embedded content]

Проблемы Возможно у некоторых даже возникали мысли попробовать написать какой-нибудь хобби-проект на этой новомодной штуке. Однако тут открывается сразу несколько проблем, которые только предстоит решить: Компоненты, точнее их полное отсутствие. Библиотека стандартных компонентов доступна только в ОС, использующих Qt Quick как базу:

MeeGo UI Components Cascades by RIM Ubuntu User Interface Toolkit Jolla UI Components Symbian UI Components Plasma UI Components by KDE Документация: сейчас в интернете куча статей в стиле «Моё первое приложение на QML» или «Связываем C++ и QML», однако действительно полезных — единицы.Qt Quick 1.0: интернет переполнен нерабочим кодом, эта версия умерла не успев получить широкого распространения, зато оставила жирный след в истории.

Поведение: понятно, что с некоторым усредненным приложением (как на видео выше) разберутся пользователи любой платформы, однако вряд ли будет приятно пользоваться таким вот пришельцем.

Предложения Потому сегодня всякий, кто захочет создать более-менее традиционное приложение, вынужден переизобретать велосипед, который в общем-то не сложный, но времени отнимает много. Так что предлагаю не ждать, пока ребята из Digia напишут тулкиты для всех платформ, а взять эту работу на себя.Причем есть три основных направления: Компоненты: Судя по этой таблице qt-project.org/wiki/Qt-Quick-Controls-for-Tizen практически все компоненты написаны парой энтузиастов, так что ничего сверхъестественного тут нет. Хвататься за все платформы сразу, конечно, не стоит, начнем с Android. С другой стороны, если кому-то интересно писать именно под Windows Phone — почему нет, многопоточность рулит! Картинки интерфейсов, цвета, иконки под Android тут.

Поведение: Приложения «ни рыба ни мясо» отталкивают пользователей, потому нужно переработать HIG каждой платформы, написав простые правила, скажем по работе со списками: каким образом принято организовывать удаление, редактирование, навигацию между экранами.

Документация: Можно выделить основные не освещенные темы, разделить их, написать соответствующие статьи.

В завершение небольшой ролик с кастомным пикером, статью про который постараюсь написать к началу следующей недели.[embedded content]

P.S. Qt 5.3, до выхода которой остается меньше недели, обещает принести официальную поддержку Windows Phone, новых диалогов, виджета календаря, так что думаю стоит сразу ориентироваться на эту версию.P.P. S. Хотел бы услышать ваши предложения касательно хостинга, площадки для обсуждения, лицензии, общей организации работ.

© Habrahabr.ru