いまさら聞けない GUI開発フレームワーク「Qt」活用 〜組み込み機器開発で選ばれる理由〜徹底解説

タッチパネルディスプレイの搭載、スマートフォンライクなリッチUIによる高い表現力と直感的な操作への要求は一般化しつつある。この流れは組み込み機器でも例外ではない。こうしたトレンドを受け、いま急速にその存在感を増しているのが、C++ GUI開発フレームワーク「Qt(キュート)」だ。なぜ、組み込み機器開発でQtが選ばれているのか。その理由に迫る!

» 2013年08月21日 10時00分 公開
[PR/MONOist]
PR

リッチUIの要求高まる、組み込み機器への採用が進む「Qt」

 マルチプラットフォームに対応した、C++ GUI開発フレームワーク「Qt(キュート)」をご存じだろうか。1996年に最初のバージョンがリリースされてから17年間、時代の潮流に合わせながら機能拡張・性能改善していき、GUI開発にとどまらず、アプリケーション開発全般をカバーする豊富なライブラリ群と多彩な開発ツールを備えた“包括的フレームワーク”として成長を遂げてきた。最新バージョンは「Qt 5.1」である(記事公開時点)。現在、Qt Projectの下、2012年にNokia社からQtの商用ライセンス事業およびサービス事業を買収したDigia社が主体となり、開発が継続されている。

 このQtの成長・発展を支えてきた分野の1つが、CAD/CAM/EDA、アニメ/CG、ゲーム開発ツールなどのデスクトップ分野だ。有名なところでは、Autodeskの3Dアニメーションソフトウェア「Autodesk Maya」やGoogleのバーチャル地球儀ソフトウェア「Google Earth」、さらにはウォルト・ディズニー・カンパニーやルーカスフィルムなどにおける映像制作・編集ツールで採用されている。

 Qtの採用実績は、世界60カ国以上、5500社を超える。世界の名だたる企業が採用し、100万人以上の開発者を抱えるQtは、デスクトップ分野だけではなく、ここ数年“組み込み分野”での存在感を増している。

 その背景には、スマートフォン/タブレット端末の爆発的な普及がある。タッチパネルディスプレイの搭載と、スマホライクなリッチUI/HMIによる高い表現力と直感的な操作は一般化しつつあり、このトレンドは組み込み分野でも例外ではない。

 事実、QtはNokia「N9」やBlackBerryの「BlackBerry 10」といったスマートフォンだけではなく、タッチパネルディスプレイを搭載した多くの組み込み機器に採用されている。具体的には、カーナビに代表される車載情報機器、CT/MRIといった医療機器、計測機器、産業機器、電子書籍端末や液晶パネル付きの白物家電といったコンシューマ機器、複合機(MFP)、航空宇宙/防衛、インフラ設備などである。その中でも特筆すべきは、車載情報機器とMFPだ。Qtは、車載情報機器開発の標準化を推進する「GENIVI Alliance」のリファレンスプラットフォームに採用されている他、国内カーナビメーカーのほとんどが利用している。同じく、MFPにおいても国内メーカーの多くが製品開発にQtを活用している。

 このように、組み込み分野でも多くの採用実績を誇るQtだが、「選ばれる理由」は一体どこにあるのだろうか?

あらためてQtとは何か? 「Qt 5.x」で次のステージへ!!

 Qtが組み込み機器開発で「選ばれる理由」とは何か――。その核心に触れる前に、ここでQtの特徴についておさらいしておきたい。

 冒頭で述べたように、Qtはアプリケーション開発全般をカバーする“包括的フレームワーク”として知られる。例えば、プログラム開発に必須となるマルチスレッド、プロセス間通信、ネットワーク、OpenGLによる3Dグラフィックス、WebKit統合/HTML5対応、スクリプトエンジン、XML、データベースなどといった、多彩なライブラリ群(その数1300以上)を備え、それらをモジュール形式で機能ごとに提供する。

 開発者は、これらモジュールを活用して一度開発を行えば、そのソースコードをコンパイルし直すだけで、マルチプラットフォームに展開できる。QtはデスクトップOSとして、Windows、UNIX、Linux、Mac OS Xをサポート。組み込みOSとして、組み込みLinux、Windows Embedded、QNX、VxWorks、T-Kernelなどの他、最新のQt 5.1ではテクノロジープレビュー版としてiOSとAndroidへの対応もなされている(次期バージョンの「Qt 5.2」に正式に組み込まれる予定)。

 また、こうしたライブラリ群の提供だけではなく、開発を支援するツール類も整備されている。GUIベースで画面設計が行える「Qt Designer」、Qt 4.7から正式に追加された宣言型UI記述言語「QML(Qt Meta-Object Language)」でUI開発が行える「Qt Quick(Qt User Interface Creation Kit)」、簡単な手順だけで国際化・ローカライズ対応が行える「Qt Linguist」、Qtの豊富なドキュメントを効率的に閲覧できる「Qt Assistant」。そして、これらを統合する開発環境(IDE)として「Qt Creator」が提供されている。Qt Creatorは、もともとC++によるプログラム開発向けに提供されてきた環境だが、現在はQMLにも対応している。開発者はQt Creatorを中心に、コーディングやデバッグ/ビルドなどを行ったり、Qt Designerを呼び出して画面設計を行ったりできる。さらに、「Visual Studio」や「Eclipse」といった使い慣れた開発環境にプラグインして利用することも可能だ。

