Appendix 1 Qt を組み込みで使う理由と Qt 5 朝木 卓見 Qt は,デスクトップ以外にも組み込み Linux をサポートした C++ ですが,オブジェクト指向と GUI との相性のよさは使っ アプリケーション(アプリ)開発フレームワークです.さまざ たことのある方にはおなじみでしょう.Qt は分かりやすい API まな製品で Qt が使われ,日本では,シャープの Linux Zaurus と,GUI Designer を用いた WYSIWYG による UI 設計などによ や SONY の Mylo,Panasonic の Skype フォンなどが発売されて るアプリの作りやすさでは定評があります.最近では,後述す います 注1 .以前の Qt には商用版か GPL 版しかなかったため, る QML/Qt Quick の導入により,UI をより開発しやすくして ライセンス料やソース・コードの公開などが課題でした.しか います.また,デスクトップ環境や QVFb などによるデバッグ し,2009 年に LGPL が追加されて以来,製品に無料で組み込み は,実デバイスでのテスト時のエラー軽減に役立ちます. やすくなり注目が高まっています. ● Qt のデメリット ● Qt のメリット それでは,Qt を使うデメリットは何でしょうか. それでは Qt を組み込みに使うメリットや,その場合の注意 ・フットプリントの増加:Qt は C++ のランタイムが必要です. 点は何でしょうか.まず,Qt のメリットを挙げてみます. Qt 自体のライブラリも小さなサイズではありません.それが ・豊富な機能:Qt はよく GUI ツール・キットとして gtk+ などと 問題となるケースもあるでしょう.けれども,Qt にはフット 比較されます.確かに,Qt には GUI だけでも多くの便利な機 プリントを削減するために qconfig と呼ばれる機能があります. 能がありますが,対応範囲はそれだけではありません.マルチ これは,Qt ライブラリから使用しない機能を削除することで スレッドやコンテナなどの基本のクラス,OpenGL,ネットワー フットプリントを削減する機能です.configure とビルド時に ク,データベース,XML,マルチメディア,ECMAScript(Java 指定を行う必要がありますが,場合によってはかなりのサイズ Script),WebKit などを Qt API でカバーしています(図 1) . を削減できます.各ライブラリがどの程度のフットプリントを もちろん,これらの組み合わせも簡単に行えます.また,ア 必要とするかの目安は,ドキュメント注 2 に示されています. ドオンとして Qt Mobility というモバイル向け API も開発して なお,ライセンス条件に問題がない場合,静的にリンクする います.これは,GPS や傾きセンサ,カメラ,Bluetooth など ことで不要な機能を実行ファイルに含まれないようにすること に対応しています.機能によってはバックエンド用のプラグイ もできます.もっとも,LGPL 版ではリンク用オブジェクト・ ンの作成が必要ですが,MeeGo 用のソースなどを参考にする ファイルの配布が必要なので,実質的には商用版の利用時に限 とよいでしょう. 定されます. ・ソース・コードの公開:Qt は,そのソース・コードが公開 ● Qt を組み込みで使う際の注意点 されています.ユーザはライセンスに従って Qt に変更を加え Qt を組み込み Linux で使う場合,QWS(Qt Window System) て使えますし,トラブル発生時の解析をしやすいでしょう. や X11,DirectFB などの環境で動かせます.それぞれの環境で ・商用サポート:Qt 開発の中心を担っている Nokia 社自体は商 Qt を動かすときの特徴を簡単に説明します. 用ライセンスの提供やサポートをしていませんが,パートナ各 ・ QWS(Qt Window System) :QWS は,組み込み Linux で Qt 社がサービスを展開しています.LGPL でライセンス料を抑え を使用する場合によく使われています.QWS では,Linux のフ ながら,コンサルティングやサポートを受けることも可能です. レーム・バッファを Qt が直接ドライブするため,Linux カーネ ・移植性:Qt は,組み込み Linux 以外の主要なデスクトップ環 ルの標準の機能があれば Qt を動かせます.X11 などの中間層 境にも対応し,アプリのソースの多くを共有できます.Qt の がないため,高速かつ省メモリでの動作が期待できます. API 自体は組み込みもデスクトップも共通なので,ソース・コー ド全体の共有が可能ですが,画面解像度やインターフェースな どが異なるため,UI はそれぞれに最適化した方がよいでしょ Core GUI う.また,コミュニティ・サポートですが VxWorks や QNX も 対応しており,Digia 社による INTEGRARY RTOS のサポート Multi threading や,SRA による T-Kernel への移植など,多種多様なプラット ホームで動作しています. ・作りやすさ:フットプリントの面でデメリットとされがちな 注 1:http://qt.nokia.com/qt-in-use-jp Jan. 2012 KEYWORD 2D Graphics Canvas OpenGL WebKit Scripting Multimedia Networking XML Database Unit Testing Declarative 図 1 Qt の豊富な機能 注 2:http://doc.qt.nokia.com/latest/fine-tuning-features.html, http://doc.qt.nokia.com/latest/requirements-embedded-linux.html Qt,Qt5,QML,OpenGL 75
© Copyright 2024 ExpyDoc