Qtブログ(日本語)

火星人の開発者と金星人のデザイナー

作成者: 朝木卓見|Jun 9, 2010 2:00:40 PM

この記事は 2010年の第一四半期に公開された [qt-quarterly] 33 から、Developers Are From Mars, Designers From Venusを翻訳したものです。

執筆: Nigel Hietala, Nokia, Qt Development Frameworks

アプリケーションの開発は、通常チームを組んで行われます。そのときの役割としては開発者とデザイナーに分けることが出来るでしょう。「Qt Quick」はチームによる Qt アプリケーションの開発を、より包括的なものとするために開発されました。すなわち、Qt を用いた開発という世界へ新たな人を迎え入れ、チームでの共同作業をよりよいものにするためにです。良い共同作業は素晴らしいアプリケーションを作成する鍵となります。しかし、なぜ Qt Quick がその助けとなるのでしょうか。

アプリケーションの作成時に対処しなければならない問題は多数あります。それらを完全にそれぞれの担当に割り振るのは不可能です。開発者は主としてソフトウェア開発のコンピュータ側の領域を担当します。デザイナーはビジュアルとユーザ側の領域を担当します。すなわち、アプリケーションのルック & フィールとなるビジュアルと動きのデザインです。そして、ユーザーインタフェース(UI)がどう構造化されるべきであるかに相互に影響するデザインもです。これらは最終的にはユーザビリティの問題となり、人々がアプリケーションを使用する際に見つけた課題を基に改善されるべきでしょう。

デザイナーが重要な技術的な限界を理解していない場合に問題が発生することがあります。これは携帯機器や組込み機器向けのアプリケーションでは CPU やメモリなどのパワーが限られているためです。開発者に UI のどの部分が頻繁に変更されるのか、簡単に変更できるべきなのかといった理解が不足している場合、間違ったソフトウェア設計が行われるかもしれません。このように、不完全な分担では適切に協力して作業できないため、チームはすばらしいアイデアを実現できなくなります。

火星人の開発者と金星人のデザイナー

このような問題を克服する1つの方法は、スケッチの形でモックアップを作成することです。 Adobe Flash などの別の技術を用いて実際に動作するプロトタイプを作成するのも良いでしょう。それでも、これらは最善の方法ではありません。デスクトップマシンではきれいに動くデモであっても、携帯機器や組込み機器でも同じように快適に動くことは稀です。開発者は、デモのデザインが Qt などの実装に用いる技術で動くように移植する必要があります。開発者は、デザインを再現するためにベストを尽くします。しかし、その間に問題が発生することもあります。デザイナーが UI を改良して開発者に渡せば、それまでの実装は無駄な努力になるかもしれません。デモで行ったすべての仕事は、最終的な UI のために再び繰り返されなければなりません。UI の重要な部分が誤解されているかもしれません。それらの結果、開発サイクルが遅くなります。

また、チームで優先順位は異なります。開発者はまずアプリケーションの機能の実装から始めようとします。彼らは、ボタンを数ピクセル動かしたり、アニメーションを調整したり、テキストを完全に配置するのに時間を費やしたりはしません。しかし、これらの詳細は素晴らしいアプリケーションを作るためには欠かせません。デザイナーは開発者の言いなりだと感じているのに対して、開発者はもっと他のことに時間を費やした方がいいと思っているかもしれません。どんな小さな変更であっても開発者が手がけなければならないのであれば、それは非生産的な仕事の方法です。

この方法しかないのでしょうか

以下の質問を受けて、Qt Quick が生まれました。デザイナーが直接、実際のソフトウェアに取り組んで UI を制御できないだろうか? 開発者が使用しているツールを、デザイナーが同様に使用するように変えられないだろうか? プロトタイプを迅速に、そして簡単に作ることができるような本当の UI フレームワークを作れないだろうか? 伝統的に Qt アプリケーションでは、もちろん全てではありませんが、デザイナーがアプリケーションを自分自身で手がけることは困難でした。手がけるというのは UI をデザイナー自身が作成するということであり、開発者がデザインを元に一所懸命にソースコードを書くのとは異なります。現在、UI を制御するには Qt と C++ の十分な開発スキルを必要とするという問題があります。デザイナーは UI に完全に集中する前に、それを妨げるプログラミングの習得という新たな課題に取り組む必要があるでしょう。

Qt Quick がどのように役割分担を変えるのか

Qt Quick ではデザイナーが UI を直接制御できます。デザイナーは、すばらしい UI を作るために必要となる技術を、はるかに良く理解することができます、しかも、開発者が行うようなプログラミングに挑戦して泥沼に落ち入ることはありません。まだ、様々な修正が必要ではありますが、Qt Quick の最初のバージョンによってこれらの問題に対処を始めています。