Qtの構成 図1 Qtの構成 【※画像クリックで拡大表示】

 このように豊富なライブラリと開発ツールを備えたQtだが、「Qt 5」から組み込み機器の性能を最大限に引き出すために、アーキテクチャの大幅な見直しが行われている。

 従来、組み込みLinuxなどを中心に、QWS(Qt Window System)と呼ばれるQt独自のウインドウシステムが採用されてきたが、近年の組み込み機器が備える性能を十分に引き出すことができないということで、新たにプラットフォーム抽象化技術「QPA(Qt Platform Abstraction)」を導入。さらに、OpenGLをベースとしたグラフィックススタックを採用することで、GPU性能を最大限に引き出すパワフルなグラフィックス処理(シェーダやパーティクルといった高度なアニメ/エフェクト機能など)を可能とした。また、Qt Quickが新版の「Qt Quick 2」となり、QMLによるUI実装が標準として推奨され、従来Qt Designer上で実現していた豊富なコントロール部品(ボタンやタブなど)が大幅に整備された。これにより、リッチUI開発がこれまで以上に手軽に、わずかなステップ数で実現できるようになった。

動画1 This is Qt 5

選ばれるのには理由がある。組み込み機器開発におけるQtの強みとは?

 ここまでの説明で、QtがGUI開発のみならずプログラム開発全般をカバーするマルチプラットフォーム対応の“包括的フレームワーク”であるということをご理解いただけたかと思う。ここからは、Qtの機能・特徴を整理して、組み込み機器開発で「選ばれる理由」を紹介していきたい。そこにはもちろん、Qtがフレームワークとして成熟し、デスクトップ分野のみならず組み込み分野でも多くの実績を挙げている点も理由に挙げられるわけだが、組み込み機器開発に特化して考えた場合、Qtならではの幾つかの強みが見えてくる。

 まず挙げられるのは、マルチプラットフォーム対応により得られるメリットだろう。一度の開発(単一のソースコード)で複数のプラットフォームに展開できる点は、Qtの代表的な強みといえる。これはつまり、既存資産がそのまま流用可能となり、開発工数を大幅に削減できるだけではなく、人的リソースを有効活用できることを意味する。例えば、デスクトップ分野のGUI開発エンジニアであっても、Qtというフレームワークを通じ、違和感なく組み込み機器向けのGUI開発が行えるのだ。当然、実機が完成する前にPC上でUI周りの先行開発・動作確認を進めておくことも可能で、実機に落とし込む前に品質レベルを向上させられる。

 また、前述の通り、Qtは対象プラットフォームを拡充しており、主要な組み込みOSだけではなく、次期バージョンのQt 5.2から正式にiOSとAndroidをサポートする。最近では、製造現場のFA機器上で動作する組み込みLinuxやWindows Embeddedのアプリケーションと同じものを、タブレット端末でも操作・閲覧したいというニーズもあり、このモバイルOS対応がQtの勢いをさらに加速させそうだ。その他、製品の国際化対応においても強みを持つ。Qtは内部処理にUnicodeを使用しており、100種類の外部エンコーディングに対応。Qt Linguistにより、開発したGUI内に使用されているテキストを抽出し、それに対応する文字を入力するだけで簡単にローカライズが行える。

 さらに、機能・性能面で組み込み機器のトレンドをしっかりとカバーしている点もQtの評価すべきポイントだ。特に、Qt 5で組み込み機器を意識した抜本的なアーキテクチャの見直しが行われたことで、パフォーマンスの向上とOpenGL ES 2.0対応による高度なグラフィックス処理の実現が図られている。最近の組み込み機器では、GPUが当たり前のように搭載されており、リッチUIを実現するパワフルなグラフィックス処理をGPUに任せることで、メイン処理に負荷を掛けることなく、GUIアプリケーションを作り込むことができる。もともと、組み込み機器開発では、UIを作り込めるツールの選択肢が少なく、かつて勢いのあったAdobe Systems社の「Flash Lite」も開発が終了したこともあり、その唯一の選択肢としてQtはその地位を確立。Qt 5以降で、それを確固たるものにしたといえる。

