Mokosoft開発者ブログ

こんなブログ読んでも時間の無駄ですよ

アプリってどうやって作るの?実は色々あるアプリの開発方法や開発言語

http://www.flickr.com/photos/8143486@N04/3281323246

 

今まで質問で多かったのが、「じゃあどうやってアプリ作ったらいいのよ」という質問です。

ついで「どうやってプログラミング勉強すればいいの?」などでしょうか。

アプリに興味はあるものの、何から始めたらいいのかわからないし、どうやったらアプリが作れるのかわからない、という人は多くいるようです。

 

すべてを語ると何十エントリに達するだろうかという内容になると思いますので、

ひとまずはある程度の知識を持っている方向けに、様々なアプリの開発手法を伝えていきたいと思います。

 

基本のおさらいからですが、iOSアプリとAndroidアプリをそれぞれ作るための、公式開発手法がXCodeとEclipse+AndroidSDKになります。

 

XCode

http://www.flickr.com/photos/18809252@N00/2644894991

【取得先】macのApp Storeアプリよりダウンロードする

【条件】AppleIDが必要。また作成したアプリを実機に転送したり、ストアへアプリを公開する場合には、AppleDeveloper契約が必要。年間8400円。

【開発言語】Objective-C  C、C++言語も利用可能

【制作できるもの】iOSアプリ、Macアプリ

【備考】ストアへ公開を行う場合には、XCodeもしくはXCodeに付属のApplication Loaderが必須となる。

 

Eclipse+AndroidSDK  (公式では ADT Bundle)

 

【取得先】Android SDK | Android Developers

もしくは、EclipseとAndroidSDKをそれぞれ単体でダウンロードし、利用することも可能。

EclipseはGoogle社が開発しているわけではなく、オープンソースプロジェクトで開発が行われている、統合開発環境ソフトになります。

Eclipse - The Eclipse Foundation open source community website.

 【条件】なし、ストア公開のためにはAndroid Developer契約が必要。25$を払えばずっと使えます。

【開発言語】Java、C、C++ (Eclipse単体では統合開発環境のため、この限りではない)

C、C++ での開発にはAndroidNDKが必要

【制作できるもの】Androidアプリ (同上)

【備考】ストアへの公開はEclipseがなくてもAndroidSDKさえあれば、一応可能

 

 

また、Androidには公式の開発環境がもう一つ存在します。

Android Studio

 

 【取得先】Getting Started with Android Studio | Android Developers

こちらはJavaの統合開発環境として有名な IntelliJ IDEAをGoogleがベースに開発を行っている、正式なAndroidアプリ開発ソフトウェアになります。

ただ、現状ではまだ使えない機能やバグなども多いため、ADT Bundle(Eclipse)を利用すべきだ、と公式でも言及されています。

 

さて、これらが一般的な開発環境になりますが、やはり敷居が高く思われがちです。

iOSはDeveloper契約でまず躓くとよく言われますし、Objective-Cという言語は他に類を見ない記法のため、慣れるのに時間がかかります。

一方のAndroidもUIの作成が容易ではなかったり、機種により画面サイズも様々のため、多くの機種に対応させたものをつくろうとすると、しょっぱなは覚えることが多いです。

 

でも習得に時間がかかるのは困る、また難しいという方のために、多くの開発環境やサービスが作られています。

 

 

 Cocos2d-x

 

 【取得先】Cocos2d-x | Cross Platform Open Source 2D Game Engine

【開発言語】C++、JavaScript、lua

※JavaScriptとluaに関しては、スクリプトエンジンがアプリ内に組み込まれていて、それを実行する仕組みのようです

 

もともとcocos2dという2Dゲーム作成のフレームワークプロジェクトがありましたが、これをiPhoneアプリ開発用に移植されたcocos2d for iphoneというフレームワークができました。

さらにこのcocos2d for iphone をクロスプラットフォームフレームワークとして、中国で開発されたのがこのcocos2d-xです。

描画にはOpenGLを利用しており、高速な描画が可能。C++で書け、クロスプラットフォームのため、一つのプログラムでiOSとAndroidアプリどちらも作成ができる点などがメリット。

開発方法はFlashのイメージに近く、シーンを作成し、シーンの中にオブジェクトを配置してプログラムを記述していく。シーン間を移動することで、画面遷移を実現するといったような感じ。

それにくわえてオープンソースの物理エンジンが2つも胴囲されており、容易に扱うことが可能となっています。

 

Mokosoftの「見ずに遊ぶ!無限すっぽり」はCocos2d-Xを使って開発しています。

 

見ずに遊ぶ!無限すっぽり

見ずに遊ぶ!無限すっぽり

  • mokosoft
  • ゲーム
  • 無料

 

見ずに遊ぶ!無限すっぽり - Google Play の Android アプリ

 

ちなみに、Cocos2d-html5というフレームワークも公開されており、こちらはブラウザ上でcocos2dの機能が利用できてしまうというもの。

ブラウザ上で動くゲームを開発することも簡単にできてしまうのです。

 

Unity

 

 【取得先】Unity - Game Engine

【条件】基本開発機能は無料で利用できるが、その他開発に便利な機能を利用しようとすると、ライセンス料を支払う必要がある。

 【開発言語】JavaScript、C#、Boo

