Qtブログ(日本語)

Qt Quick 1.0 と今後について(別名: リンクだらけの記事)

作成者: 鈴木 佑|Mar 8, 2011 12:37:28 AM

この記事は Qt Blog の “Qt Quick 1.0 and beyond (or, the post of many links)” を翻訳したものです。
執筆: Henrik Hartz 2011年3月1日

Qt Quick 1.0 が始まりました!Qt Quick を最近知った方を対象にこれまでのまとめをしたいと思います。この記事には、 Qt コミュニティ[1][2][3]のアクティブなメンバーにとっては、「この道がどこに続くかがより明確になること」以外には目新しい内容はほとんどないでしょう。 Qt Quick は以下の3つの技術のコレクションです

  • QtDeclarative - Qt Quick のランタイム及びネイティブとの連携機能を提供する Qt に含まれるネイティブライブラリ
  • QML - UI や UX を宣言的に記述する Qt メタオブジェクト言語(Qt MetaObject Language の頭文字です)
  • Qt Creator - QML プロジェクトやコーディングのサポート

Qt Quick 及びその言語 QML は宣言的です。JavaScript をバインディングやプロパティの値として使用可能です。これにより、QML ではソースコード量を抑制しつつハイパフォーマンスでの動作が可能になります。JavaScriptCore (現在使用している JavaScript エンジン) はメモリのオーバーヘッドを必要とすることに注意してください。

gitorious に上げられたコードや Qt 4.7.0、4.7.1 のリリースによって QML と QtDeclarative がアーリーアダプタやメインストリームの開発者にお使いいただけるようになったのは去年の事でした。最初の QML のリリース以来、その実行エンジンと宣言的言語による生産性の高さは証明済みで、パフォーマンスと安定性を向上するための多くの手助けをコミュニティから得てきました。これまでにご協力いただいた全ての方々にこの場で感謝を申し上げます。

3月1日に、このパズルの最後のピースをはめ込みました。Qt Creator に含まれる Qt Quick デザイナです。この Qt Quick デザイナは QML の WYSIWYG 形式のエディタで、UI の作成や変更が GUI ででき、QML のコードも逐次更新されます。Qt Quick デザイナやその他の様々な機能をサポートした新たな Qt Creator は ダウンロードページ から入手可能です。私たちのベルリンのチームにいるウィザードやマジシャンたちはこれらの企てを gitorious.org 上でオープンに行ってきたので、既にご存知の方も多いかもしれません。また、将来に向けた開発版は、master ブランチ にありますので、是非試してみてください。

近いうちに、便利な Qt Quick 向けの機能がさらにいくつか追加される予定です。ピンチジェスチャー用の要素 や、タッチイベントを直接扱える要素RTL レイアウトの対応 など現実のユースケースに基づいた新機能に加え、bugreports.qt.nokia.com にコミュニティから寄せられた様々な提案が含まれます。

去年の秋に MeeGo と Symbian 向けの Qt Quick components というプロジェクトも始めました。以前に書いた記事で説明したとおり、少し前から Qt Quick components の MeeGo 関連のコミットは一時的に停止 しています。MeeGo スタイルの対応は活発に進められており、Symbian スタイルへの対応についても、今は誰でも Symbian^3 端末で試せるよう、gitorious.org にて行われています。これにより、ネイティブのルック&フィールのアプリ開発がより簡単になり、個々の開発者はボタンやリストアイテムなどの共通部品を作る必要がなくなります。http://qt.gitorious.org/qt-components のソースを 'git clone' する時期が近づいています。これらに関するフィードバックは バグトラッカー からお願いします。相談や議論の必要がある場合には メーリングリスト や IRC でお願いします。

では、デスクトップの状況はどうでしょうか。Qt 自体のデスクトップのサポートはますます強力になっています。サポート対象のプラットフォーム 上では毎日テストが行われ、新しいテストや機能が常に追加されています。もちろん、Qt Quick を一般的なデスクトップ向けのアプリケーションでも、一部を QML 化することで、滑らかにアニメーションをする特別な UI を持つアプリケーションを作成することができるでしょう。また、mixd.tv のように UI 全てを QML にしてしまう事ももちろん可能です。しかし、Volker が書いた記事 に書かれているとおり、(Lion が出たらこの発言は撤回することになりそうなのは承知の上ですが、)デスクトップではそのようなイノベーションは広い範囲では起こっていません。我々は将来的に進む方向の準備として、今は Qt Quick components をデスクトップでの活用方法を模索しているところです。<tease>これ以上は今後のブログ記事で…</tease>

これら以外にもまだまだあります。端末でのグラフィックアクセラレーションはもはや当たり前の時代になり、描画アルゴリズムによるキャンバスアーキテクチャの必要性は減少し、エンドユーザーに喜んでもらえることを重視した、より直接的なアプローチへ移行しつつあります。これが SceneGraph プロジェクトで OpenGL ES の上で、軽くて滑らかなビロードのような UI を実現させる理由です。また、3D 制作や UI への 3D の埋め込みを簡単にするためのリサーチも行っており、Qt/3D の QML 対応 により、あなたのおじいちゃんでも teapot が作れる日がやってきます。

(それでは、グローブを高く投げ上げて) Qt Quick 1.0 のはじまりです。これで世界は我々のものです。