新刊ピックアップ

Android開発にJavaの理解が必須な理由

この記事を読むのに必要な時間:およそ 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」など,用途や言語に合わせて新しい開発環境が続々と登場しています。

 主なスマートフォン向けクロスプラットフォーム開発環境

名称使用言語主な用途ネイティブ
PhoneGapHTML5+JavaScriptWebアプリの移植×
Titanium MobileJavaScriptWebアプリの移植×
openFrameworksC++メディアアート○(Android NDK)
Cocos-2dxC++2Dゲーム○(Android NDK)
Unity(Mono)C#,JavaScript3Dゲーム×
Flash(Adobe AIR)ActionScript2Dゲーム×

しかし,良いことばかりに見えるクロスプラットフォーム開発環境にも,以下のような欠点があります。

  • パフォーマンスや安定性に問題が生じやすい
  • チューニングやデバッグなどの作業が難しい
  • ネイティブフレームワークを活用しにくい
  • プラットフォームの進化に対応しにくい

そのため,クロスプラットフォーム開発環境で作成したアプリは,JavaやObjective-Cで開発したネイティブアプリに比べ,パフォーマンスや安定性,デザインなどに難点を抱えがちです。一方,世界のトレンドに目を向けると,FacebookやTwitter,Evernote,Skypeなどの巨大サービスでは,いずれもiPhone版とAndroid版を別々に開発し,各プラットフォームごとに最適化されたアプリを提供しています。ユーザーエクスペリエンスを重視する場合,このような開発方法が主流になっているようです。


クロスプラットフォーム開発環境を利用した開発は手軽かつ便利ですが,完全ネイティブのアプリには様々な点で劣ってしまいがちです。⁠本気のAndroidアプリ」の開発を志すなら,ぜひネイティブの開発環境であるAndroid SDK,および基本となるJava言語の徹底的な理解を目指しましょう。