ビジョンを実際のアプリに落とし込むまでの9つのステップとは
本稿は、Codementorのブログ記事を了解を得て日本語翻訳し掲載した記事になります。本記事は、Android OSアプリ開発者のAbinash Neupane 氏によって投稿されました。
あなたにも朝起きたときに、大ヒットして億万長者になれるような創造的なアイデアを思いついたことがあるでしょうか。未来を変えることができるようなアイデアを思くことは誰にでもあります。その中の多くのアイデアは空想に終わりますが、中には私たちの生活を大きく変えるような可能性を秘めたものもあります。
ビジョンを実際のアプリとして実現し、未来を変えるためのステップを見てみましょう!
ほとんどのアイデアが単なる「アイデア」で終わってしまうのは、適切なガイドがないためです。
アプリ開発を大量のコードを書くだけの作業だと思っている人もいますが、コードを書くことはアプリ開発の中の1つのステップにすぎません。良いアプリを開発するには、その他にも大切なステップがあります。これら9つのステップを紹介していきます。
目次
1. 最初のステップ
最初のステップはビジョンを広げるのに役立ちます。最初のステップの前に、アプリのアイデアを考える必要があります。アイデアは整理されたものでなくても、ぼんやりとしたビジョンでも構いません。
最初のステップでは、アプリを開発する目的やゴールを定め、ゴールを達成するための計画を詳細に立てます。また、すでに似たようなアプリが世の中に存在していないか、調べておきます。
下の画像はプロジェクトの計画の一例で、プロジェクトに必要となるすべてのタスク、段階、マイルストーン(プロジェクトの進捗管理のための各節目)を設定したものです。
プロジェクトによっては、チームのメンバー全員が最初のゴール、目的、価格などを把握できるように、長期的な製品ライフサイクルを見据えて「プロジェクト計画書」を作成することもあります。
アプリについてのアイデアをデバイスのスクリーン上に描いておくのもいいでしょう。
また、スケッチを描くのもビジョンを明確にするのに役立ちます。アプリの主な機能、およそのレイアウトや構造などを、スケッチに描いておけば、アプリのコンセプトを視覚的につかめます。
2. 要件工学(RE:Requiment Engineering)
アプリについて明確なビジョンやゴールを設定したら、次は要件工学です。
このステップでは、アプリのゴールを拡張します。アプリによって実現できることや、ユーザーにとってのメリットを定義します。
また、ターゲットとなるユーザーを設定することで、価格戦略や市場戦略に役立てましょう。プロジェクトが予算内に収まるかどうかもチェックします。アプリの開発が実行可能かどうか話し合うのもいいでしょう。
要件工学で使える「5W」の問いは多数あります。
- アプリのゴールは何か?(What)
- このアプリはなぜ他とはちがうのか?(Why)
- 誰がこのアプリを使うのか?(Who)
- ユーザーはいつアプリを使うか?(When)
- ユーザーがアプリから得られる最大のメリットは何だろう?(What)
- ユーザーはどんな場面でアプリを使うのか?(Where)
収益
アプリを開発するときには、収益を図る方法を考えておくことも必要です。例えば次のような方法があります。
- 有料アプリ
- In-App Purchase(iOSにおいてアプリ内課金を可能とするAppleの組込みテクノロジー)
- Admob(アプリの収益を高めるためのGoogleの広告サービス)
- iAd(iOSのアプリ内に実装できる広告)
マイルストーン(プロジェクトの進捗管理のための各節目)
マイルストーンを設定するメリットは、タスク、開発にかかる時間などの管理が容易になることです。
スケジュール管理を時間軸ベースで把握するのに役立ちます。平均すると、AndroidやiOSのアプリ開発には約18週間(約4ヵ月半)かかります。
ワイヤーフレームとストーリーボード
次のステップは、アプリの動作性を示すために、ワイヤーフレーム(レイアウト)やストーリーボード(ユーザーの利用体験を漫画のような一連の画像で表現したもの)を作成することです。最初のビジョンをよりクリアーに表現できます。
ワイヤーフレームでは開発するアプリの、モックアップやプロトタイプを作成します。モックアップやプロトタイプを作成できるアプリには、Balsamiq、Moqups、HotGlooなどがあります。
3. 技術的な指標の分析
次の技術的な指標について分析をします。
- スケーラビリティ(拡張性):アプリの潜在的な成長可能性
- アベイラビリティ(可用性):ダウンタイム(故障や停止などでシステムを使えない時間)を考慮した、システムの利用可能率
- メンテナビリティ(保守性):保守管理のしやすさ
- モジュラーアプローチ
- パフォーマンス
- ポータビリティ(移植性):例えば、AndroidやWindows PhoneなどのOSに対応したマルチプラットフォームであること
- ユーザビリティ:エンドユーザーを中心に考えた開発
- バージョン管理
このステップにおいては、アプリを開発するために必要なテクノロジーについて話し合います。例えば、アプリに必要なバックエンドの処理を行う技術、データベースの決定などです。SQLiteのようなデータベースを使えば、起動中のアプリを閉じても、データを失うおそれはありません。
次のようなテーマについても話し合います。
- アプリのデータを格納する必要はあるか?あるとしたら、どのように格納するか?
- どのようなタイプのデータベースを利用するか?
- アプリは静的なのか動的なのか?
- アプリに求められるセキュリティ要件は?
- アプリのセキュリティの欠陥にはどのように対処するか?
- サードパーティーの製品を統合するか?するとしたら何を選ぶか?
- 将来的にアプリの開発をさらに進めるかどうか?
分析を終えたら、次のような項目を含んだ「プロジェクト文書」を作成しましょう。
- 導入
- 問題の提示
- 目的
- 方法
- 予算とスケジュール
- リファレンス(仕様や機能の解説)
4.デザイン
デザインのステップでは、ワイヤーフレームを、クリーンで魅力的なユーザーインターフェース(UI)に作り変えることで、グラフィカルユーザインタフェース(GUI)を作成します。
UXデザイナーはインタラクティビティの高いデザイン要素を設計できますし、アプリの外観や使いやすさに関することはUIデザイナーに頼むこともできます。
アプリストアで目立たせるためには、使いやすく高品質なデザインのユーザーインターフェースにするべきです。デザインは、ブランド戦略を考慮したものにしましょう。また、モバイル端末のスクリーンサイズの違いに応じた解像度で設計します。
5. 開発
この開発のステップは、主にプログラマーが分担します。開発に使うテクノロジーは、ステップ3の分析であらかじめ定めておきます。また、ステップ4で考えたデザインを取り入れて、実際のアプリへと実現します。
また、開発と並行してテストも実施して、バグやエラーの早期発見と解決に努めましょう。プログラマーは、アプリのバックエンドの処理を定めるソースコードの記述と管理も行うことになります。
OS(プラットフォーム)ごとにそれぞれソフトウェア開発キット(SDK)があります。また、アプリをどのOS(プラットフォーム)向けに開発するかによって、ネイティブ言語が決まります。
最後に、ステップ2の要件工学(RE)で作成した要件を基準にして結果を評価します。また、ステップ4のデザインの基準からも評価します。例えば、アプリケーションが実際にAndroid 2.3以降のバージョンのOSをサポートできているかを確認します。
6. テスト
ここまで来たらアプリの基本は完成です!このステップでは、ターゲットとなるユーザーに試用してもらいます。このテストは、モバイルアプリの開発プロセスの中でも特に重要なものです。
テストにおいては、アプリの機能性、ユーザビリティ、整合性(コンシステンシー)などを試して、もし問題があればアプリを公開する前に修正します。
テストの手法にはいろいろなタイプがあります。例えば、Android Studioで提供されているテストツールなどを利用できます。ここではテストの一般的な手法について述べます。
自動テスト
自動テストはアプリの開発中に行われます。自動テストは、アプリがデバイス上で動くかどうか、またコードが機能するかどうかを確かめることが目的です。
単体テスト(ユニットテスト)や統合テスト(インテグレーションテスト)も、自動テストの一部です。
ユーザ受け入れテスト(UATテスト:User Acceptance Testing)
ユーザ受け入れテストとは、開発したアプリをユーザーが利用できるか試すプロセスです。ターゲットとなるユーザーの何人かに実際にアプリを試用してもらいます。
アプリがこのユーザー受け入れテストに合格したら、今までの設計が現実的に機能していると確かめられたことになります。ユーザー受け入れテストはアルファテストとベータテストから構成されます。それぞれ見ていきましょう。
アルファテスト(Alpha Testing)
アルファテストは、アプリの開発に関係したユーザーにアプリを試用してもらうことで行います。つまりこの場合のユーザーとは、アプリに使われているテクノロジーや、アプリの機能をあらかじめ知っている人物です。
ベータテスト(Beta Testing)
ベータテストは、アプリに使われているテクノロジーを知らない、いわば実際のユーザーにアプリを試用してもらうことで行います。ベータテストを実施する意味は、アプリが現実の利用環境で上手く機能するかを試すことです。
7. アプリの公開
ここまで上手く行ったら、次のステップはいよいよアプリの公開です!このステップでは、アプリを各OSのストアに公開します。AndroidアプリはGoogle Play、iOSアプリはApp Storeの各ストアへアップロードします。
Google Playにアプリを公開するには、25米ドルの登録料が必要ですが、登録後はデベロッパーアカウントでアプリをいくつでも公開できます。App StoreにiOSアプリを公開するには、Apple Developer Program への参加料金として99米ドル支払う必要があります。
8. 保守管理(メンテナンス)
アプリをストアに公開してユーザーがアプリを使い始めたら、次はアプリの保守管理(メンテナンス)を継続的に行います。ユーザーのニーズと期待に応えられるような保守管理をしましょう。
ユーザーからのフィードバックは、ユーザーがどのようにアプリを使っているかをよく理解するために大切なもので、アプリ解析ツールのソフトウェアが役に立ちます。ダウンロード数だけでなく、どんなユーザーがいつ、どこで、どのようにアプリを使っているかが分かります。
- ユーザーのアクセス経路
- アクティブユーザー率(Activation percentage:利用頻度が高いユーザーの率)
- リテンション率(Retention percentage:ユーザーの再訪率)
- リファラル(Referral:ユーザーがアプリにアクセスするきっかけとなったリンク元)の有無
などを知ることができます。アプリ解析ツールは、ステップ6のテストの段階から導入するのがいいでしょう。
人気のある解析ソフトウェアです。※()は主な対応OS、開発環境、言語など
- Apsalar (iOS、Android)
- Flurry (iOS、Android、Windows Phone、Blackberry、Java ME)
- Mixpanel (iOS、Android)
- Google Mobile Analytics:Googleモバイルアナリティクス (iOS、 Android)
- Localytics:ロカリティクス (iOS、Android、Windows Phone、Blackberry、HTML5)
- Countly (iOS、Android、Windows Phone、Blackberry)
アプリのパフォーマンスを追跡することで、必要があれば修正を加えることができます。
また追加のサポートが必要かどうか通知してくれるサービスもあります。解析によって、アプリの評価やユーザーのフィードバックもモニタリングできます。
9. マーケティング
アプリの開発が完了したら、アプリを効果的に市場に売り出しましょう。アプリの開発と同時並行して段階に応じて、広告やマーケティングを行いましょう。広告とマーケティングの2つがこのステップの要です。
あなたの開発したアプリを、ストアにあるその他無数のアプリから目立たせることが重要です。アプリのダウンロード数を増やす方法には、Googleアドセンスなどがあります。他のアプリ内の広告で、あなたの開発したアプリを宣伝することができます。
結論
今回はライフサイクルを考慮したアプリ開発の主なステップを紹介しました。
これらの9つのステップについて正しい知識を備えれば、アプリの開発に成功できます。また、必要であればいつでもその道のエキスパートにアドバイスを求めるといいでしょう。
[お知らせ]TechAcademyでは初心者でも最短4週間でエンジニアになれるオンラインブートキャンプを開催しています。アプリ開発からWebサービスの開発、UI/UXデザインなどアイデアを形にしたいと思っている方は、ぜひご覧ください。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 開発者がマイクロソフトのオープンソースiOSアプリ移植ツールについて知っておくべきこと
- 要件定義書の作成手順を学ぶ!アイデアを形にするプロセスとは
- AndroidがBlackBerryを救わない理由、BlackBerryがAndroidを助けられない理由
- チームでの作業に役立つ!海外の代表的なコラボレーションツール5選
- Eveはプログラミングを変化させようとしている
- 公式ニュース:マイクロソフトのCortana、iOSとAndroidに導入される
- グーグル、Androidアプリのベータテストを より容易でオープンに
- モバイルを諦めたMicrosoft、iOS開発者を求める
- いろいろなプロセス ~V字モデルとスクラム~
- HTML5でクロスプラットフォーム開発を実現する4つのツール