アプリ開発の手順を徹底解説!工程毎の役割を把握しよう!

アプリ開発に取り組む際、システム開発を専門とした企業以外では、どのような手順で開発を進めていけば良いのか、把握出来ていない企業も多いのではないでしょうか。

アプリ開発の手順をきちんと把握せず、闇雲に開発を進めていたのでは、無駄な工数や労力が必要となってしまう可能性が高くなります。

アプリ開発の手順をあらかじめ把握し、スケジュールをしっかりと決めておくことで、開発工程に迷うこともなく、進捗においてもきちんと管理することが可能となります。

本記事では、アプリ開発に企業として取り組む担当者の方向けに、アプリ開発における手順及び工程毎の役割についてご紹介していきたいと思います。

企画で決まった良いアイデアを失敗に終わらせないために、しっかりとアプリ開発の手順を理解しておきましょう。

アプリ開発手順には大きく2つの方法がある

アプリ開発手順には大きく「ウォーターフォール開発」と「アジャイル開発」と呼ばれる2つの方法が主流となっています。

後述する開発手法はどちらのアプリ開発手順でも利用するものですが、大枠としての考え方が異なりますので、しっかりと確認しておきましょう。

  • ウォーターフォール開発
  • アジャイル開発

ウォーターフォール開発

上流工程の作業から下流工程の作業へ流れるように開発を進めていくスタイルです。

前工程が全て完了した段階で次の工程へと進み、問題がない限りは一度完了した工程へ戻ることはありません。

中~大規模開発で主に取り入れられているアプリ開発の手順で、スケジュール管理がしやすいことが特徴です。

アジャイル開発

全ての開発工程を、短い期間で何度も繰り返し行う開発スタイルを指します。

一旦100%でない状態でも目に見えるアプリを作成し、改善を繰り返しながら完成形へと近づけていく手法です。

スタートアップ企業に多く用いられるアプリ開発の手順で、依頼者の方に早い段階で画面や簡単な機能などを見せることが出来るため、認識のズレを最小限で防ぐことが可能です。

アプリ開発手順1: 要件定義

アプリ開発の手順として、企画の次に「要件定義」を実施する必要があります。

要件定義では、目的や必要な機能を明確化し、どんなアプリを開発するのか決定します。

「要件」を後続のアプリ開発手順で実現していく形になりますので、取りこぼしの無いように議論する必要があります。

  • ユーザーの要求を明確化する
  • アプリ開発の目的を明確化する
  • アプリに必要な機能を明確化する

ユーザーの要求を明確化する

利用するユーザーの要求を明確化した上で、具体的な要件を洗い出す必要があります。

「ユーザーが何を求めているのか」が分からないと、アプリを開発しても必要とされず、誰にも使用されないことに繋がりかねません。

まずユーザーの要求を明確化し、どうすれば実現可能かを考えることが、要件定義を行う上で先決です。

アプリ開発の目的を明確化する

収益を上げるためにアプリ開発を進めるのか、社内での業務改善のためにアプリ開発を進めるのか、どういったユーザーを想定しているかによって必要となる要件や機能は大きく異なります。

例えば、収益を上げる目的でアプリ開発を進める場合、必ずどこかに収益化出来るポイントを設けておく必要があります。

社内のみで利用する場合には、無駄な機能をなるべく省きリリースを早めることで、コスト削減にも繋がるでしょう。

アプリに必要な機能を明確化する

ユーザーの要求やアプリ開発の目的を明確化した後には、必要な機能を洗い出す必要があります。

基本的に設計作業では、要件定義で出された必要な機能を実現するためのフェーズとなるため、どうすれば要求を実現出来るかについては、この段階で漏れなく洗い出しておきましょう。

アプリ開発手順2: 外部設計

基本設計などとも呼ばれる工程ですが、本記事ではもう少し広い解釈で外部設計としています。

アプリ開発を実装する前に、どういったプラットフォームで動かすのか、画面のデザインはどうするか、要件定義で確定させた必要な機能をどの画面でどのようにして実現するのかを決めていきます。

  • 方式設計
  • 画面設計
  • 機能設計

方式設計

アプリを動かすための基盤となるインフラや、プログラミング言語・フレームワークなどアプリ開発に必要な環境を決定します。

またアプリ全体の構成を決めることに加えて、コーティング基準やセキュリティ対策などについても方針を確定させます。

画面設計

開発するアプリにどのような画面が必要で、どういった部品(ボタンやテキストエリアなど)が必要になるのかを決定します。

また同時にデザインについても決めておく必要があります。

近年UI/UX設計と呼ばれるように、画面デザインと同時にユーザーがどれだけ直感的で使いやすいアプリを開発するかの方針決めも重要です。

機能設計

要件定義であがった機能を全て実現するために、ボタンを押した際の動作やログイン時の条件など全ての実装する機能を具体的に洗い出す工程です。

表面上の動く部分だけでなく、データベース設計やバッチ設計などといったアプリ開発の裏側の処理も決めておく必要があります。

アプリ開発手順3: 内部設計

外部設計で決まった内容を、実際にどのようにしてプログラミングしていくのかを決定する工程です。

詳細設計などとも呼ばれる工程で、設計者から実装するプログラマーにデータの流れやモジュール単位の分割内容、どうやってプログラムを組むのかといった具体的な内容を確定させます。

  • モジュール設計
  • データ設計
  • プログラム設計

モジュール設計

プログラムは様々な処理で似たような機能を実装することになります。

例えば異なる画面でボタンを押した際の動作が同じ場合、画面単位で実装するのではなく、モジュールとして同様の機能を使い回すのが一般的です。

こういったモジュールの分割をより細かく、具体的に実施するのがモジュール設計となります。

データ設計