動画2 Qt 5 Everywhere Demo

 トレンドという観点では、組み込み機器のHTML5対応も挙げられる。Qtの採用が進むMFPでは、クラウド上にあるデータをHTML5で表示させたいといったニーズもあるという。こうした先進的な活用例は、今後カーナビを始め、他の組み込み機器でも増えていくものと考えられる。WebKit統合/HTML5対応しているQtであればこうした要求を容易に実現できるわけだ。

日本での開発支援も充実

 もう1つ重要なのが、ツールを自社の製品開発に導入する上で決め手となる国内での開発支援体制だ。個々のデバイスへの対応・作り込みなどが必要となる組み込み機器開発において、サポートは最重要ポイントといっても過言ではない。

 Qtの国内販売代理店として2003年からQtの普及・促進を支援してきたSRAには、多くのQt専属エンジニアが在籍しており、これまで、さまざまな製品開発をバックアップしてきた実績がある。SRAは、Qtのライセンス販売だけでなく、コンサルティングから開発、サポートサービスまでをトータルに提供。さらに、日本語入力、ソフトウェアキーボード、画面遷移フレームワークといった、Qtアプリケーション開発を支援するSRAオリジナルのソリューション製品を展開する他、イーソル社と協業してQtをT-Kernelに対応させた「Qt Adapter for T-Kernel」も提供している。おそらく、日本国内で、Qtの全容を詳細に把握している企業はSRAをおいて他にないだろう。

 こうした取り組みに加え、SRAはQtの導入を検討している顧客向けに、基本的な機能や使い方を学べ、Qtプログラミングを体験できる無料セミナーを定期的に開催したり、より実践的なプログラミングスキルを学べる有料のトレーニングを実施したりしている。「Qtについてもっと詳しく知りたい」「自社の製品開発でQtを検討・導入してみたい」という場合は、SRAの門をたたいてみるといいだろう。必ずや満足のいくアドバイスが得られるはずだ。

SRAが提供するサービス 図2 SRAが提供するサービス

体験セミナーー


この記事に興味のある方におすすめのホワイトペーパー:


豊富な事例から組み込みGUI開発におけるデファクトスタンダード Qt を知る


産業機器や医療、防衛からカーナビ、モバイルデバイスまでの幅広い採用実績や事例、1300を超えるライブラリが持つ豊富な機能、マルチプラットフォーム対応や多言語対応、高い生産性といった特徴から、組み込みGUI開発のデファクトスタンダード「Qt」を知ろう。

▼ ▼ ▼

豊富な事例から組み込みGUI開発におけるデファクトスタンダード Qt を知る


Copyright © ITmedia, Inc. All Rights Reserved.


提供:株式会社SRA
アイティメディア営業企画/制作:MONOist 編集部/掲載内容有効期限:2013年9月20日

Qtダウンロード

イベント&セミナー情報

関連記事

QNXソフトウェアシステムズは、車載情報機器向けアプリケーションプラットフォーム「QNX CAR」の最新バージョンにおいて、Androidアプリケーションの動作が可能になったことや、「Qt」で作成したアプリケーションをHMIで利用できるようになったことを明らかにした。

アットマークテクノは、先日発表したインテリジェントカメラ向けプラットフォーム「Armadillo-810」に続く、“特化”が特徴の組み込みプラットフォーム製品の第2弾、「Armadillo-840」を発表した。小型のデジタルサイネージ端末やセットトップボックスなど、画面出力機器向けだという。

ノキアから売却されてQtはどうなったのか? 弱体化してしまうのではとの心配をよそにダウンロード数は飛躍的に伸びている。