![]() |
![]() |
|
Loading
|
@IT > プログラマにとっての“使いやすさ”で、GUI開発の生産性を高める「Qt」 |
![]() |
|
エンドユーザーがコンピュータの画面から直接操作を行うソフトウェアを開発するうえで、最も面倒な手続きが多く、生産性を下げる要因となりやすい部分でありながら、そのソフトウェアの使い勝手やユーザーのインプレッションに大きな影響を与えるところ──それが「ユーザーインターフェイス」だ。 GUIを用いたリッチなユーザーインターフェイスが当たり前になった昨今、ユーザーインターフェイスの設計や視覚的な効果は、ソフトウェア製品開発において大変に重要なポイントだ。ところが実際のシステム開発において、画面開発ほど非効率的なものはない。“センス”が介在する部分だけあって修正や作り直しなど、試行錯誤しながら開発が進められるからだ。しかもグラフィック操作はプラットフォームごとに作法が異なるため、マルチプラットフォームに展開する際にも問題が起きやすい。 そんなGUI開発の生産性向上という問題に、明快な答えを出す製品がある。ノルウェーのTrolltech(トロールテック)社が開発し、日本ではSRAが販売・サポートを行っているC++グラフィックライブラリ「Qt(キュート)」である。
C++用グラフィックライブラリとして、すでに55カ国4500社への採用実績があるQtにはさまざまな特徴があるが、それらの多くは“開発工数削減”へとつながっている。単にプログラマにとって使いやすいだけでなく、経営の視点から見ても明確にコストダウンと製品の品質向上につながることが、Qtが商用ライブラリセットとして実績を広げている最も大きな理由だろう。 Qtで定義されているクラスは、いずれも入出力が明確でオブジェクト間の通信を簡潔に記述でき、データ型が完全に保証されているため、パラメータ設定のバグによるクラッシュも防げる。オブジェクトの入出力定義やメソッドの種類なども直交性が高く、“このようなクラスには、当然、こうしたメソッドが用意されているはず”とプログラマが想像するとおりの設計になっているのも特徴だ。このため、いくつかのオブジェクトを使いこなすだけで、プログラマは次々にQtの持つ機能をフルに活用できる。こうした使いやすさは、Qtを習熟するのにかかる時間と手間が最小限ですむことにつながっている。この点も、一般的なライブラリに比べて、Qtが“高い生産性”を誇る理由の1つだ。 例えば、マイクロソフトのMFC(Microsoft Foundation Class)ならば、マニュアルを参照しながら前処理と後処理、オブジェクト間をつなぐ処理に頭を費やしながら、細かな処理を順序立ててプログラムを書いていく必要がある。オブジェクトとしての振る舞いが統一されていないためマニュアル必携で、機能が不足しているため自分で細かな振る舞いを記述しなければならない。 解像度やウィンドウサイズに依存しない画面デザインを行おうとすると、MFCではプログラマ自身が、ウィンドウ内に配置するオブジェクトのサイズや位置、振る舞いをウィンドウサイズの変化を考慮に入れて、細かく指定しなければならない。 しかし、Qtではオブジェクト間の関係やウィンドウ内で占有する割合などを設定することができ、自動的にレイアウトが最適化される。これは複数言語に対応する際も役立ち、言語によってオブジェクトのラベル名などが変化する場合でも、画面デザインや振る舞いを記述し直す必要がない。 国際化については、内部の文字コード処理はUnicodeに対応しており、非常に容易だ。日欧文字はもちろん、中国語や韓国語、さらにアラビア語・ヘブライ語のように右から左方向へのテキスト記述にまで対応している。プログラム内で使われている文字列を抽出し、翻訳者が対応する訳を記したファイルを作成することで、簡単にローカライズ版を作ることができる。
Qtには、メニューやツールバーなどのユーザーインターフェイスからのアクションを抽象化するQActionクラスがある。「ファイルを開く」のように、どのユーザーインターフェイスからも呼び出される処理を抽象化することで、似たような処理になる部分が整理され、コーディングミスを防ぐ。 またQtはクラス階層の設計に優れていることもあり、イベントフィルタ(Qtが提供しているイベントをフックするための機能の1つ)を使うことでオブジェクトの挙動を、自分で定義した独自のスタイルを設定することでルックアンドフィールの変更を柔軟に行うことができる。さらに、あらかじめ用意された部品をカスタマイズし、独自の部品として再利用することも簡単に行える。さまざまな切り口において、柔軟性が圧倒的に優れているのである。
Qtはマルチプラットフォーム対応のグラフィックライブラリであり、Windowsだけでなく、X Window(X11)、Mac OS X、組み込み用Linux上で動作する。それぞれに、まったく同じクラスが用意されている。 組み込みソフトウェア開発の現場では、ターゲットとなるハードウェアの完成を待たずにとりあえずPC上でユーザーインターフェイスの開発に取り掛かることができるため、重宝がられているという。 各プラットフォームにおけるライブラリは、それぞれネイティブのグラフィックAPIに合わせてチューニングされているため、最大限のパフォーマンスを引き出すことが可能だ。仮想マシンを介さないため、どのプラットフォームでもパフォーマンスが良い。 また、OSのバージョンアップに対しても、Qtを新バージョン対応のランタイムに置き換えるだけで、ユーザープログラムに一切手を加えることなく対応できる点も魅力だ。例えば、すでにWindows Vista版のQtが動作している。このためユーザーは独自に開発したアプリケーションに手を加えることなく、Windows XPからVistaへの移行をスムースに行うことができるのである。
さて、機能やパフォーマンスは各プラットフォームで共通だが、各プラットフォームの中で特に手厚くサポートされている環境がある。Windowsである。そのWindows上でのアプリケーション開発に欠かせないのが、マイクロソフトのVisual Studio .NETだ。 Visual StudioはWin32APIや.NETフレームワークに対応し、使用中の関数のリファレンス参照やイベントごとのテンプレートの自動生成など、さまざまな開発者支援機能が組み込まれているのはご存じのとおり。 QtにはこのVisual Studio対応のプラグインモジュール「Qt VS Integration」が用意されている。このため、画面デザイン時にはVisual Studio内のツールでQtのオブジェクトを用いることも可能だ。ほぼシームレスに統合されており、プログラマは従来と同じ手法、同じ環境でプログラミングやデバッグを行える。コーディング時にはQt APIのマニュアル参照が可能で、IntelliSense機能(そのコンテキストで記述可能な内容を自動ポップアップする)でもVC++ APIと同様にQt APIが利用できる。
Qtは、グラフィックライブラリの中では最後発ということもあり、以前から存在するさまざまなライブラリの良いところを抽出し、洗練されたアーキテクチャにまとめている。その結果、開発現場の技術者にとって非常に使いやすい製品に仕上がっている。 その特徴は、SRAのWebサイトからダウンロードできる評価版Qtをダウンロードし、実際に触れてみることで確認できる。ユーザーの70%以上がほかのグラフィックライブラリ/ツールよりも生産性が高いというアンケート結果があるそうだが、何はともあれ、実際に体感してみることをお勧めする。一度使っただけでその良さは実感できるはずだ。
こうした長所を活かし、多数の著名な商用アプリケーションやオープンソースソフトなどがQtを用いて開発されている。例えばアドビシステムズのグラフィックソフト「Adobe Photoshop Elements」、グーグルの地図サービス「Google Earth」、Webブラウザの「Opera」、コミュニケーションソフトの「Skype」、オープンソースでUnix/Linuxの「KDEデスクトップ環境」、日本語化もされているCADソフト「QCad」などがQtで開発されている。欧米では幅広い分野で多数の導入実績があり、知名度もかなり高い。日本でも、すでに利用中のユーザーの評価は高いことから、今後、利用の拡大が期待される。 日本においてはSRAがライセンス販売のほか、日本語による時差のないサポート、日本語情報の提供を実施している。また、初心者へのセミナーから、実際にQtをお使いのお客さまへの踏み込んだコンサルティング、アプリケーション開発の支援まで、幅広くQtユーザーを支援する。さらにMFCやMotifをベースに記述された既存アプリケーションを段階的にQtに移行するマイグレーションサポートも用意されている。 まずは評価版のダウンロード。実際にQtに触れて、その“使いやすさ”を試してみてほしい。
提供:株式会社SRA 企画:アイティメディア 営業局 制作:@IT 編集部 掲載内容有効期限:2007年8月9日 |
|