この記事を読むのに必要な時間:およそ 1 分
ほんの数年前まで,アプリやゲームの開発と言えばWindowsやMacといったパソコン向けでしたが,2010年頃からiPhoneやAndroidなどのスマートフォンユーザーが急激に増え,2013年現在,アプリやゲームのプログラミングで生計を立てるにはこれらスマートフォン向けに作るしか道がなくなっています。しかし,スマートフォンのシェアはiPhone(開発言語はObjective-C)とAndoroid(開発言語はJava)という2種類のプラットフォームが仲良く分け合っており,すべてのスマートフォンユーザーにアプリを提供するには,iPhone用とAndroid用の2種類のアプリを作る必要があります。
そこで,開発者の負担を軽減すべく提供されているのが,“クロスプラットフォーム開発環境”と呼ばれるソフトウェアです。これを利用すると,たった1つのプログラムを作るだけで,iPhoneとAndroidの両方にアプリやゲームを提供することができます。
表に挙げたのは,代表的なクロスプラットフォーム開発環境ですが,これらの他にも,Monoから派生した「Xamarin」,Delphi言語で開発できる「Delphi XE5」,国産の「Herlock」など,用途や言語に合わせて新しい開発環境が続々と登場しています。
表 主なスマートフォン向けクロスプラットフォーム開発環境
名称 | 使用言語 | 主な用途 | ネイティブ |
PhoneGap | HTML5+JavaScript | Webアプリの移植 | × |
Titanium Mobile | JavaScript | Webアプリの移植 | × |
openFrameworks | C++ | メディアアート | ○(Android NDK) |
Cocos-2dx | C++ | 2Dゲーム | ○(Android NDK) |
Unity(Mono) | C#,JavaScript | 3Dゲーム | × |
Flash(Adobe AIR) | ActionScript | 2Dゲーム | × |
しかし,良いことばかりに見えるクロスプラットフォーム開発環境にも,以下のような欠点があります。
- パフォーマンスや安定性に問題が生じやすい
- チューニングやデバッグなどの作業が難しい
- ネイティブフレームワークを活用しにくい
- プラットフォームの進化に対応しにくい
そのため,クロスプラットフォーム開発環境で作成したアプリは,JavaやObjective-Cで開発したネイティブアプリに比べ,パフォーマンスや安定性,デザインなどに難点を抱えがちです。一方,世界のトレンドに目を向けると,FacebookやTwitter,Evernote,Skypeなどの巨大サービスでは,いずれもiPhone版とAndroid版を別々に開発し,各プラットフォームごとに最適化されたアプリを提供しています。ユーザーエクスペリエンスを重視する場合,このような開発方法が主流になっているようです。
クロスプラットフォーム開発環境を利用した開発は手軽かつ便利ですが,完全ネイティブのアプリには様々な点で劣ってしまいがちです。「本気のAndroidアプリ」の開発を志すなら,ぜひネイティブの開発環境であるAndroid SDK,および基本となるJava言語の徹底的な理解を目指しましょう。