この記事は Qt Blog の “Qt 4.7.4 Release Bundle for Symbian News” を翻訳したものです。
執筆: Aleksi Uotila, 2011年11月8日
本日 Symbian^3、Symbian Anna、Symbian Belle 端末向けの Qt 4.7.4 リリースバンドルを公開します。Symbian Anna と Belle のビルドターゲットは Qt SDK 1.1.4 アップデートに含まれているので Qt 4.7.4 向けのアプリケーションを開発することができます。Nokia Store への公開も可能です。
これは Qt 開発者の皆さんにとって重要なリリースです。この記事では Symbian 端末における Qt の現在の対応状況について概要を書きたいと思います。後半部分では Qt 4.7.4 リリースバンドルの最も重要な変更点について、Symbian の視点から書きます。Symbian 上の Qt について既に知識のある方は、直接 Qt 4.7.4 のセクション に進んで下さい。
最初の公式にサポートされた Symbian 向け Qt リリースは、2010年6月に Qt SDK と共にリリースされた Qt 4.6.3 でした。その後、この SDK で開発されたアプリケーションは Nokia Store (当時は Ovi Store でしたが) に公開することができるようになりました。そして今年の5月、Qt SDK 1.1 で Symbian 向け Qt 4.7.3 と Qt Quick がリリースされ、Nokia Store で Qt Quick アプリケーションが公開できるようになりました。
Qt 4.6 が Symbian に対応した当時、Qt がプリインストールされた Symbian 端末はありませんでした。2010年の秋にリリースされた Nokia N8 が、Qt がプリインストールされた最初の端末でした。そして2011年の半ばに、Qt 4.7 ベースのバンドルと Qt Mobility 1.1 を搭載した Symbian Anna がリリースされました。現在、最新の Symbian Anna 端末は Qt Quick をデフォルトでサポートしています。
S60 3rd Edition と 5th Edition の端末では Qt はオプションのコンポーネントであり、最初に Qt アプリケーションをインストールする際に Qt ライブラリがインストールされます。この Smart Installer と呼ばれる仕組みは、Qt がプリインストールされていない端末に Qt をインストールする為に使われます。
ユーザーが Qt アプリケーションをダウンロードしてインストールする時、Smart Installer がパッケージの依存関係をチェックして Qt や必要なサポートモジュールをインストールします。モジュールは必要に応じて新しいバージョンに更新されます。通常これはユーザーが Nokia Store からアプリケーションをダウンロードする時に行われます。
S60 3rd Edition や 5th Edition の端末への Qt リリースバンドルのインストールは主に Smart Installer を通して行われます。Symbian^3 端末(の C: ドライブ)にプリインストールされた Qt 4.6.3 ベースのバンドルも Smart Installer によって Qt 4.7.x ベースのバンドルに更新されます。さらに、Symbian^3 端末には Qt Mobility がプリインストールされていないので、Smart Installer を使用することはとても重要な意味を持ちます。従って、初めて Symbian^3 端末にアプリケーションをインストールする時は、必要に応じて Qt Mobility モジュールがインストールされます。これはアプリケーションのダウンロードサイズを増やすことになるので、私たちは開発者の皆さんにこのことを考慮に入れるように常にアドバイスしてきました。
2011年7月には、Qt Quick Components 1.0 for Symbian が Symbian Anna 端末向けに Smart Installer でのインストールをサポートしてリリースされました。
今回の Qt 4.7.4 バンドルは Symbian OS 向けの多くの改善点を含んだ大きなリリースです。このリリースは既に Nokia 700 や Nokia 701 のような 新しい Symbian Belle 端末 に標準搭載されています。Symbian Anna (や Symbian^3) 端末にも Smart Installer を通してリリースしています。最終的な Qt SDK サポートもリリースされました。
Qt 4.7.4 リリースバンドル には以下のものが含まれます。
Symbian Anna (と Symbian^3) 以降の端末がサポートされます。Jarmo の Qt 4.7.4 リリースの記事 で紹介した改善点のほとんどは Symbian にも適用されます。全体的に、このリリースには安定性、パフォーマンス、機能上に関する莫大な量の改善が含まれます。Symbian OS 上のサービスに Qt をより良く統合する変更も多く含まれています。
Symbian 向けの Qt グラフィックシステム において、Qt アプリケーションがデフォルトで使用する OpenVG グラフィックシステムにおけるグラフィックリソースの管理方法に大きな変更があります。Qt 4.7.4 で改善されたリソース管理により、オプションで使える OpenGL ES ベースのグラフィックシステム もさらに適用しやすくなりました。どちらの変更も貴重な GPU メモリの使い方を改善し、アプリケーションがバックグラウンドに遷移した時にグラフィックメモリをより効率的に開放します。Symbian OS の画面遷移アニメーションとの統合も改善されました。Qt アプリケーションを閉じたり開いたりした時のアニメーションがよりスムーズになり、Symbian OS の Avkon アプリケーションにおける同様の動作により近くなりました。
ユーザーインターフェイス についての一番の改善点は、Qt Quick Components 1.1 と Qt Quick 1.1 のモジュールです。変更点についての詳細は Sami の記事 を御覧下さい。Qt Quick – What’s New や Qt Quick Components – What’s New のドキュメントでも詳細を確認することができます。Qt Quick Components を使えば、新しい Symbian UI デザインガイドライン に沿ったアプリケーションを作ることができます。これは Qt アプリケーションが Symbian Belle のネイティブなアプリケーションと同じようなユーザー体験を提供できることを意味します。
Qt の「コア」においては、UI に関するたくさんの小さな改善点やバグ修正が行われました。こうした修正は UI の種類(QWidgets、Graphics View、QML など)に関わらず、Qt アプリケーションの全てのスタイルに改善をもたらすことが少なくありません。例えば、Nokia E7 や Nokia E6 のような物理キーボードのあるデバイスでは、テキスト編集に欠かすことのできないショートカット(ctrl+c/ctrl+v)をエディタ内でデフォルトで使うことができます。copy/paste を使う為にアプリケーションをインストールする必要はありません。
Qt 4.7.4 で最も歓迎すべき UI 機能はテキスト入力の機能を split-view input と呼ばれるSymbian の省スペースなテキスト入力パネルに統合したことでしょう。split-view input は Symbian Anna で導入された新しいバーチャルキーボードで、多くのネイティブな Avkon アプリケーションで使用されています。split-view input を使うことによって、アプリケーションのコンテンツを表示したままテキストを入力することが可能になります。Qt 4.7.4 では split-view input は Graphic View を使った全てのエディタウィジェット(Qt Quick/QML エディタを含む)で使用することができます。split-view input を使うには、キーボードが開いた際のアプリケーションのレイアウトを考慮する必要があるので、この機能はデフォルトでは無効になっています。有効にするにはアプリケーションの Qt::AA_S60DisablePartialScreenInputMode
属性を false に設定します。Qt Quick Components 1.1 もこの機能を使用しており、アプリケーションが import com.nokia.symbian 1.1
を使うことによって有効になります。1.0 をインポートすると、従来の全画面キーボードが使われます。つまり、Qt Quick 1.1 や通常の Qt アプリケーションではアプリケーション属性を変更することによって、Qt Quick Components を使うアプリケーションは 1.1 を import することによってこの機能を利用できます。
他にも Qt 4.7.4 で利用可能な Symbian Belle の新しい機能として、アイコンを使ったツールバーがあります。QAction に SVG 画像を設定したり、Symbian OS ツールバーのアイコンに QStyle API 経由でアクセスしたりできます。前述の通り、Qt Quick Components はアプリケーションの UI を新しい UI スタイルにより簡単に合わせる為のものです。例えば、Qt Quick Components の StatusBar を使うと、自動的にアプリケーションから新しい Belle UI の ステータスパネル 機能にアクセスできるようになり、ユーザーは ステータスバー を下にスワイプすることによってステータスパネルを利用することができます。
Symbian アプリケーションの UI は Qt Quick Components を使って Qt Quick で開発することをお勧めします。実のところ、Symbian 端末における従来の QtGui モジュールのウィジェットはサポートされないことを明記しました。新しいアプリケーションのプロジェクトでは、替わりに Qt Quick Components を使用して下さい。Symbian で絶対に使用してはいけない QtGui のウィジェットのリストも、上記のドキュメントにあります。これらは今までもサポートされていなかったり、正しく動作しなかったものです。
最後に紹介すべき Qt 4.7.4 の新しい UI 機能は テレビ出力 のサポートです。この機能によって、テレビ出力を使用した時、テレビ画面を単なる端末の画面のクローンではなく、独立した画面として使うことが可能になります。例えばデバイス上にコントロール UI を表示して、高解像度のテレビ画面でプレゼンテーションを表示するといったことが可能になります。アナログの 3.5mm TV 出力端子 または HDMI 出力 で使用することができます。Symbian 端末では、デフォルトではテレビ出力に表示される画面は端末上の画面のクローンです。今後は、QDesktopWidget::screen(1)
を親ウィジェットに設定し show()
を呼ぶことによってクローンは無効になり、違うコンテンツを表示することが可能になります。他のプラットフォームと同様、screenCount メンバ関数と screenCountChanged シグナルを使ってサブ画面が使用可能かどうかを調べることができます。
Qt 4.7.4 に合わせて、Qt Mobility モジュールもバージョン 1.2 に更新されました。注目すべき新機能は2つの近距離通信用の API、NFC (Near Field Communication) と Bluetooth のサポートです。Bluetooth は全ての Symbian デバイスでサポートされる基本的な機能ですが、NFC は最新のモデルでしかサポートされていません。しかしながら、NFC のサポートは急速に拡大されています。全ての新しい Symbian 端末 Nokia 603, Nokia 700, Nokia 701 は NFC を搭載しています。それ以前では Nokia C7 のみが NFC をサポートしています。NFC を使った開発についての詳細は Nokia Developer の NFC の紹介のドキュメント や NFC のページ を御覧下さい。
その他にも 細かい改善点 やたくさんのバグ修正が Qt Mobility に含まれています。例えば、QAudioOutput には Symbian に最適化された一時停止の機能が追加されました。以前の suspend の API は内部的には stop を使って実装されていた為、resume をする際に遅れが生じていました。ビデオ出力は何も描画するものがない場合黒で描画されるようになりました。これは QML のビデオとカメラのエレメントを使用する際の UI を改善します。
QML の ShaderEffectItem もこのバンドルで使用可能になりました。Kim による分かりやすい紹介記事は こちら を御覧下さい。
Qt 4.7.4 では メモリマネージメントの改善 に大変な努力がなされました。Qt 4.7.4 を使用したアプリケーションは通常、以前のバージョンの Qt を使用した場合よりも RAM の使用量が少なくなります。Symbian ではアプリケーションのヒープとスタックのサイズが事前に決められますが、アプリケーションの開発者はメモリの使用に関して細心の注意を払う必要があります。もしスタックまたはヒープの使用量が上限を超えてしまうと、アプリケーションはクラッシュするかタスクを完了できくなってしまいます。原因不明に見えるクラッシュはスタックやヒープの不足が原因であることが少なくありません。適切なヒープサイズ の設定を心がけて下さい。小さすぎても大きすぎてもアプリケーションの失敗に繋がります。RAM 以外にも、Symbian^3 や Symbian Anna の端末ではビデオ/グラフィックメモリが 32 MB と非常に小さいので注意が必要です(Symbian Belle を搭載した 新しい端末 には 128 MB と4倍大きな GPU メモリが搭載されています)。グラフィックを多用するアプリケーションは グラフィックメモリ使用に関するガイドライン に従うことが重要です。
Qt 4.7.4 のアプリケーションの互換性に関する記事 も合わせて御覧下さい。
以下、このリリースに含まれるビルドターゲットや、Symbian サポートと Nokia N9 上の Qt の互換性など、このリリースの UI 機能以外の部分について書きます。しかしその前に、知っておいた方が良い内部の変更点について触れておきましょう。
Symbian Belle 端末では Qt 4.7.4 バンドルはファームウェアに搭載されています。Qt が Symbian 端末のファームウェア (ROM) 上に載るのは実はこれが初めてです。理由としては、Nokia によって提供されるデバイスアプリケーションの Qt への依存度が大きくなったことが挙げられます。この依存関係の為、Qt は Symbian のソフトウェアスタックの重要な一部となり、ユーザーメモリ(C: ドライブ)よりも信頼できるファームウェア上に置く必要が出てきました。最初の Nokia による Qt Quick ベースのアプリケーションの一例として新しい Nokia Store があります。今後の Symbian ソフトウェアアップデート(ファームウェアまたはアドオンソフトウェア)によって、より多くの Qt や Qt Quick ベースのアプリケーションがリリースされるでしょう。
Qt がファームウェアで更新されることになったのを受けて、より細かいバージョン番号が使われています。Qt 4.7.4 バンドルは今年既に Symbian Belle の PR1.0 ファームウェアでリリースされています。これらの端末には Qt 4.7.401 のビルドがプリインストールされています。PR1.01 には 402 のビルドバージョンが使われ、今後リリースされる既存の Symbian 端末(Nokia N8, C6-01, C7, E7, E6, X7)向けの Belle リリースにはより多くのバグ修正を含んだ Qt 4.7.403 が搭載されます。新しい Belle 端末(Nokia 700, 701, 603)のユーザーには、今後ファームウェアの更新によってこれらの修正が提供されます。Belle 端末のユーザーには、ファームウェアの更新によって Qt の最新のバージョンを取得することができる為、Smart Installer による更新は行われません。しかしながら、Qt Quick Components は Belle PR1.0X 端末にとってはアドオンであり、ファームウェアの一部ではないので、Smart Installer を通してインストールされます。今後リリースされる Belle PR1.1 ファームウェアでは、Qt Quick Components 1.1 はファームウェアの一部として提供されます。
Symbian 端末にどの Qt モジュールがサポートされてプリインストールされているかは Symbian 開発に関する Qt Creator のドキュメンテーション を御覧下さい。また、どの Qt バージョンやモジュールが様々な端末でどのようにサポートされているかのとても詳細な情報が Qt Developer Network の Symbian のサポート のページで御覧頂けます。ほとんどの場合、Smart Installer が必要なモジュールをインストールしてくれるので、開発者の皆さんがこれらの詳細を気にする必要はありません。
新しい Qt SDK 1.1.4 では、Symbian 端末向けの Qt 4.7.4 リリースバンドルのサポートが更新されました。この更新は2つの Symbian ターゲットで使用することができます。
• Qt 4.7.4 for Symbian Belle
• Qt 4.7.4 for Symbian Anna
Anna ターゲットはオフラインインストーラでデフォルトで使用することができます。Belle ターゲットは オンラインインストーラでのみオプションとして使用することができます。Anna の更新により、Smart Installer による Qt 4.7.4 のインストールは Symbian^3 と Anna でも使用可能になりました。
Symbian Anna ターゲットは、既存の Symbian^3 Qt 4.7.3 ターゲットを置き換え、同じ端末、つまり 全ての Symbian^3, Symbian Anna そして Symbian Belle をサポートします。
Symbian Belle をビルドターゲットとして使用する場合は、アプリケーションパッケージに Symbian Belle 端末への依存情報が追加されます。ユーザーがこのようなアプリケーションを Belle 以前の端末にインストールしようとすると、インストーラは互換性に関する注意を表示します。こうした制約が必要な場合のみこのターゲットを使用して下さい。
これらのビルドターゲットでは、ターゲット名に含まれる Symbian リリースのネイティブ API を使うことができます。Symbian Belle ターゲットは Belle で使用可能なネイティブ API をサポートしています。
S60 5th Edition の端末は Qt 4.7.4 ベースのバンドルではサポートされておらず、4.7.3 がサポートされる最後のバージョンになります。これをサポートするために Qt SDK 1.1.4 は Qt 4.7.3 for S60 5th Edition というターゲットを提供します(以前は Symbian^1 と呼ばれていました。)
S60 3rd Edition (feature pack 1 または 2) の Symbian 端末、またはその他の Qt 4.6.3 を搭載した端末は Qt SDK 1.1.4 ではサポートされません。もし Qt 4.6.3 を使用して Symbian/S60 端末向けのアプリケーション開発を続けたい場合は Qt SDK 1.1.2 を使用して下さい。1.1.2 にはまだこれらの端末に最適な TRK デバッグツールが含まれていますし、ビルドターゲットも含まれています。今後の SDK には CODA デバッグツールしか含まれず、これは新しい Symbian リリースでしか使用することができません。Qt 4.6.3 向けに開発をしている場合は、開発に必要な古いターゲットが削除されるのを防ぐため、Qt Creator の SDK update メカニズムを使用しないようにして下さい。
もし Symbian Anna (と Symbian^3) または Symbian Belle 端末向けにアプリケーションを開発またはアップデートする場合は、ビルドターゲットとして Qt 4.7.4 を使い始めて下さい。それによって、例えば Qt Quick Components 1.1 のような最新の機能を利用することができます。
Qt SDK 1.1.4 には Symbian 向けの Qt Quick Components 1.1 が含まれます。全ての Qt 4.7.4 ベースのターゲット(Symbian Anna, Symbian Belle Qt シミュレーター, デスクトップ)にツールのサポートが含まれます。Qt Quick Components 1.0 for Symbian は Qt Quick Components 1.1 によって置き換えられます。これは、これらのモジュールを使用して開発されたアプリケーションが Qt 4.7.4 バンドルに依存することを意味します。
Qt Quick Components は Qt 4.7.4 の機能を使用します。例えば、Qt Quick 1.1 の 右から左のレイアウト や split-view input は Qt 4.7.4 の新機能です。
Qt Quick Components 1.1 (import com.nokia.symbian 1.1
) にはいくつかのユーザビリティの改善やバグ修正が含まれるので、開発者の皆さんはこれを使用することをおすすめします。
Qt Quick Components 1.1 リリースについての詳細は、Sami の記事 をご覧ください。
Symbian 向け Qt 4.7.4 バンドルは MeeGo 1.2 Harmattan 搭載の Nokia N9 と同じ Qt モジュールと API を使用しています。当然ながらどちらにも Qt SDK で使用できるプラットフォーム依存の API がありますが、ハイレベルな Qt API は互換性があります。各プラットフォームの UI デザインに合わせたい場合は Harmattan または Symbian 向けの Qt Quick Components を使う必要があります。単に Qt Quick 1.1 を使用した場合は、両方のプラットフォームでアプリケーションを動かすのは簡単です。Qt Quick Components for Symbian / MeeGo を使って Nokia N9 と Symbian 端末の間でアプリケーションのポータビリティを達成するのもそれほど難しいことではありません。これについてはポーティングガイドをご覧ください。
今のところ Qt 4.8 リリース候補版 はデスクトップ向けの開発のみに対応しています。将来の Symbian リリースへの 4.8 のサポートは今 Nokia で作業を進めているところですが、現時点では開発者の皆さんは 4.7.4 およびそれ以前のバージョンでサポートされている機能に集中して下さい。4.8 での多くの改善点は、アプリケーションからは見えない Symbian 向け Qt の最適化なので、アプリケーションの変更は必要ありません。