войти зарегистрироваться

Qt SoftwareА давайте пощупаем Qt5

Выход первой альфы Qt5 уже не за горами, но зачем нам ждать этого момента, если мы можем прямо сейчас окунуться в ближайшее будущее с его QtQuick2, V8 и qpa?

Qt SoftwareСоздаем DatePicker аналогичный стандартному в Harmattan

Некоторое время назад в рамках конкурса на лучшую статью о Qt, я разработал компонент TimePicker и написал о нем статью. Мало того, в комментариях, я говорил о том, что следующим компонентом будет DatePicker. Несколько дней назад я закончил его.

Для тех кто не читал предыдущую статью поясняю: не все компоненты используемые Nokia в своих приложениях на Harmattan свободны, некоторые из них не включены в Qt Components для MeeGo, а некоторые заменены суррогатами, картинка слева — оригинал, картинка справа — предлагаемый разработчикам суррогат компонента DatePicker.

Блог компании NokiaЛучшие приёмы Qt Quick: Компоненты

QML предоставляет удобный способ разбиения кода под названием «Компоненты». Самым простым способом создания компонента, который можно будет в последствии использовать многократно, является добавление нового файла в рабочую директорию главного QML-файла.

Example.qml:
import QtQuick 1.0
Rectangle {
}

main.qml:
import QtQuick 1.0
Example {
}


Также, компоненты можно упаковывать как модули (Qt Components являются таким модулем) и публиковать в виде плагинов. Этот пост посвящён использованию компонентов для написания чистого и легко поддерживаемого QML-кода.

Создание новых компонентов


Первый пример показал простоту создания дополнительных компонентов, так что не бойтесь их использовать.

Qt SoftwareC++ и QML. Эссе ни о чём

Этот пост участвует в конкурсе „Умные телефоны за умные посты“

Ну, или по крайней мере думает, что участвует :) Сочинение на вольную тему под катом.

Qt SoftwareПрименение шейдеров OpenGL в QML

Этот пост участвует в конкурсе „Умные телефоны за умные посты“

Данный пост посвящен применению шейдеров OpenGL вместе с элементами декларативного языка QML. Тема, на мой взгляд, является актуальной, так как в будущей версии QML 2.0 планируется широко использовать OpenGL, как backend для отрисовки графических элементов интерфейса. Написание шейдеров — тема непростая и целью данного поста является то, чтобы в первую очередь человек, прочитав её, мог сразу же что-то попробовать сделать интересное для себя и поэкспериментировать, получив, например, вот такие примеры:



В конце я приведу полезные ссылки, где Вы сможете посмотреть материал для дальнейшего, более глубокого изучения данной темы, если она конечно Вас заинтересует, и реализовать еще более интересные шейдеры, применив их вместе с элементами языка QML. Работу с шейдерами можно рассмотреть на примере различных элементов QML: ShaderEffectItem, множества классов Qt3D, так же использующих OpenGL и т.д. В данном посте я продемонстрирую несколько примеров, используя элемент ShaderEffectItem вместе с ShaderEffectSource.

Qt SoftwareDrag'n'Drop в QML — это просто! Или 5 шагов до цели

Этот пост участвует в конкурсе „Умные телефоны за умные посты“.

Drag'n'Drop является неоспоримо важным элементом взаимодействия пользователя и графического окружения. К сожалению, в QML нет встроенного механизма Drag'n'Drop для View. Поэтому, я написал небольшой пример на основе GridView с 16 изображениями.

Этот пример Drag'n'Drop-а не претендует на совершенство (есть несколько других реализаций, которые визуально возможно более совершенны), а больше преследует цель показать, что QML является очень гибким и простым средством разработки.

Для начала небольшое видео, а под катом 5 простых шагов для получения подобного результата.


Qt SoftwareСоздаем TimePicker аналогичный стандартному в Harmattan

Этот пост участвует в конкурсе „Умные телефоны за умные посты


Слева на картинке вы можете увидеть, как выглядит TimePicker (компонент настройки времени) в стандартных приложениях MeeGo Harmattan от Nokia. А справа TimePicker из MeeGo Qt Components (Extras), который предлагается разработчикам для использования. Различия на лицо.

Определенно, становится ясно, что существует некая несправедливость, потому что используемый Nokia компонент недоступен разработчикам сторонних приложений, несмотря на то, что он более красив и функционален. Честно говоря, на мой взгляд, это лучший вариант TimePicker'а, который я видел.

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

