03 November, 2011

Qt Developers Day 2011. Munich

На прошлой неделе я принимал участие в главном событии для людей занимающихся Qt Framework. Ниже небольшой рассказ об этом.

День первый
В первый день проходили тренинги, и я даже был зарегистрирован на "Глубокое погружение", однако, так туда и не попал, потому что отправился послушать разговоры на Contribution Summit

Данное мероприятие проходило  несколько в стороне от всех остальных и проводилось в формате unconference, что означает что рассписание выступлений составлялось с утра в ходе обсуждений, собственно вопросы, которые должны были подниматься перечислены на фото справа. А на фото в центре процесс составления собственно расписания.

Я выбрал для себя несколько обсуждений, которые хотелось бы послушать, это были:

Аналог CPAN для Qt. 
Забавный на мой взгляд проект, вы можете ознакомится с ним на сайте inqlude.org, смысл его заключается в том чтобы собрать в одном месте все 3rdParty библиотеки написанные с использованием Qt в одном месте. А также распространнять некоторое приложение, которое автоматически сможет обновлять эти библиотеки в вашей системе. На мой взгляд неплохая идея, но реализация кажется крайне странной. Впрочем, судя по всему, проект стартовал за несколько недель до QtDD, так что, поживем - увидим.
Уменьшение времени запуска Qt Quick приложений
К моему стыду, я почти спал на этом выступлении, и никак не мог уловить суть обсуждения, было понятно лишь одно -  ребята обсуждали местами крайне низкоуровневые оптимизации скорости запуска Qt Quick приложений.

Qt порт на Android
Лекцию проводил Tomas Senyk, он рассказывал о реализации порта на андройд, которая делается в рамках проекта Neccessitas. Впрочем, насколько я понял, это его участие в проекте это хобби, и занимается он им в свободное время.

Raspberry Pi и Qt 5
К большому моему сожалению я не попал на эту сессию, т.к. было мое время стоять на рекламном стенде компании, в которой я работаю.

Закончился первый день пьянкой от платинового спонсора (Digia) и розыгрышем Kindle.

День второй
Второй день начался с Keynotes на которых выступили люди из Nokia, Ubuntu и CNN. В самой первой сессии от Nokia рассказывалось о том как все хорошо и замечательно в мире Qt, показывали всякие бодрые графики и т.д., вообщем классическая вступительная часть.
Выступление Рика Спенсера(Rick Spencer) из Ubuntu, было более жизнеутверждающим, потому как он рассказывал, что "отныне и навеки" Qt и Ubuntu будут дружить :)
Выступление CNN я не слушал, ушел постоять на стенде и перекусить, ну а после CNN собственно было самое главное ключевое выступление Ларса(Lars Knoll). Он рассказал про новую модель контрибуции и ее основные принципы, про Qt Project, про то что нас ждет в Qt 4.8 и в Qt 5, про нацеленность на QML для построения UI, про модульность в Qt 5 и тому подобное.
Также на Keynotes проводился розыгрыш N9, суть конкурса заключалась в том, что у участников на бейджах были расставлены точки красного и синего цвета, в результате розыгрыша телефон получили все, у кого были синие точки. Впрочем на моем бейдже точек небыло вообще, что не помешало мне получить телефон. Об этом я писал в предыдущем посте.

Собственно, после этого начались технические сессии, и надо признатся я не вылезал из Qt Labs сессий фактически оба дня, и об этом ниже.

Using Qt Quick and the new Qt graphics stack, Scene Graph

Глубокий расссказ на тему перехода на Qt Scene Graph, объяснение как все работает изнутри, примеры как создавать кастомные компоненты, пересказать просто не смогу.

Qt Quick Components for Desktop

Блестящая live сессия во время которой, был создан готовый музыкальный проигрыватель на QML,  c разбиением на плейлисты, треки и показом обложки альбома. Показаны работающие примеры таких сложных копонентов как таблица (аналог QTableWidget), Toolbar, разные типы меню, кнопок, слайдеров сплиттеров и многое другое.

What's new in Qt Quick 2.0
Очень впечатлявшая меня лекция, не смотря на то, что я далек от игростроя, а большинство примеров относились как раз к игровому направлению. Было показано множество примеров использования новых возможностей Qt Quick 2.0 в частности QtQuick.Particles.

