ここでいうアプリとはもちろんスマートフォンアプリのことですが、このアプリを開発、制作する方法はいくつかあります。管理人としてはプログラミングによるアプリの制作を「アプリ開発」と呼ぶようにしたいと思います。

アプリを開発したい人ってどんな人

 世の中にどれくらい「アプリを開発してみたい」と思っている人がいるかわかりませんが、アプリ開発を希望している人にもいろんなレベルの人がいてると思います。それこそ、

  1. 現役のプログラマーやSEでプログラミングの実務経験がある人
  2. 趣味でプログラムをやったり、学生時代にプログラミングの科目を履修したことがある人
  3. パソコンを使うことはあるがプログラミングなんてさっぱりという人
  4. パソコンもスマホも持っていないけど、アプリ制作は儲かると聞いて興味を持った人

などです。

 4の人はまずパソコンやスマホについて学んでもらうとして、個人のゲームアプリ開発者に共通して必要だと思われる開発環境は、開発効率の良い環境です。
 アプリの内容や複雑さによって違いますが、個人的に開発効率を決めるのは以下の点だと思っています。

  • クロスプラットフォーム開発環境(iOSもAndroidも同時に開発できる)であること
  • 使いやすい(わかりやすい)オブジェクト指向プログラム言語であること
  • インターネットや書籍での情報(日本語)が多いこと
  • 広告を貼る予定なら広告モジュールなどが用意されていること

 アプリで重要なのはアイデアやアルゴリズムなので、どれでもいいのでまずは開発してみるということが大事かもしれません。とはいえ、上記のことはのちのちに影響してくるので重要です。

スマホアプリの開発環境

 管理人が検討したことのある開発環境は以下のとおりです。独断と偏見(間違っている内容もあるかもしれない)で概要を記してみました。
 全てに共通して、iOS(iPhoneやiPadアプリ)を開発する場合はMacが必要になります。

開発環境 メリット デメリット
Xcode  iOSの標準的な開発環境です。もちろんクロスプラットフォームではありませんが、情報も豊富で細かな開発が可能です。
 採用しているプログラム言語はObject-Cという独特の言語ですが、オブジェクト指向です。
 以前までAppleはこのXcodeで開発したアプリしか認めていなかったようです。
 Xcodeを利用するためにはMacが必要になります。Windowsでの開発はできません。
 Object-CはC言語系のプログラミング言語ですがクセがあって決してわかりやすい言語とは言えませんし、Xcodeでの開発も敷居が高めです。
Eclipse(Java)  Androidの標準的な開発環境です。もちろんクロスプラットフォームではありませんが、情報がかなり豊富です。書店のスマホコーナーにいくとJavaでAndroidを開発するための書籍がたくさんあります。
 採用しているプログラム言語はJavaでオブジェクト指向です。Javaは比較的わかりやすい言語だと思います。
 Androidだけの開発を行うならこれだけで十分だと思うのですが、やはり個人制作者としてはクロスプラットフォームで開発したいところです。
Titanium Studio  管理人が現在使用している開発環境です。クロスプラットフォームでの開発が可能です。
 プログラミング言語はJavaScriptを採用しているためわかりやすく、またインターネットでも書籍でも情報がたくさんあります。
 iOSやAndroidの標準的なUIを使うことができます。
 広告掲載のモジュールも公開されています。
 JavaScriptの情報はたくさんあるのですが、Titanium Studioの情報があまりありません。
 一応、クロスプラットフォーム開発環境なのですが、iOSとは相性がいいもののAndroidの動作がやや不安定です。
 「QuickTigame2d」という無料のゲームエンジンモジュールがあるのですが、現在はLanica社が開発をしており今後は有料になりそうです。
HSP  Hot Soup Processorの略で日本産のゲーム開発環境です。Windowsを含むクロスプラットフォームでの開発が可能です。
 プログラミング言語はHSP独自の言語ですが、非常にシンプルでわかりやすく初心者向けです。日本産の開発環境なので日本語の情報がわりとあります。
 ゲームを制作するための環境なので、描画速度なども早くゲームアプリに相性が良いです。
 最近のバージョンで広告掲載ができるようになってきたようです。
 HSPの言語は非常にわかりやすいのですが、シンプルなため中規模以上のプログラミングになってくると複雑化しやすくなります。
 言語としても開発環境としても機能がシンプルなので、逆に開発効率が悪くなることがあります。
 開発はWindowsでのみ可能です(iOSのアプリをビルドするためには別にMacが必要)。
PhoneGap  Webを含むクロスプラットフォームでの開発が可能です。
 プログラミング言語はJavaScriptを採用しているためわかりやすく、またインターネットでも書籍でも情報がたくさんあります。
 PhoneGapではWebベースのアプリを、アプリマーケットで配布できるようにパッケージングしています。
 あまりしっかりと検討したことがないのでデメリットはわかりません。個人的にはWebベースのアプリというのがひっかかっていて、利用にいたっていません。
Cocos2d-x  cocos2dというiOS用ゲームエンジンの発展版?最近知ったのでよくわかっていませんが、XcodeやEclipseを使って開発できます。
 プログラミング言語はC++を採用していてます。C++の情報はインターネットでも書籍でもたくさんあります。
 ゲームエンジンとしての機能は高いと聞いていますが、言語がC++なのでやや敷居が高くなります。
 管理人も挑戦してみましたがなかなか敷居が高いです。Xcodeでのプロジェクトの構成とかが相変わらずわかりにくいですね。個人制作者としては開発効率が悪いように感じました。
Unity  3Dゲーム用の開発ツールです。WindowsやMacのアプリを開発できて、iOSやAndroid向けにも変換できるようです。プログラミング言語はJavaScriptを採用しているのでわかりやすいです。
 また、以前はiOSやAndroidに変換するのは有料版だけでしたがいまは無料になっているようです。さらに、Ver4.3から2D用のツールも用意されていてかなり注目度が高いです。
 いま管理人もいろいろと興味を持って調べているところですが、デメリットはわかりません。どういったジャンルのゲームアプリに向いているかなど、わかりしだい記載したいと思います。