Qt SoftwareQML — больше, чем просто GUI

Этот пост участвует в конкурсе „Умные телефоны за умные посты“.

Пятница, как известно, — конец рабочей недели, лучшее время для развлечения и игр. А лучшие игры — это те, которые увлекательны, в которых надо немножко подумать, и в которые можно сыграть с друзьями. Одну из таких игр я и решил написать.

Этот пост не является очередным переводом или вольным изложением разнообразных QML Howto и Quick Start. Скорее, это описание подводных камней, с которыми можно столкнуться при написании реального приложения.

Игровое полеКогда Qt Quick/QML только было заявлено, от Нокии звучали слова, что «в перспективе не только пользовательский интерфейс будет писаться на Qt Quick, но и вся логика несложных приложений будет написана на яваскрипте, программистам не потребуется написать ни строчки кода на плюсах». Заявление было ещё более провокационное, чем мой заголовок, и сразу меня заинтересовало: я решил попробовать написать несложную игру без единой строчки кода на плюсах.

Чтобы подогреть интерес, добавлю, что:
  • обычно я код пишу как раз на плюсах
  • я достаточно слабо знаю JS
  • я не умею и ненавижу делать интерфейсы
  • когда-то я попытался сделать эту же игру на честном Qt, но сломался, не выдержав общения с QGraphicsScene и другими интересными классами
  • результат моих трудов можно не только скачать, но и сыграть в них по сети
  • все исходники можно скачать у меня из bazaar или тарболлом.


Об остальном мы узнаем под катом.

Блог компании NokiaКак мы разрабатывали мобильный гид Toozla для Symbian и MeeGo

Мысль о том, что наш мобильный аудио-гид по интересным местам Toozla нужно написать для платформы Symbian, нас посещала давно. Но до создания приложения руки дошли лишь в начале 2011 года — примерно за месяц до решения Nokia сделать ставку на Windows Phone 7. Впрочем, на наши планы это никак не повлияло: устройства на Symbian и в то время, и по сей день занимают большой процент на рынке.

Выбирая необходимый вариант разработки, мы исходили из трёх возможных путей.

Первый — использовать нативный Symbian SDK. Основным плюсом при выборе Symbian SDK был бы максимальный охват устройств, начиная с Symbian 3rd Edition. Однако на этом SDK писать программы довольно сложно (особенно, когда дело доходит до UI), поэтому этот вариант разработки мы быстро отмели.

Второй путь — использовать Qt SDK 1.0. Данный devkit вышел в середине 2010 года и был основан на Qt 4.6.3. В отличие от Symbian SDK, данный вариант позволял упростить разработку (особенно работу со специфичными для мобильных устройств API) и рассчитывать на кроссплатформенность. Среди минусов данного решения были меньший охват устройств (только Symbian v1 и Symbian v3) и, всё-таки, некоторая сложность разработки современного UI.

BlackBerryРазработка для PlayBook с Native SDK

Хотел поделиться своим личным видением ситуации с разработкой для BlackBerry PlayBook и немного рассказать о своём опыте использования Native SDK. Так сложилось, что я уже несколько лет работаю с ОСРВ QNX, которая стала основой для операционной системы PlayBook — BlackBerry Tablet OS. Сразу скажу, что сама платформа PlayBook, как и QNX, мне нравится. Однако, не буду никого агитировать за или против, а просто расскажу, что и как.

Наверное, стоит начать с того, что сейчас существуют две версии BlackBerry Tablet OS: текущая 1.0.x и бета-версия 2.0.0.x. Мне удалось поработать с двумя версиями. Вторая версия сейчас доступна для тестирования и должна выйти в середине февраля следующего года. Она будет включать много приятных изменений. Помимо прочего заявлена поддержка приложений Android. Есть, конечно, ряд ограничений, но авторы большинства приложений могут с лёгкостью перепаковать свои приложения для работы на PlayBook. Считаю, что это достаточно «вкусная» возможность. Приложения, разработанные для первой версии (в том числе и при помощи NDK), замечательно работают во второй.

Помимо уже существующих двух версий операционной системы для PlayBook, в следующем году ожидается выход платформы BBX. Платформа BBX также основана на QNX и будет использоваться при разработке не только планшетов, но и всех новых смартфонов BlackBerry. Очень похоже, что PlayBook представляет собой ступеньку от BlackBerry OS к BBX. Но это будет в следующем году, а пока рассмотрим то, что есть уже сейчас.