QPA - The Qt Platform Abstraction
Эту лекцию я слушал в пол-уха, и пошел на нее потому что просто больше некуда было пойти, обсуждались очень специфичные вещи, касающиеся переноса Qt на различные платформы.



Во время кофе-брейка мы поедали Muffins любезно приготовленные нашими немецкими коллегами по Qt Developer Network.


Хочется отметить, что аудитория Qt Labs практически на всех сессиях была забита людьми под завязку, люди стояли, сидели на полу, заглядывали в дверь, даже дополнительные стулья появивишиеся в конце второго дня не спасли ситуацию.
А после сессий, началась дискотека в стиле Oktoberfest


День третий
Dance, Dance QML Revolution - Using Qt for MeeGo development
Это сессия моего коллеги из ICS, на которой он рассмотрел две игровые программы написанные с использованием Qt/QML. Первая из них носит название Dance, Dance Revolution и преставляет из себя приложение взаимодействующей с танцевальным полом с датчиками, которое проигрывает мелодию, а игрок должен в правильный момент наступить на нужный датчик - очень напоминает Guitar Hero, только вместо клавиатуры - танцевальный пол.
Второй игрой была игра под названием Kolobok, это классический 2D Adventure, самым близким примером будут небезызвестные братья Марио.

Persistent Object Storage for Qt Quick
На этой лекции расказывали про QtJsonDb - глобальную NoSQL СУБД для QML приложений. суть ее заключается в общем хранилище данных для всех приложений, это например имеет смысл, если вы хотите получать в своих приложениях данные из записной книги телефона без каких либо дополнительных API и расходов. Наиболее похожей на данную систему существующей реализаций я могу назвать Qt Messaging Framework, с той лишь разницей, что он был ориентирован исключиетльно на хранение данных относящихся к пользовательским сообщениям (IM, EMail, SMS, MMS), Здесь же речь идет о хранилище в более широком смысле этого понятия.

How to contribute to Qt
На мой взгляд одна из ключевых лекций на этой конференции. Мариус и Тьяго, в режиме online показали как контрибьютить в Qt, как происходит Code Review, как происходит одобрение или отклонение того или иного изменения, а также рассказали про систему раннего обнаружения ошибок и про систему Continues Integration (CI).

Qt 5 roadmap - Getting into the details
Ключевая сессия, краткое резюме:
1. Модульность
2. 
Qt Quick 2.0
3. QWidget вместе со всеми наследниками переезжает в модуль QtWidgets. Этот модуль больше не будет разрабатываться Nokia, но каждый праве продолжать контрибьютить в него.
4. Десктопный UI будет постепенно переведен на Qt Components
5. Строгая система выпуска релизов.
6. Релиз Qt 5 к середине 2012 года.

Заключение
Выше перечислено далеко не все, что удалось увидеть и услышать на конференции, поэтому, крайне рекомендую всем желающим не пропустить это мероприятие в следующем году.
В заключение хочу вставить официальный видео-ролик, если вы его еще не видели, на 2:43 можно наблюдать меня с командой остальных модераторов Qt Developer Network





6 comments:

  1. А кейноты и тренинги будут доступны в сети ?

    ReplyDelete
  2. @Ievgen Я думаю будут, но только после того как пройдут QtDD в SF

    ReplyDelete
  3. "Он рассказал про новую модель контрибуции и ее основные принципы, про Qt Project," - а можешь как-то поподробнее про это рассказать? Мне вот это интересно будет. Я читал, на хабре кажется, там вводится какая-то новая модель управления. Что принципиально, так сказать, крутого в ней будет, в целом для дальнейшего развития Qt ? Какие принципы?

    ReplyDelete
  4. @Goran
    Принципы очень просты:
    1. Каждый может коммитить
    2. Некоторые могут утверждать коммиты
    3. Совсем небольшое количество людей, могут задавать вектор развития отдельных модулей, и накладывать вето на утвержденные коммиты
    4. Только один Super User, который может все.

    Здесь подробнее об этом http://wiki.qt-project.org/The_Qt_Governance_Model

    А здесь подробнее про сам цикл разработки: http://wiki.qt-project.org/Qt_Contribution_Guidelines

    ReplyDelete
  5. Кто-нибудь в курсе, что за фишка такая в заключительном ролике продемонстрирована на 3:38 ?

    ReplyDelete
  6. @Huan, да, это NFC Tag. Я писал об этом на хабре в рамках конкурса: http://habrahabr.ru/blogs/mobiledev/133471/

    ReplyDelete