アプリデベロッパー必見!iPhone/Android両方で使えるクロスプラットフォームアプリをつくるには?[まとめ&比較]
2014/02/03
みなさんはスマートフォン使ってます?最近はスマホの普及率ってすごいですよね!
2013年のスマホの出荷台数は2928万台だったそうです!PCの出荷台数が691万台ですから、4倍以上ありますね!
そしてその2928万のうち56%がAndroidで、43%がiPhoneです。。
大雑把に言うとだいたい半分ずつって感じですね。(大雑把すぎか……)
さてさて、スマホを使ったことがある人ならご存知でしょうが、スマホにアプリを入れる時はiPhoneならAppStore、AndroidならGooglePlayを使います!
そんで、Androidユーザーの友達に「このアプリいいぜよ〜!」とか聞いて自分のiPhoneでアプリを探すこと、ありますよね!
でも探せども探せども出てこない〜〜><
なぜならGooglePlayは使うことが出来ないんです、、、、、、
そう、iPhoneならね!
なんだよ〜、Android作ったんならiPhone版も作っとけよな〜!同じもんだろ〜!
とかって思ったりしますが、
実は同じじゃないんですよ〜、、、
これ、なぜかってゆーと、開発環境の違いがあるからなんです。
アプリの開発は、iPhoneだと「Objective-C」Androidだと「Java」というプログラミング言語で開発するのが基本です。
だからiPhoneとAndroid、両対応のアプリを作ろうと思ったら、それぞれ別に作らないかんのですよ。だから結構たいへんなのだ〜
ですが、それはあくまでも「基本」!
もちろん一番パフォーマンスを発揮できるのが「Objective-C」と「Java」ではあるんだけど、他のプログラミング言語で書くことによって、1発で両対応のアプリを開発することも出来ちゃうんです!
今回はそんなクロスプラットフォーム(マルチプラットフォーム)な開発方法について、いくつかあるのでちょっと紹介しますね〜。
PhoneGap
- 開発言語 : HTML+CSS+JavaScript
- 対応プラットフォーム : iOS/Android/BlackBerry/WindowsPhone/Symbiam...etc...
- 特長 : 端末内のブラウザにHTMLで書いたアプリの内容を表示させてるってイメージかな。
- メリット : 開発の敷居が低い!Webを作る感覚でアプリを作れる!でもちゃんとアプリとしてリリースできる!
- デメリット : 実行速度やデバイス特有の機能を扱ったりとかは不利。やれることが限られる。。。
TitanumMobile
- 開発言語 : JavaScript
- 対応プラットフォーム : iOS/Android/BlackBerry/WindowsPhone/etc...
- 特長 : PhoneGapと違い、JavaScriptで書いたコードをネイティブ(Objective-C/Java)に変換してくれる。(厳密には違うけど。。。)UIとかもJavaScriptで書く。
- メリット : デバイス特有の機能を使ったりできるし、PhoneGapより動作が速い。
- デメリット :PhoneGapよりは作るのが難しい(人によるかも)。ネイティブアプリよりは遅い。
FlashBuilder(AdobeFlex)
- 開発言語 : ActionScript
- 対応プラットフォーム : iOS/Android/WindowsOS/MacOS/etc...
- 特長 : モバイルだけでなくて、デスクトップアプリも開発できる!
- メリット : Flash作ってた人は取っ付きやすいね。同一ソースでマルチプラットフォームも可能か!?
- デメリット :開発者へのアンケートで「将来使わなくなるツール」ダントツ1位、、、正直使ってる人が少ないから情報や交流が乏しい。
Qt
- 開発言語 : C++
- 対応プラットフォーム : iOS/Android/WindowsOS/MacOS/etc...
- 特長 : 2009年まで高い商用ライセンスかGPLライセンスの2択ってゆー扱いにくさだったが、今ではLPGLが加わり、なにげに注目。
- メリット : ワンソースで色んなOSに対応。去年ぐらいにクロスプラットフォーム対応したみたい。
- デメリット :ライセンスがLGPL(有料商用ライセンスもある)。デバイス特有のUIや機能が使いにくい。C++はちょっと敷居が高いか。
Delphi XE
- 開発言語 : Delphi(Pascal拡張言語)
- 対応プラットフォーム : iOS/Android/WindowsOS/MacOS
- 特長 : エンバカデロ社の商品。ちなみにこの会社の「C++Builder」でもクロスプラットフォーム開発が出来る。
- メリット : ワンソースで色んなOSに対応。ワンソースなのに各プラットフォームのネイティブUIを再現している!!(らしい)
- デメリット :ソフトが有料(高い!)。てかDelphi言語ってどんなだ?
Xamarin
- 開発言語 : C#
- 対応プラットフォーム : iOS/Android/WindowsOS/MacOS
- 特長 : .NET Frameworkを使ってクロスプラットフォームを実現。
- メリット :C#で開発できる 。
- デメリット :コアロジックは共通化できるけど、ワンソースでクロスプラットフォーム化は無理らしい。
いかがでしたか〜?アプリの開発環境って、結構いろいろあるもんなんですね〜。
もし自分の習得した言語があれば、開発してみるとおもしろいですよ〜。
その他、ゲーム用アプリに特化した開発環境としてMarmalede(C++)、Unity(C++)、corona(Lua)、Cocos2d-x(C++)などもありますので、ゲームを作ると決まっている人は調べてみて下さいね。
今回いろいろな開発環境を紹介しましたが、それでもやっぱりクロスプラットフォームは難しいんですよね〜
なので両方に対応してないアプリがあってもどうか生暖かい目で見守ってあげて下さいね。
ではでは〜〜。