データベースやファイルにデータを保存しておく具体的な場所や、データの流れを決める工程がデータ設計です。

例えば、ログイン画面でユーザーが入力したログイン情報とデータベースに格納されているデータが一致することを、どのように確認するのかを具体的に決めていきます。

登録処理では、データベースのどのテーブル・どのカラムにデータを格納するのか具体的な保存場所を決定します。

プログラム設計

実装を担当するプログラマーが理解出来るレベルまで、設計した内容を具体的に落とし込む工程です。

イメージとしては、プログラムをそのまま日本語に直したような設計書が作成されます。

例えば、ログイン処理のサンプルでは、ログインボタンを押した際の処理として、「ユーザーIDとパスワードがデータベースに登録されているものと一致するか?」一致する場合はホーム画面へ遷移、一致しない場合は画面上にエラー文言を表示する などの内容が挙げられます。

実際のプログラム設計では、上記で記したサンプルよりもより細かく条件や処理内容が記載されます。

アプリ開発手順4: 開発・テスト

設計が完了すれば、次は開発工程に入ります。

設計された内容を忠実にプログラムとして実現し、本当に取りこぼし無く実装出来ているのかをテストで確認していく段階です。

  • 実装
  • 単体テスト
  • 結合テスト

実装

プログラム設計書に従って、コーディングする工程です。

決定したプログラミング言語やフレームワークを駆使して、アプリ開発を進めていきます。

一般的にプログラマーの作業でイメージされるのが、この「実装」工程となります。

単体テスト

実装されたコードが、設計書に記載された通りに動くのかを確認していく工程です。

上述したモジュール単位や画面単位で全ての機能が網羅されているかを確認します。

処理成功時の動きはもちろん、処理失敗時にエラーがきちんと出力されるか、データが登録されているかなど、画面上に見える部分と裏側のデータ双方で、細かい部分の洗い出しが必要となります。

結合テスト

単体テストが完了した各モジュールや画面を実際の利用用途を想定しながら一連の流れでテストしていきます。

結合テスト以降では内部のデータ登録内容を確認することは少なくなり、ユーザーと同じ目線で動きに不自然な箇所がないか、想定通りの動きになっているかを確認していきます。

アプリ開発手順5: リリース

アプリ開発でテストまでの工程が完了すれば、残す手順はリリース作業となります。

リリース作業は各アプリの種類によって、異なりますので順に紹介していきます。

  • Webアプリ開発のリリース
  • iPhoneアプリ開発のリリース
  • Androidアプリ開発のリリース

Webアプリ開発のリリース

実際にシステムを稼働させるサーバーに対し、作成したWebアプリケーションを配備(デプロイ)する必要があります。

Webアプリ開発の場合、どこかの機関に審査を通す必要は無く、サーバーとドメインさえ確保出来ていれば作成したアプリをいつでも公開可能です。

デプロイが完了したあとは、ブラウザ上から公開したWebアプリが動かせることを確認しておきましょう。

iPhoneアプリ開発のリリース

iPhoneアプリをリリースするには、前提条件としてApple Developerに年会費を払って登録する必要があります。

Apple Developerとして登録した状態で、アプリ作成が完了した後「App Store Conect」に作成したアプリの登録申請を行います。

数日から1週間程度で審査が実施され、審査を通過していればAppstoreで作成したアプリをダウンロードすることが可能になります。

Androidアプリ開発のリリース

Androidアプリをリリースするには、前提条件としてGoogle Play Developerへの登録が必要です。

登録費用は$25掛かりますが、年会費は不要で初回登録の一度だけの支払いです。

登録が完了した後、Developer Consoleに必要な情報を入力した上で、アプリ登録の申請を行います。

iPhoneアプリ同様、審査が行われますが、一般的に数日程度で審査結果が返却され、それほど審査は厳しくない傾向にあるようです。

 

以上がアプリ開発の手順の概要となります。

では、実際にアプリ開発をする際にかかる費用はどのくらいなのでしょうか?

外部に見積もりをした際も考慮し、考えてみましょう。

アプリ開発にかかる費用と内訳、外部の見積もりについて

アプリ開発にかかる費用相場は平均250万円ほどです。

とは言え、どんなアプリを開発するのか、決済システムを導入するか、デザインをどこまでこだわるかによって費用は大きく変動します。

詳しくは下記の記事で解説していますので、是非参考にしていってください。

アプリ開発にかかる費用と内訳・開発期間はどのくらいかかるのか【コストを抑えるポイントは見積りと依頼企業の選定!】

アプリ開発の見積もりをしてみた【iOS・Android・SNSアプリ】

アプリを自社開発する場合には?エンジニアの採用や言語について

アプリ開発を外注せず自社で開発する場合には、必要なエンジニアを揃える必要があります。

アプリごとに必要な言語も異なるため、採用するエンジニアに求める言語については「アプリ開発に必要な言語とは?何がおすすめ?」の記事を参考に決めましょう。

また、アプリ開発エンジニアを採用する際には、アプリ開発エンジニア採用の基本を抑えておかなければ失敗に終わるケースがほとんどです。

アプリ開発エンジニア採用の基本【種類、年収、単価など】」でまとめて解説していますので、是非ご一読ください。

まとめ:アプリ開発の手順はWeb開発もスマートフォン開発も基本は同じ

本記事では、アプリ開発の手順について、リリースまでの手順をまとめて紹介しました。

リリース手順だけは、上述したようにWeb開発やスマートフォン開発で若干異なりますが、アプリ開発の手順自体は基本的に同じ工程で進んでいきます。

ウォーターフォール開発とアジャイル開発に関しても、どちらの方が良いと言えるものではないため、自社で開発する体制や状況に応じて使い分けたり、うまく組み合わせてアプリ開発に取り組んでみてください。

©︎2020 Hajimari inc.