Androidアプリを開発する流れを完全ガイド!収益化のポイントも解説
Androidアプリ開発を考えている開発部門のご担当者は、「どんな手順や方法で行うのか」など、わかりにくい点があるのではないでしょうか。そこで本記事では、Androidアプリの概要、開発手順、収益化する方法などを詳しく解説します。
Androidアプリとは?
Android端末に対応するアプリケーション全般を「Androidアプリ」と呼んでいます。Androidアプリは、主にGoogle Playを通じて配信されています。Androidアプリは、ソフトウェア開発キット(SDK)が無料で配布されており、アプリケーションを自由に開発し、配布することができます。
Androidアプリの開発数の推移
では、Androidアプリの開発数の推移を表したグラフを参照してみましょう。グラフからわかるように、Google Play(緑の方)のデータを見ると、2017年には350万を超えています。
iOSと比較すると、爆発的な伸びが顕著です。
出典:Mobile App Analytics by Appfigures blog
世界主要国のAndroidアプリのシェア率
アプリの開発を検討している企業は、Android OSのシェア率が気になるでしょう。主要国のOSシェア率のデータによると、2019年3月時点の日本でのAndroidシェア率は56.7%、iOSシェア率は43.2%を示しており、Androidのほうが上回っています。世界的にも、同時期のAndroidシェア率は70%〜80%前後という高い比率を示しています。
日本では若い世代を中心にiPhoneユーザーが多いイメージがあり、過去のデータでもiOSがAndroidを上回っている時期がありました。しかし、現時点では全体で見るとAndroidのほうが優勢といえます。
参照:Android 対 iOS – スマートフォン OS 販売市場シェアの進化
関連リンク:iOSアプリを開発する手順とは?成功させる方法まで紹介!
Androidアプリで開発できるもの
スマホまたはタブレット向けのアプリを作ることができます。ソーシャルゲームを中心にさまざまなアプリがGoogle playで配信されています。ビジネス用にアプリを利用しているケースも少なくありません。そのためさまざまな企業がアプリ開発を進めています。
AndroidアプリでもiOSアプリと同じものを作ることが可能ですが、デザインなどは変わります。また、リリース時の審査においてAndrodアプリはiOSアプリよりもハードルが低く、リリースしやすいのはメリットです。
Androidアプリ開発の難易度は?
Androidアプリ開発の難易度は使う言語によって異なりますが、初心者が開発するのは容易なことではありません。
Androidアプリで一般的に使われている言語はJavaですが、Javaを習得するのは比較的難易度が高いからです。また、Androidは画面種類など、機種によって規格がかなり異なるため、バグがiOSと比較して発生しやすいことも挙げられます。iOSで使われる言語のSwiftはJavaと比べると直感的で扱いやすいですが、新しい言語なので情報の少なさが難点です。
どちらにも一長一短がありますが、総合的に見て、Androidアプリ開発はiOSと比べて難易度が若干高いといえるでしょう。
Androidアプリ開発で使用されるプログラミング言語
Androidアプリの言語で筆頭に上がるのは、Javaです。その他の言語として、JavaScrypt、C#、Kotlinなどが使用できますが、現在メインとなっている言語は、JavaとKotlinの2種類です。Javaは、先述しましたように、難易度は比較的高めですが、守備範囲が幅広く、需要が安定的にある人気の高いプログラミング言語といえるでしょう。
一方、書きやすいと評判の今注目されているKotlinは、2017年にAndroidアプリの開発言語としてGoogleが選定した公式言語です。Javaよりも短くて簡潔なコードなので書きやすいため、初心者にも扱いやすいとされています。Javaとの互換性も高く、相互に呼び出して使用することも可能です。現状ではまだJavaが主流ですが、今後はKotlinがメジャーになってくる可能性も考えられます。
Androidアプリ開発の流れ
Androidアプリの開発は、以下のステップで進みます。
企画:どんなアプリを作るか企画を立てる
↓
設計:設計書を作成する
↓
環境構築:アプリを開発する環境を構築する
↓
開発:設計書をもとにソースコードを書き込んでアプリを作成する
↓
テスト:正しく動作するかをチェックする
↓
リリース:アプリを公開する
各工程について確認していきましょう。
企画
まずどんなアプリを開発するかを決めます。どのような内容にするか、どんなデザインにするかなど、具体的に企画を立てていきます。開発環境が整っていても、内容が伴っていなければ、役に立つアプリは開発できません。企画では完成度の高いアプリを実現するために、イメージを形にしておく必要があります。
個人でアプリを作るならともかく、組織でアプリを開発する場合は、意見をすり合わせながら、アプリの具体的なイメージを考えていくことが大切です。また、企画の内容を自分たちの中で完結しないようにしましょう。開発グループの中で異なるイメージを持つ人が1人でもいれば、作業に支障が出てしまうからです。開発に取り組む社員のすべてに、企画内容が正しく伝わるように言語化していきましょう。
設計
企画ができたら設計に入ります。開発を複数人で行うときは、情報共有のために設計書が必要です。
アプリ開発の設計書とは、アプリ完成までの一連の流れをまとめ、アプリの構造や機能、形などを定義したものです。例えば、「どのような機能をつけるか」「どのような画面構成にするか」など、機能や画面などの設計について記載します。
完成図を示した仕様書と異なり、設計書は完成までの工程を記載したものです。アプリ開発ではどちらも資料として重要な役割を担います。
環境構築
パソコンの環境を構築します。
Androidの開発環境を構築する方法は、必要なものを順にインストールするだけです。
以下の手順で行ってください。
- JDK(Java Development Kit)のインストール
- AndroidStudioのインストール
- 足りないSDKの追加インストール
- エミュレーターの設定
以上の方法で開発する環境が整い次第、アプリ開発を進められます。
開発するアプリによって必要な機能が変わってくるため、必要な機能が足りない場合には、追加でSDKをインストールします。SDKとは、アプリ開発に必要な機能をセットにしたツールです。なお、アプリの動作を確認する際にAndroid端末を持っていなければ、エミュレーターを設定することで動作確認が行えます。
参照:Java ダウンロード | オラクル
参照:Android Studio とアプリ ツールのダウンロード – Android デベロッパー
開発
アプリの開発を開始します。アプリの構想を形にするため、プログラミングで構築していきます。Googleが提供する”Android Studio”を使って制作を進めていくとよいでしょう。Android Studioには、アプリの開発に必要なツールが一通り入っています。XMLを用いて画面を作成し、ソースコードを書き込むことでアプリを作成していきます。複数人でコーディングする場合は、ミーティングを行い、進捗状況を確認しましょう。品質やスケジュールなどのずれを回避しやすくなります。
Android Studioのインストール方法は、”Android Developer”というAndroidの開発者専用サイトで見られますので、ぜひ参考にしてください。
参照:Android デベロッパー | Android Developers
テスト
開発が完了したら、アプリが正常に動作するかテストを行います。もしエラーやバグが見つかったら、その都度修正します。バグは一部のユーザーだけに発生することもあるため、テストは複数人で行うのが望ましいでしょう。
チェック内容は、操作時の動作、画面のレイアウト、処理速度などです。利用中に「バッテリーが切れる」「ネットワークが切断される」といったエラーが出ないかもチェックしましょう。細部のテストで問題がなければ、画面遷移やデータの受け渡しの確認などの総合的なテストも行います。
なお、このフェーズでは、Android端末を持っていると便利です。ただし、先述しましたが、仮想のAndroid端末「エミュレーター」を使うこともできるため、必ずしもAndroid端末は必要ではありません。
リリース
動作テストで問題なければ、リリースとなります。Androidアプリのリリースは、
Google Playで公開する方法が一般的です。
Google Playでのアプリのリリースの手順は、以下の通りです。
1. Googleデベロッパーにアカウントを作成する・・・このアカウントがないと、アプリの登録ができません。
2. デジタル署名したパッケージファイルを準備する・・・登録しやすいように、アプリの中身をパッケージにまとめます。
3. GooglePlayにアプリケーションを登録する・・・デベロッパー登録する際に$25が必要ですが、支払いは登録時だけで永続的に利用できます。
ちなみに、リリース方法はスマホアプリとWebアプリで異なります。Webアプリでは、サーバーとドメインを確保すればリリースが可能ですが、スマホアプリの場合は、プラットフォームごとに審査を受けなければなりません。審査に合格すれば公開されます。
関連リンク:アプリ開発の企画プロセスとは?費用を抑える方法と開発手法を解説
関連リンク:アプリ開発の手順とは?手法別の注意点も解説!
Androidアプリで収益を得る方法
Androidアプリで収益化する方法は、以下の3つの方法が考えられます。
1.有料ダウンロード
アプリに料金を設定して、ダウンロードを有料にする方法です。
2.アプリ内課金システム
ゲームアプリに多いのがこのパターンです。基本プレイは課金をしなくても無料で楽しめますが、ゲーム好きの人であれば効率的にゲームをクリアするために課金する人は少なくありません。
3.アプリ内広告
アプリ内に数十秒程の広告を表示させて収入を得る方法です。広告が表示されるたびに収入になるためマネタイズしやすいですが、単価は低めに設定されています。広告表示を望まないユーザーには、月額課金制にして広告が表示されなくなる仕組みにすることで収益を得るのも一つの方法です。
Androidアプリを開発する選択肢について
Androidアプリを開発する際は、自社で内製するケースと外注するケースの2つの選択肢があります。
内製する
社内にアプリを開発できる人材が在籍していれば、内製のほうが外注より費用を抑えられるメリットがあります。仕様変更やリソース調整などの管理がしやすい点もメリットといえるでしょう。また、アプリを作るノウハウを社内に蓄積できるため、その後アプリを作る際にも外注に頼らずに内製が期待できます。これは外注ではできない点です。
ただし、内製の場合は、社内の人材を使うため、他の業務とのバランスを考慮する必要があります。また、社内人材のスキルにもよりますが、自社で開発する場合、難易度が高く、リスクが高いことが懸念される点です。クオリティが要望通りにならないことや、スケジュールどおりに進まないことも考えられます。また社内に開発スタッフがいない場合は、新たに人材を採用しなければならず、優秀なエンジニアを採用するには長期的な視野で考えなければなりません。
外注する
アプリの外注とは、アプリ開発専門の開発会社に委託することです。企画の仕様書作成から進行管理、プログラミングまでをすべて委託するケースもあれば、コードを書く作業の部分だけを委託するケースもあります。
そんな外注の最大のメリットは、アプリ開発のプロに自社の開発を依頼できる点です。アプリ開発を専門とするエンジニアに依頼することで、品質の高いアプリをスピーディーに開発できるでしょう。もちろん外注先とのコミュニケーションは必要ですが、品質を担保できることは大きなメリットです。そのためにも、外注する際には、開発会社のandroidアプリの開発実績があるかを確認しておきましょう。
外注のデメリットとしては、専門性が高い人が在籍する開発会社ほど単価も上がりますので、費用が膨らむ可能性があります。また、内製する場合と比較すると、仕様調整を含めて自由度は低くなるでしょう。また、リリース後の不具合修正への対応など、運用、保守のサポートについても確認しておくことが必要です。
ハイブリッドテクノロジーズの提供サービス
ハイブリッドテクノロジーズでは、ビジネスデザイン、UIUXデザイン、設計、実装、テスト、リリース、運用、保守まで一気通貫してサービスを提供しております。500名以上の経験豊富なエンジニアにより、迅速かつ高品質なシステム開発が可能です。 アジャイル開発、ウォーターウォール開発、ハイブリッド開発と言った様々な開発手法に対応しており、契約形態に関しましてもラボ型契約と受託型契約の2つから選択いただけます。お客様の状況や開発内容に応じて、開発手法と契約形態を柔軟にご指定いただけますが、それぞれの開発手法、契約形態の特徴の親和性から、アジャイル開発ではラボ型契約が、ウォーターウォール開発とハイブリッド開発では受託型契約を選択されるクライアント様が多数を占めます。
ラボ型開発について: ラボ型開発 サービス
受託型開発について: 受託開発 サービス
ハイブリッドテクノロジーズが選ばれる理由
弊社ではクライアント企業様及びエンドユーザー様の声を聞き、UIUXを意識したビジネスデザインを行なっております。 テーマを決めて分析し、仮説を立ててビジネスデザインを行い、プロトタイピング、検証、フィードバックを受け、再度分析から始める。 この一連の流れを、アジャイルスクラム開発に精通した500名以上のエンジニアが高速で回していくことにより、最速でより良いものを実現していきます。 ハイブリッドテクノロジーズには市場の声を現実にするための仕組みとメンバーが揃っています。
システム開発の成功事例
システム開発での成功事例をご紹介します。
見守りサービス (株式会社otta)
サービス内容
位置情報履歴を、無料スマホアプリやメールを通じて保護者様に伝えるサービス
サービス上の課題/目指したいサービス
課題
共働き世帯や高齢者の増加など、社会構造の変化により、子どもや高齢者の見守りへのニーズが急速に高まっている。一方で、見守る方々の高齢化や地域コミュニティの変化により担い手は減少方向にあり、この需給ギャップを埋めるには、見守りの仕組みの生産性を大幅に向上させなければならない。
目指したいサービス
IoTを活用した見守りサービスのパイオニア企業として、見守り活動の生産性の飛躍的な向上に貢献するとともに、従来のサービスでは困難であった、多くの方々にご利用いただける料金体系を目指すこと。
クライアントの課題/要望
・追加開発体制のリソースが不足している
・既存ベンダーの開発チームと組み合わせながら、チームを構築したい
・事業状況に応じて柔軟にリソースを調整したい
当社を選択していただいた理由
キャピタル案件であり、HTからの投資次第で開発も頼みたいという理由から
当社ご提案内容
業界ラボ型(ストック)開発+保守にて提案
toB向け見守り管理システム開発
・今後の基盤変更も意識しながら登園バス管理システムの管理画面を作成し、サービス展開をしていきたい
・今後の開発体制構築も視野に入れつつまずはスモールに体制を構築しつつ今後の足掛かりとしたい
リソース活用し柔軟に対応できることと、javaを中心に進めていたが、よりモダンな言語を基盤に開発を進めたいという要望に対し、得意分野であった。
学習履歴データの可視化システム(放送大学学園)
サービス内容
学習履歴データ可視化システムの開発
サービス上の課題/目指したいサービス
課題
オンライン授業システムのデータベースには多量の学習履歴データが蓄積されており、このデータを学内の担当者が活用できるよう整備し、学生指導のためのヒントとして、あるいは学生に受講を促すための情報源として活用したいという意向があった。
目指したいサービス
・学外に開示する「サービス」ではなく、学内担当者用の「ツール」であること
・コマンドラインで操作可能なツールであること
・追加機能の実装をできるようにすること
クライアントの課題/要望
・社内で開発体制を保持していないこと
・金額をミニマムに抑えながら安定的な運用を実現したい
当社を選択していただいた理由
充分に仕様を満たす提案内容と他社と比較して最も安価な金額で入札提示したため。
当社ご提案内容
学習履歴データベースとBIツールの開発
オンライン授業システムのデータベースに蓄積された学習履歴データを活用するにあたって、実運用されているDBの処理とバッティングしないように、MongoDBに格納する処理にて開発を進めました。またMongoDBにデータを格納する際、他データとの連携も考慮し、汎用的なExperienceAPIに準拠したデータ形式を採用しました。
個人情報の扱いにおいては、開発人員含め、学生の個人情報の漏洩を防ぐため、学生の識別子を匿名化しての実装を実施しました。
DocIT (株式会社ドキットメディカルサービス)
サービス内容
働き口を探す医療従事者と、働き手を求める病院をつなぐマッチングプラットフォーム
サービス上の課題/目指したいサービス
課題
高額な紹介料がネックとなりスポットで人が必要な際に苦心をする病院の課題解決
目指したいサービス
休日や長期出張の空き時間を有効活用したい医師と、長期連休などで一時的に人手が必要となる病院をマッチングすることで医師の働き方の多様化を実現するサービス
クライアントの課題/要望
・サービス構想はあるが、実現させる開発パートナーが必要
・上流工程からの開発サポートが必要
当社を選択していただいた理由
開発にあたってサービス設計から本開発まで、一緒に伴走し考えながら開発してくれるパートナーとして安心感を感じて頂き、当社を選ばれました。
当社ご提案内容
ラボ型(ストック)開発にて提案
1.医療求人の性質を鑑みた機能提案、システム設計・開発
本サービスでは失敗の許されない医療系求人を取り扱うため、求人マッチングをする前に信頼のできる医師・病院であることを確認できることが重要となります。 そこで、実際に求人マッチングした医師・病院による相互レビュー機能を実装することで、信憑性の高いレビュー情報を蓄積することを提案・実現しました。 また、求人マッチング前に病院担当者と直接チャット出来る機能も実装することでレビューでは分からない定性的な情報確認も可能としました。 アジャイルスクラム手法の開発を取り入れることにより、システム開発の進捗報告を実際に動くシステム画面をお見せしながらデモンストレーション形式で毎週行いました。
2.定期的なスプリントを繰り返し、顧客と一緒に品質を高めるプロセスにて進行
実際に動くシステムを毎週見ていただくことで、開発進捗についての安心感やお客様も気がついていなかった新たな改善点がを発見でき、それを修正して再度デモンストレーションを行いました。この一連の流れを回すことで、お客様の求めるものを高い品質でご提供しました。
3.デザインを用いた視覚的なアウトプットで、具体的なシステムイメージを共有
Webサービス開発に初めて挑戦するお客様のため、お客様が思い描くビジネスを実現するためのシステムイメージを具体化していくデザインサポートも担当。求人情報サービスという特性上、さまざまな情報要素が混在する中で、目に見える形でデザインを整理・提案し、お客様からのフィードバックを受け、再提案を繰り返すことで、よりユーザーにとっての最適なWebサービスのための設計・提案・実現を行いました。
THINK, Reviewers (株式会社スパイス ボックス)
サービス内容
独自の「ソーシャルリスニング」手法をもって、企業と生活者の 間に生きたコミュニケーションを構築するサービス
サービス上の課題/目指したいサービス
課題
インフルエンサーの評価指標としてフォロワー数とエンゲージメント数が重要視されているケースが多いが、商品販売施策においては保存数が重視される。保存数を把握した上でインフルエンサーと企業のマッチングを行うプラットフォームが存在していなかったため、新たなサービスとしてスピード感を持ってサービス開発を行いたい。
目指したいサービス
・サービス名「THINK」:Twitter調査における既存システムの安定的かつ継続的な運用を維持しつつ、インフラコストを削減すること。
・サービス名「Reviewers」:インフルエンサーマーケティングで投稿保存数という指標を重要視するインフルエンサーマッチングプラットフォームの新規立ち上げをすること。
クライアントの課題/要望
・開発が発生した際に、都度RubyonRailsの対応人員を増やすのが難しい
・インフラ周りに強いメンバーがいない
・金額をミニマムに抑えながら安定的な運用を実現したい
・追加開発が発生した場合には、知見を維持した状態で取り組める体制がほしい
当社を選択していただいた理由
・開発リソースの柔軟性とインフラなど対応範囲の幅広さが先方ニーズにマッチしていたこと
・定常運用の際にもコストを抑えて対応できること
当社ご提案内容
受託型開発(フロー)にて提案
インフラ知見を持つディレクション人材をアサインメントすることで、インフラ周りの調整や業務対応にスピード感を持って対応できる体制を構築
インフラ/保守/開発を幅広く対応可能、かつ、コストミニマイズなオフショア体制をご提案しました。
ディレクション人材がインフラの知見を持ち、定常作業はベトナム側で行えるようにマニュアル化を行い、コストミニマイズしながらも幅広い知見を活かせる体制提案を行いました。
新規の開発が発生した際に、既存チームの知見を活かしながら適宜開発者を追加して、素早く開発を実行できる体制を実現しました。
まとめ
Android端末向けに開発されたAndroidアプリのシェア率は世界的にも高く、iOSのシェア率を上回っています。Androidアプリで使われる主なプログラミング言語は、JavaとKotlinです。Javaは難易度が高めですが、安定的に人気の高い言語といえます。Androidアプリで収益を得るには、有料ダウンロード、アプリ内課金、アプリ内広告が考えられます。
また、自社で開発するのが難しい場合は、外注する方法も選択肢の一つです。外注する際には、開発会社のアプリ開発の実績などを参考にして選ぶようにしましょう。