Yet AnotherなiOSアプリ開発フレームワークたち(1)
確認になるが、前提条件としてネイティブiOSアプリの開発にはXcodeが必要だ。後述する開発フレームワークは、Xcodeと連携することで公開APIにリンクするネイティブアプリを生成する。Xcodeを操作せずにアプリ開発を進めることは可能だが、アプリの動作チェックにはXcodeに付属の「iOSシミュレータ」を使うほか、生成したバイナリをAppleへ送信する際にもXcodeの機能(Application Loader)を使わねばならない。
メリット/デメリットもまとめておこう。Xcode以外の開発フレームワークを利用することは、結局のところ純正環境(XcodeとObjective-C/C/C++/Swiftの組み合わせ)との比較において、メリット/デメリットを通算したうえでメリットの多いほうを選ぶに過ぎないからだ。
メリット
・自分が慣れた開発言語を選択できる
・マルチプラットフォーム開発が可能
(異種OSでもソースコードの共有が可能)
デメリット
・Appleが提供するすべての機能を利用できるとはかぎらない
・Objective-C/C/C++/Swiftほどのパフォーマンスは期待できないことが多い
・突然Appleが仕様を変更した場合、対応を迫られる可能性がある
・最新のApple純正開発環境にライブラリが対応していないことがある
Titanium Mobile(JavaScript)
数あるサードパーティー製開発フレームワークのなかで、もっとも強い存在感を放つのは「Titanium Mobile」だろう。一見するとネイティブアプリだが、開発言語にはJavaScriptを採用、デバイス上で実行されるとき動的に(JavaScriptエンジンによってインタプリタ的に)解釈される仕組みだ。ただし、JavaScriptのソースがコンパイルされてネイティブコードに変換されるわけではないので、パフォーマンスはObjective-C/C/C++/Swiftに比べ見劣りする。
iOSとAndroidの両OSがサポートされ、マルチプラットフォーム指向でアプリ開発できることもメリットとして挙げられる。ただし、両OSではUIのコンセプトが大きく異なるため再設計を要する部分が多く、サポートされるAPIにも差があるため、共通のソースコードで同じ外観・同じ機能のアプリを開発できるわけではない。
豊富かつ整備されたAPI群(Titanium Mobile API)も、この開発フレームワークを選ぶ理由となりうる。ボタンやスライダーといったUI部品のほか、写真/ビデオの表示やオーディオ再生といったメディア機能、カメラや加速度センサーといったハードウェアのサポートもあるうえ、Objective-Cなどで開発した(ネイティブコードの)プラグインを使い機能を拡張することもできる。
Titanium Mobileは、Eclipseベースの統合開発環境「Titanium Studio」を使い開発することがオーソドックスな方法だが、サードパーティー製開発フレームワークとしては最大級の規模を持つこともあり、JavaScriptの派生言語「CoffeeScript」を使うなど、多くのユーザーによってさまざまな開発手法が編み出されている。JavaScriptはWEB/HTML 5を背景とした層の厚さがあり、参考文献などリソースも豊富にあることから、今後も一定の存在感を示すことだろう。