SymbianおよびMeeGo向けToozlaモバイルガイドの開発方法

Toozlaの興味深い場所へのモバイルオーディオガイドをSymbianプラットフォーム用に作成する必要があるという考えは、長い間私たちを訪れてきました。 しかし、2011年の初めにノキアがWindows Phone 7に賭けることを決定する約1ヶ月前に、アプリケーションの作成に手を差し伸べました。しかし、これは私たちの計画に影響しませんでした。市場で。



必要な開発オプションを選択して、3つの可能なパスから進めました。



1つは、ネイティブのSymbian SDKを使用することです。 Symbian SDKを選択する際の主な利点は、Symbian 3rd Edition以降のデバイスの最大カバレッジです。 ただし、このSDKでプログラムを作成するのは非常に難しい(特にUIの場合)ため、この開発オプションはすぐに却下しました。



2番目の方法は、 Qt SDK 1.0を使用することです。 この開発キットは2010年半ばにリリースされ、Qt 4.6.3に基づいています。 Symbian SDKとは異なり、このオプションを使用すると、開発を簡素化し(特にモバイルデバイス固有のAPIを使用)、クロスプラットフォームに依存することができます。 このソリューションの短所は、デバイスのカバレッジが狭いこと(Symbian v1とSymbian v3のみ)であり、それにもかかわらず、最新のUIを開発する際の複雑さです。



3番目は、 Qt SDK 1.1の使用に頼ることです。 当時、それはベータ版の状態であったため、主なリスクが関連付けられていました。 一方、このSDKでは、QMLがサポートされているQt 4.7が使用されました。 QMLのおかげで、クロスプラットフォームに依存しながら、インターフェイスを迅速かつ効率的に作成できました。 さらに、Qt Mobilityには、マップを表示するためのQMLコントロールが含まれていました-まさに必要なものです。



最終的に、もちろん、SDK 1.1を選択しました。これは、主にQMLコントロールとUIの作成が簡単なためです。



軽度の困難





アプリケーションのアーキテクチャは次のように選択されました。エンジン全体はC ++で記述され、QMLはUIの作成のみに使用されます。 エンジンとインターフェイス間の接続は、スロット、信号、データバインディングを通じて実装されます。



このエンジンは特別なコメントや問題なしに作成されましたが、UIでは、当時のQt SDK 1.1が不完全だったため、少し手を加える必要がありました。 アプリケーションを作成したとき、SDKにはモバイルデバイス用の標準コントロールがまだなかったため、Rectangle、Text、Image ListView、MouseAreaからインターフェイスを構築しました。 ただし、これにも関わらず、特別な費用をかけることなく、ストーリーを選択するための水平スクロールの可能性を備えた、プレイヤーのようなかなり複雑なコントロールを構築できました。 これで、Qt Quick Componentsに必要なすべてのコンポーネントが既に存在します-待ちました。 :)



当時のアプリケーション設計のガイドラインには混乱もありましたが、公正に言えば、現時点ではノキアがすでにこの問題を解決していることに注意する必要があります。



シミュレーター



Qt SDK自体にはエミュレーターは含まれませんが、シミュレーターが含まれているため、私の場合、すべてのコードはx86用にコンパイルされ、Windows APIを使用して動作しました。 これにより、シミュレータ内のアプリケーションの外観がデバイス上のものとわずかに異なるという事実につながります。他のフォントや他のアンチエイリアシング、そして最も重要なこと-異なる速度です。 シミュレーターでは、スマートフォンと比較して、すべてが飛ぶだけであり、これは誤ったセキュリティの感覚を与えます。 Symbian APIを使用する必要がある場合、シミュレータ用にビルドするには、#ifdefsでコードを区別する必要があります。 いずれにせよ、ライブデバイスでソフトウェアのパフォーマンスをテストする必要があります-このルールはQt開発者だけでなく、すべての人に適用されます。



Nokiaは、Qt SDK 1.1のリリースから6か月で大きな進歩を遂げました。 たとえば、Qt Quick Componentsが登場したため、BelleとMeegoのネイティブインターフェイスを備えたアプリケーションをすばやく作成できます。 最新バージョンは非常に安定しており、QMLとQt Creatorは非常に有望です。 私の意見では、QMLは一般に宣言UIの点で人類の最高の発明です。他のモバイルプラットフォーム(Android、bada、さらにはXAMLを備えたWP7)と比較すると、間違いなく勝ちます。 たとえば、そのコンパクトさと、マークアップでJavaScriptを直接使用する可能性があるためです。 一般に、QMLで書くのが好きだという理由だけで、QMLでさらに2、3のアプリケーションを書く準備ができています;-)



ノキアストアにToozlaが登場した直後、同社はアプリケーションをMeeGoに移植するという申し出を受けました。 どうして? 実際、移植は非常に迅速で痛みがありませんでした。 主なコストはデザイナーが負担し、デザイナーはインターフェイス全体を異なる画面解像度に再描画する必要がありました。 私の場合、移植は実際にはネイティブAPIが呼び出される場所でのいくつかのQMLファイルと#ifdefのセットに行き着きました。 プログラマーとしての私の人件費は2日ですが、これはN9のダウンロード数によって完全に正当化されます。



Symbian用のToozlaを開発した後、このプラットフォームでかなり良いプログラミング経験がありました。 私がアプリケーションを書いていたとき、Qtには欠陥と欠点がありましたが、QMLとクロスプラットフォームでNokiaを許す用意ができています。 現在、Qt SDKは多くの「小児疾患」を失い、非常に魅力的なフレームワークになっています。



All Articles