はじめに ─Qt Developer Daysとは
ベルリンで開催されたQt Developer Days 2014 Europeに参加してきました。
Qt Developer DaysはQtの開発者やユーザが集まるカンファレンスです。Qtの最新情報に関するセッションやトレーニング、Qtを使用する上でのアドバイスなど、初心者から熟練者までの幅広い層を対象としたイベントで、Qtに関する理解を深めたり、開発者や他のユーザとの親交を深めたりする場となっています。
例年、10月はドイツ、11月はアメリカで開催されており、今年はベルリンで10月6日~8日、アメリカ、サンフランシスコでは11月3日~5日の日程で開催されました。私は勤務先である( 株) SRAの技術者派遣制度を利用し、2名でこのQt Developer Days 2014 Europeに参加してきました。イベントの大まかなスケジュールは初日がトレーニングデー、残る日程がキーノートなどのカンファレンスデーとなっています。
今回の会場はBerlin Congress Centreという会議施設で、ベルリンのアレクサンダープラッツ駅から至近でとてもアクセスしやすい場所でした。
Qt Developer Daysの会場前
トレーニングデー
我々は、10月6日のトレーニングデーから参加しました。密度の濃い各セッションが午前10時から午後6時ごろまで行われます。参加者は以下の8つのコースの中から事前に選択をしたものを受講します。
Intro to QML
Intro to Testing Qt applications with Squish
Model/View programming in Qt
Intro to Multithreaded Programming with Qt
Intro to Modern OpenGl with Qt
What’s new in C++11/C++14
Developing with Qt for QNX platforms
Qt for Mobile Platforms
コーヒーブレークが適宜設けられ、受講者はホールで軽食などを楽しめます
セッションのうち半分はビギナー向け、もう半分は実践向けという構成です。コースにより進め方や雰囲気などは異なると思いますが、講師と受講者の距離感が日本のものと大きく違うことに驚きました。日本でよくある、いわゆる授業といった雰囲気ではなく、受講者は積極的に発言を行い、講師と共にひとつのセッションを作っているように見えました。
私はその中で「What's new in C++11/C++14」と題したセッションに出席しました。このセッションの対象者はC++を使用しているエンジニアです。Qtに限った話だけではなく、最新のC++仕様であるC++ 11/C++ 14で採用されている新しい仕様についての講義になります。
このセッションでは、「 ムーブセマンティクス」のトピックに最も多くの時間が割かれました。「 ムーブセマンティクス」とは、オブジェクトのコピーを所有権の変更で行うことにより無駄なコピーを減らしアプリケーションの効率化を図る試みになります。C++11から新たに採用された右辺値参照とムーブコンストラクタを用いて、この仕組を実現します。とてもシンプルな変更のみで、約90%のアプリケーションが省メモリ/高速化できるとのことでした。
セッションはもちろん英語で行われますが、提示されるソースコードとスライドで大まかな内容の把握ができます。適宜例題などが出題され、丁寧な解説とともに回答が示されます。PCがなくても考えられるよう、コードを作成するというより、仕組みについて理解を深めるといったものでした。実際にPCを持ち込んでいる人も全体の半分以下で、見渡してみた感じだと、コードを作成し回答をしている人はいませんでした。
最後に修了書が受講者全員に配布され、トレーニングセッションは終了となります。
キーノート
10月7日からキーノートを皮切りに本格的なカンファレンスがスタートします。トレーニングデーにも多くの人が参加していましたが、この日の受付は開始から大混雑していました。
カンファレンス初日の受付の様子
キーノート開始前のメインホール
キーノートの前にKDABのCEOであるKalle Dalheimer氏によるウェルカムスピーチがあり、その中で彼は「多くのゲストがいる中、遠方から来た日本人が二人います」と言い、我々に挙手を求めました。会場のゲストからも拍手をもって我々の参加を歓迎してくれたことは大変良い思い出となりました。
続いてキーノートが始まります。メインのキーノートはThe Qt Company の Lars Knoll氏による「The Qt Crystal Ball」と題したプレゼンテーションです。これまでQtの開発はDigiaの一部門が行っていましたが、2014年9月にThe Qt Companyとして分社化されました。したがって今回のQt Developer Daysの開催は新体制になってから初めてのものになります。
最初に、Qtのダウンロード数の変化や、リサーチ会社research2guidance社による「Cross Platform Tool Benchmarking 2014」の調査結果を元に、Qtの広がりや他のクロスプラットフォームに対する優位性が示されました。
ダウンロード数について、Qt 5.3はQt 5.2と比較して、リリース後の同一期間で約2倍のダウンロード数を記録しており、利用者数が拡大していることがわかります。また、同社の調査結果では「品質」「 リリースしている プラットフォーム数」のランキングで1位、「 時間の節約」で3位(ただし1位のV-PlayもQtで作られている)という結果となり、他のクロスプラットフォームツールと比較し、Qtの優位性を示す結果となっています。
本題は、最近のQtの動向についての話でした。以下にその一部を示します。
Indie Mobileライセンス
主に個人ユーザをターゲットとしたモバイル環境で使用可能なライセンスとして、Indie Mobileライセンスの紹介がありました。対象となるプラットフォームはWindows RT/Android/iOSとなっています。月額サブスクリプションで提供され、カード決済で購入する形態です。
各種プラットフォーム対応状況
現在サポートしているプラットフォームについての紹介がありました。デスクトップのMac OS X 10.10やWindows 10対応、モバイル環境のiOS/Androidでの対応状況について説明がありました。Qt 5.5以降になるとのことですが、アプリ内課金にも対応予定とのことです。
商用ライセンスで提供される機能
商用ライセンスにおいて利用可能な機能追加や改善点についても紹介されました。Qt Quick 2D Rendererが発表されました。こちらの機能を用いることで、現状実行にOpenGLが必須となっているQt Quick 2アプリケーションを、OpenGL無しの環境で実行できるようになります。描画は2Dでレンダリングされるため ソフトウェアレンダリングが可能になりますが、DirectFb(Linux)やDirect2D(Windows)による2Dのハードウェアアクセラレーションも利用できます。
また、QMLをJITではなくあらかじめ実行形式にコンパイルして高速化を図る機能であるQt Quick Compilerについて、Qt 5.4でCMake統合が追加され、バージョン 2.0にアップデートされます。一方、IDEの改善として、Qt Creator 3.3でQML Profilerに2つの改善が予定 されています。1つはJavaScript Heap Profilerの追加で、もう1つはSecene Graph Profilerの改善です。
その他、商用ライセンスで利用可能なアドオンのうちの1つとして提供されているQt Virtual KeyboardのWindows対応も表明されました。
Qt 5.4 情報
目前にリリースが迫っているQt 5.4では、上記以外にも次のような新機能の追加、Technology Previewによる機能の試験的提供が行われます。
Bluetooth LE APIのサポート
BlueZ 4/5を利用したBluetooth LE APIがTechnology Previewとして新たに追加されます。BlueZがLinuxを対象としたライブラリであるため、対応するプラットフォームはLinuxやAndroidのみとなります。Windows RTやiOSのサポートは今後の予定として考えられているとのことでした。
すべてのプラットフォームにおけるHigh-DPIサポート
OS XのRetinaディスプレイ対応で培った高精細なディスプレイ環境に対する表示が汎用的に実装され全てのプラットフォーム向けにサポートされます。
WindowsのGL描画の動的な切り替え
これまでWindowsでは、使用するOpenGLについてANGLEまたはOpenGL Desktopのどちらを使用するかどうかをconfigure時に決定する必要があり、不便な状況になっていましたが、どちらを使用するかを実行時に動的に決定できるようになります。
Windows Runtimeのサポート
Windows 8.1, Windows Phone 8.1以降のプラットフォームが新たに正式にサポートされます。
Qt WebEngineの正式リリース
今までTechnology Previewで提供されていたQt WebEngineが正式リリースされます。これまで提供されていたQt WebKitの提供も行われますが、置き換わっていくとのことです。
Qt WebViewのTechnology Previewリリース
Android/iOS上で、軽量なネイティブの部品を使ってWebページを表示するQt WebViewをTechnology Previewで利用できるようになります。
Qt Canvas3DのTechnology Previewリリース
WebGLをQt Quickで利用するQt Canvas3DがTechnology Previewでリリースされます。Qt Quickのみでウィジェットは非サポートとなっています。
その他
Wayland向けのQPAプラグインや、マウントされたストレージの情報を取得するクラスQStorageInfoが追加されています。
今後のリリーススケジュールは以下のようになると発表がありました。
2014/11…Qt 5.4リリース(※現時点で12月に延期)
2014/12…Qt Creator 3.3リリース
2015第一四半期…Qt 4.8.7リリース
2015/04…Qt 5.5 Qt Creator 3.4リリース
今年から新たに始まったQt Championsの発表も注目を集めました。Qt Championsとは1年間でQtコミュニティに大きな貢献残した人に与えられるタイトルになります。第1回目のチャンピオンに選ばれたのはSamuel Gaist氏です。コミュニティにおける彼の前向きな回答が主な受賞理由です。彼にはTシャツとキャップ、そして今後1年間のQtライセンスが副賞として寄贈されました。
なお、11月3日から開催されたQt Developer Days 2014 San Franciscoにおいて、日本のQtユーザー会の鈴木佑さんがQt Championsに選ばれました。皆様もこのタイトルを目指し、コミュニティに貢献されてはいかがでしょうか?
議論が深まるカンファレンス
カンファレンス期間中、テーマ別にビギナー向けから深く踏み込んだ内容のものまで2日間で50以上セッションが行われます。やはり最近の流行りを反映させ、モバイルデバイス関連やQML関連のセッションが目立ちました。またQt内部でも採用されているC++11やC++14関連の話もセッション内で随所に見られました。こちらもトレーニングセッションと同様に熱心な質疑応答が続きました。講師が答えるばかりでなく、聴衆同士で議論が始まることも度々あり、参加者の熱がひしひしと伝わってきました。
私が参加した中から、「 Deep Dive into Qt Quick and Qt Quick Controls」というセッションについて紹介します。アプリケーションのライブコーディングを通してQt Quick Controlの使い方を学ぶチュートリアル形式のセッションになります。題材となるアプリケーションは、選択した画像ファイルをヒストグラムとともに画面に表示するといったものです。
題材となったアプリケーションの設計図
TableViewやTabViewを使用し、アプリケーションの作成がスピーディに進んでいきます。この程度のアプリケーションが短時間で作成できることを考えると、今さらながらQMLの有効性を感じました。
デモブース
会場には、ホストであるKDAB、ICS、Digiaや、パートナー/スポンサーのQNX、Qt専用の自動テストツールを提供しているfroglogicなどが展示するデモブースが並んでいます。各社とも力を入れており、参加者がブースに近づくとすぐに声をかけ、製品の説明をしていました。
展示会場のデモ
最後に
今年のQt Developer Days 2014 Europeではおよそ650名の参加者があったそうです。年内予定の新バージョン5.4のリリースなど、今後のQtの動向に対する注目と期待を感じました。Qtのダウンロード数は相変わらず増加傾向にあり、Qtコミュニティ全体がさらに活発に発展していけばと思っています。規模は小さいですが、2014年5月には東京でもQt Developer Dayが開催されました。興味はあるが海外には行けないという方は、こちらに参加されると良いかもしれません。
今回のイベントでの各セッションの資料などは、すべてではありませんが、公式サイトからダウンロードが可能となっています。下記URLからセッション詳細ページを参照してください。
SRAのQt関連サービスご紹介
Qtの国内販売代理店として2003年からQtの普及・促進に貢献
Qtのライセンス販売だけでなく、コンサルティングから開発、サポートサービスまでをトータルに提供
多くのQtエンジニアが在籍しており、Qt開発受託の実績豊富
3名のQtコンサルタントにより、導入のご支援、パフォーマンスチューニング、Qt自身のカスタマイズ等のサービスを提供
Qtの導入を検討する顧客向けに、Qtプログラミング体験セミナーを隔月で無償で開催
より実践的なプログラミングスキルを学べる有償トレーニングも毎月開催
詳細はSRAのQtサイト 参照