総務省の「平成28年情報通信メディアの利用時間と情報行動に関する調査」によると、20~30代のスマホ利用率は9割を超え、全世代でも7割を超えたとのことです。そのような背景もあり、スマホ向けのアプリも無数に増えました。今後もアプリの開発を検討する企業は減ることはないでしょう。
ところが、ひとえにアプリ開発と言っても、AndroidアプリとiPhoneアプリとでは開発環境が異なります。それぞれの開発環境をよく理解した上で、アプリ開発を検討していきましょう。
スマホアプリの種類
AndroidアプリかiPhoneアプリか(あるいは両方か)を検討する前に、そもそもアプリと呼ばれるものにはいくつか種類があります。その中でも、基本的なWebアプリとネイティブアプリとの違いについてそれぞれ説明していきます。
(1)Webアプリ
スマホ端末にはダウンロードされず、Google ChromeなどのWebブラウザからアクセスして利用するアプリをWebアプリと呼びます。WebアプリはApp storeやGoogle Playなどからダウンロードする必要はありません。
Webブラウザから利用するということは、アクセスするにあたりネット環境が必要になります。ネットへの接続環境が良ければ高いアプリの利用がスムーズですが、接続環境が悪ければ安定してアプリを使うことができません。Webアプリはこの点を考慮する必要があります。
(2)ネイティブアプリ
スマホユーザーであれば、日々App storeやGoogle Playなどからアプリをダウンロードして使っていると思います。一般的に我々がアプリと呼んでいるものが、正確にはネイティブアプリということになります。
ネイティブアプリは個々人の携帯端末にインストールされるので、必ずしもインターネットを必要としません。もちろんキュレーションアプリなど、新規記事を読み込むためにインターネットを必要とするネイティブアプリもありますが。
この後にご説明するAndroidアプリの開発やiPhoneアプリの開発は、このネイティブアプリのことだと理解しながら読み進めて下さい。
Androidアプリ開発に必要な環境
(1)Androidの開発環境
ネイティブアプリのAndroid開発を行う場合に、『Android Studio』で開発環境を構築していくことになります。Android Studioは、Googleが提供するAndroidプラットフォームに対応する統合開発環境です。以前は「Eclipse」と「ADT」とを組み合わせて開発することが主流でしたが、2015年末にこれらのサポートが終了しました。
Android Studioでは、Androidアプリの開発以外にも、Androidタブレット・Android TV・Android Auto(カーナビ)などのアプリも開発も行うことができます。よって、Androidアプリの開発にはこのAndroid Studioは必須と言えます。
Android Studioは
- 強力なコード編集機能がついている
- テストが行いやすい
- チーム開発が行いやすい
といった特徴を持っています。
(2)Androidの開発言語
ネイティブアプリのAndroidを開発する言語は『Java』になります。Javaはプログラム言語の中でも習得が難しい言語の1つと言われていますが、Javaは動作する環境が幅広く使用できるのが特徴です。
このJavaは、主に3つの開発分野に分けることができます。
- Webブラウザ上で動作するWebアプリケーション開発
- OS上で動作するアプリケーション開発
- スマートフォン搭載OS上で動作するネイティブアプリ開発
最後のネイティブアプリ開発のJavaを従来のJavaと区別して、Android Javaと呼んでいます。
(3)Androidの開発OS
Androidのネイティブアプリは以下のOSで開発できます。
- Windows
- Mac OS X
- Linux
Andoroidアプリの開発はWindowsだけではなく、Macでも開発することができます。
iPhoneアプリ開発に必要な環境
(1)iPhoneの開発環境
ネイティブアプリのiPhone開発には、『Xcode』が必要になります。Xcodeとは、Apple社が提供する「Mac OX X」向けの統合開発環境で、誰でも無償でApp storeからインストールすることができます。
アプリを作るには様々な作業が必要です。アプリが想定通りに動作するかの確認や、バグがないかどうかの動作検証、あるいはアプリで使う画像や音声素材の管理など。Xcodeはそれらアプリの開発に必要な作業をサポートするツールがセットになった道具箱だと理解して下さい。
このX codeを使うことで、Apple製品のアプリであれば、iPhone、iPadアプリ、Macアプリ、AppleTVアプリ、AppleWatchアプリなど何でも作ることができます。
Xcodeは、
- 効率的なコード編集機能がついている
- 直感的に画面を作成できる
- ソースコードの管理が効率的である
といった特徴を持っています。
(2)iPhoneの開発言語
ネイティブアプリを開発には『Swift』と呼ばれる言語が必要になります。この言語は2014年に登場したばかりの新しい言語です。また、Swiftは基本的にMacにしか対応していないので、アプリの開発にはMacを準備する必要があります。
Swiftは無料のオープンソース・プログラムのため、Swiftで開発したアプリは全てのソースコードが公開されています。よって、第三者でも自由に閲覧や編集することができます。
以前Appleではアプリの開発にObjective-Cという言語が必要でしたが、iOSやMac OSの開発を簡単にし、アプリ開発者を増やすためにSwiftが作られました。
(3)iPhoneの開発OS
iPhoneのネイティブアプリは以下のOSで開発できます。
- Mac OS X
Androidアプリの開発と異なり、iPhone アプリはMacでしかアプリの開発ができません。日本はiPhoneユーザーの比率がAndroidユーザーの比率よりも高い数字を誇りますが、世界的に見ればAndroidユーザーの方が多数を占めます。
アプリ開発後に収益を得るための方法
企業がアプリ開発を行う場合、当然ながらそのアプリを通して収益を得るところまでを考えて開発する必要があります。一口に収益を得るといってもいくつかのパターンがあるので、アプリ開発の前に、どういったパターンで収益化を図るのかを考えておくことは大切です。ここでは主な4つのパターンを紹介します。
(1)有料ダウンロード
App storeやGoogle Playなどからアプリをダウンロードする際に、有料でダウンロードしてもらう稼ぎ方です。アプリのダウンロード数に比例して収益が得られる点は、この収益モデルの大きなメリットです。ポイントは、アプリの内容と設定した価格のバランスを保つことです。
ただし、当然ながら有料アプリのダウンロードは、それ自体がユーザーにとってハードルが高いアクションだと言えます。アプリの価値がユーザーへ適切に伝わらなければ、ダウンロード数は想定した通りには伸びないでしょう。
(2)アプリ内広告
アプリ内広告は、 アプリ内に表示されるバナーがクリックされることで収益が発生したり、メニュー内に含まれるオファーウォール広告がクリックされることで収益が発生するパターンなど、実に様々な種類があります。
アプリ内広告のメリットは、ユーザーに無料でアプリをダウンロードさせて、その後に広告で稼ぐことができる点です。やはり、有料ダウンロードはユーザーの利用ハードルが高いので、それを下げて収益化を狙えるアプリ内広告は有効な選択肢の1つだと言えます。
デメリットは広告の露出頻度によっては、ユーザーへネガティブな印象を与えてしまう点です。利用する度に全画面表示される広告や、操作性を損ねるバナー広告など、ユーザーが継続的にそのアプリを使い続ける上で、ストレスを与えてしまう要因になる可能性があります。
(3)アプリ内課金
アプリ内課金とは、 アプリ内で+αの機能を使う際に、「機能の購入」を促す収益化の方法です。例えば、アプリ自体は無料でダウンロードできるものの、一部の機能が制限されている。その制限されている機能を全て使うためには、アプリ内で課金してよりバージョンが高いコンテンツの購入を促すなどです。
ゲームアプリのアイテム購入なども、アプリ内課金の形の1つです。ただし、ゲームアプリの課金などは継続的に課金対象のコンテンツを魅力的に更新し続けなければ、 ユーザーの飽きにも繋がってしまいます。あるいは、常識的な範囲での課金の仕組みに留めなければ、ユーザーからの批判の対象ともなってしまいます。
(4)定額課金
定額課金とは、予め定めた料金を継続的に支払うことでアプリ内の機能が自由に使えるというマネタイズ手法です。マンガなどの週刊誌も今ではこの定額課金で読めるようになっています。
定額課金のデメリットは、「更新性が高いアプリ」や「毎日利用し続ける価値のあるアプリ」でなければ、継続的にユーザーに利用を促すことは難しいでしょう。
スマホアプリの開発を行う前に
スマホアプリは開発して終わりではなく、その後の収益化まで実現できて始めて成功したと言えます。スマホの急速な普及に伴い、アプリはもはや飽和状態に近づきつつあると言われていますが、その中で継続的にユーザーに使ってもらうには優れた企画をもとにしたアプリ開発が欠かせません。
世の中には「簡単に作れるアプリの方法」についてWEBサイトや本が多数ありますが、自己流で開発を進める前に、アプリ開発のプロフェッショナルに一度相談することで成功の確度を高められます。