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を背景とした層の厚さがあり、参考文献などリソースも豊富にあることから、今後も一定の存在感を示すことだろう。

この連載の記事
-
第187回
iPhone
NFCの世界を一変させる!? iOS 11「Core NFC」の提供開始が意味するもの -
第186回
iPhone
Appleと「4K HDR」 - iOS 11で写真/動画を変える「HEIF」と「HEVC」 -
第185回
iPhone
iPhone 7搭載の「A10 Fusion」「W1」は何を変えるか -
第184回
iPhone
オープンソース化された「PowerShell」をMacで使う -
第183回
iPhone
アップル製デバイス連携の鍵、「Continuity」とは? -
第182回
iPhone
DCI-P3準拠へと歩むiPhone/iPad - WWDC基調講演で秘められた新技術は、ここにある(2) -
第181回
iPhone
WWDC基調講演で秘められた新技術は、ここにある(1) -
第180回
iPhone
WWDC直前、買い替え前にマイMacのココをチェック -
第179回
iPhone
私がiTunesを使わなくなった5つの理由 -
第178回
iPhone
今あえてiPhone「Live Photos」を知る -
第177回
iPhone
「Windows Subsystem for Linux」はOS Xのライバルとなるか? - この連載の一覧へ