ここまで便利なものは今までなかったといえる、3Dゲーム統合開発環境のUnity。

当然2Dゲームを作ることも可能で、最近では2Dゲーム用のテンプレートも用意されているので、敷居もとても低い。

3DやオブジェクトをGUIで編集できて、プログラムを埋め込むことができるので、今までのゲーム開発方法は一体なんだったのかと思えてしまうほどの高機能開発ソフトです。

 

Cocos2d-xやUnityはどちらもObjective-CやJavaを覚えずともアプリの開発をすることができてしまうわけですが、それぞれの提供するAPIに関しては別途覚えるなりリファレンスを読み解いて利用する必要はあるので、やはり勉強は必要です。

 

 

Titanium Mobile

 

【取得先】 Titanium Mobile Application Development | Appcelerator Inc.

【開発言語】JavaScript

JavaScriptならまかしておけって人にはおすすめかもしれないフレームワーク&統合開発環境ソフトです。

TitaniumMobileの場合は、JavaScriptのフレームワークで開発をして、それらをiOSとAndroidのNativeにコンバートするような動きをするようです。

こちらはゲームよりはアプリを作るのに向いているフレームワークだと思います。

やはりクロスプラットフォームのため、習得にかかる時間は少なく済むのが魅力的でしょう。

ただ、TitaniumMobileではなんでも作れる、というよりはある一定のアプリを作るのにとても素早くつくれるという印象が強いですね。

 

 

PhoneGap

 

 【取得先】PhoneGap | Home

 日本語のファンサイトもあります。

PhoneGap Fan - PhoneGap (Cordova) の日本語コミュニティ

 【開発言語】HTML、CSS、JavaScript

iOS、Androidともに、WebViewと呼ばれる、ブラウザと同等の機能を有するWeb表示コンポーネントがあるのですが、それを利用して、HTMLベースでアプリが作れてしまうフレームワークです。

一番のメリットは見た目をHTML+CSSで作ることができるという点です。

これを習得している方はプログラマだけではなくデザイナの方にも範疇が広がると思うので、難しいプログラミングの知識がそこまで必要としなくてもアプリを作ることが可能です。

 

ただ、いずれのフレームワークも、PUSH通知機能や、アプリ内課金など、サーバーとの連携が必要な機能に関しては別途のNative環境での実装が必要になったりします。

どこまでできるのかという点については確認及び注意が必要です。

 

Monaca

 【取得先】Monaca - HTML5モバイルアプリ開発プラットフォーム

 【開発言語】HTML、CSS、JavaScript

開発環境はPhoneGapと同様のように思いますが、今までのフレームワークは自分のパソコン内で開発を行うというのが当たり前でしたが、このMonacaはブラウザ上で開発をすることができてしまうというクラウドサービスなのです。

中身はPhoneGapを利用しているので、作り方も似たようなものになります。

Monacaはクラウド上でプロジェクトを作成し、アプリをHTMLベースで開発し、アプリへビルドするなど面倒な手間もすべてブラウザ上で完結することができます。

開発環境すら用意する必要がないというのはすごいですよね。

 

 

Xamarin

 【取得先】Xamarin: Build apps with C# and .NET for iOS, Android, Mac and Windows

【開発言語】C#

年末の紅白歌合戦公式アプリがXamarinで作られているんじゃないかということでも話題になりました。

元々はMonoという.NETをWindows以外で使えるようにするためのプロジェクトから始まっており、上述したUnityもこのMonoの技術を利用して、C#による開発を実現しています。

この後継のプロジェクトとなる、Xamarin。MacやLinuxでもC#で開発を行うアプリを動かすことができるのでびっくりです。

(もともと.NETの思想は、JavaVMを対抗馬として考えて作られたものなので、当たり前といえば当たり前ではあるのですが。)

そして、iOSやAndroidアプリを作ることもできるので、.NET開発者やWindowsしか持っていない人などには嬉しい開発環境だと言えるでしょう。

さすがにVisualStudioには及ばないですが、IDEとしてもXamarinは優れていると思いました。

 

 

Adobe AIR

 

 当初よりクラスプラットフォームとして、アプリだけでなくPCのOSを問わず使えるアプリが作れるという触れ込みだった、AdobeAIRですが、これでもiOS、Androidアプリを作ることが可能です。

AIRアプリはFlashを使って作ることができるため、Flashが得意な方はメリットが大きいですね。

ソーシャルゲームのゲームUI部分などはAirを使って作られているものが多いですよね。

 

 

 

この他にも、アプリ開発が行えるフレームワークというのは数多くあります。

自分の今の技術にあっていて、より早くアプリを開発できるものを探してからアプリ開発を初めて見るのも良いのではないかと思います。

また、アプリとサーバーとの連携が必要になってきた場合にはSaaSやBaaSと呼ばれるサービスなどもあるので、興味のある方は調べてみてはいかがでしょうか。

私は使ったことがないのでレビューはできませんが。

 

なんにせよ、どのような方法でも、考えた企画が一番早く実現できるというところがこういったものを利用するメリットになると思います。

開発に時間をかけていてはもったいないですからね。