新しい UI の抽象化レイヤー

Qt Quick は開発するユーザインタフェースの抽象度を上げます。プログラミングコードすなわち、クラスや関数、ポインタ、そしてコンパイラが必須となる世界とはまったく別の世界です。それらの代わりに UI 要素として、イメージ、UIの部品、レイアウト、状態、およびアニメーション等を扱う必要があります。こういった抽象化は、デザイナーが仕事する際の考え方に似通っています。

導入のしきいを下げる

Qt Quick は、技術の知識の少ないデザイナーであってもユーザーインタフェースの作成ができるようにやがてはなるべきです。C++ の開発者であることは、その必要条件ではなくなるべきです。Javascript や ActionScript を使用してプロトタイプを作成することが出来るデザイナーであれば、UI を完全に制御できます。Qt Quick では、 UI レイアウトを作成するための基本的な GUI ベースのツールを、 Qt Creator の機能として提供しています。今後、これらのツールはより強力でより使いやすいものになっていくでしょう。既に HTML に慣れ親しんでいるデザイナーであれば、QML が覚えやすい宣言的な UI 言語であることがわかるでしょう。Qt Quick は完全に一から作られているため、言語を複雑にする古くさい遺産が全くないという利点があります。XML のように編集する際や見て理解する際の複雑さも煩わしさもありません。代わりに、私たちは言語として Javascript を選び、すべての複雑さを取り除きました。したがって、UI を作成することだけに集中することができるのです。

コンセプトから完成品へ

Qt Quick は、UI を非常に迅速に作成できるように設計されています。作成した UI を確認するために、コンパイルが終わるのを待つ必要はもうありません。アニメーションや効果を追加するのも簡単で、アプリケーションの見た目を良くするだけでなく、より使いやすく、より面白いものに仕上げることが出来ます。デザイナーは Qt Quick を使って、これまでのツールと同じかそれ以上に効率よくプロトタイプを作ることが出来ます。それに加えて、Qt Quick で作った UI は本当の UI となるのです。すなわち、世界中に出荷する商用アプリケーションの UI です。開発者がデザイナーを横に座らせて UI を一から作り始める必要はもはやありません。同じツールである Qt Creator の機能を使用して、開発者は UI のリファクタリングを手伝うことができます。また、ローカライゼーションも可能です。そして、アプリケーションのデータモデルやエンジンなどの要素を含む Qt の C++ 部分と UI を連携させることが出来ます。

新しいチームの誕生

これはチームがどう動くかということに対する大きな変更です。これからはデザイナーが実際の UI を制御し、作成するでしょう。これにより、デザイナーの作成する UI が動作しないという問題は遥か彼方に行ってしまうでしょう。アニメーションやレイアウトを変更したい場合でも、そのデザインの実現に開発者の手を煩わす必要はありません。携帯機器や組込み機器向けのアプリケーションのデザインをターゲットとなるデバイスに転送して確認することが出来ます。デザイナーは、彼らが重要であると考えていることを形作り、繰り返し、制御し始めます。

Qt Quick は UI 開発における前進です。しかし、対応すべき新たな課題もまたいくつかあります。チームは解決すべき新たな課題に出会うでしょう。どうしたらチームの作業フローとデザイナーを統合できるでしょうか? デザイナーは、バージョンコントロールシステムを使用する必要があるかもしれません。QML UI は技術的レビューやコードレビューを必要とするでしょう。デザイナーが作成した UI は開発者によって書き直される必要がないため、よりよいアプリケーションの提供のために、チームがデザイナーの技術や知識を向上させるという決定が必要でしょう。開発者は、Qt Quick から簡単に使用できるような API のコンポーネントを作成する必要があります。

これはアプリケーション開発を、どうやって新たなレベルに引き上げるかの始まりに過ぎません。将来の Qt Quick で対応する予定のアイデアがある課題もいくつかあります。課題は、新しい方法でより効率よく働いている開発チームから生じます。あなたは何を待っているのですか? 今すぐあなたのチームのデザイナーに力を与えて、開発者の負担を減らしてあげてください。一緒に Qt Quick の世界を広げていきませんか。Qt Quick の詳細は http://qt.nokia.com/developer/qt-qtcreator-prerelease を参照してください。Qt 4.7 のテクノロジープレビュー(訳注: 現在はβ)がリリースされています。Qt Quick を試すには、 Qt Creator 2.0 α(訳注: 現在はβ)をダウンロードするだけで Qt Quick UI を作成するために必要なものが全て揃います。