このブログでは、アプリ開発に関わりながら更なる知識を深めたい方や、将来的にアプリ開発を企業に委託しようと考えている方を対象に、アプリ開発を依頼する上で必要な知識を解説しています。
アプリ制作の工程としては、
- どんなアプリにするかの企画
- 仕様への落とし込み
- プラットフォームや開発体制を決めて開発
- 運用およびアプリの改善・アップデート
となりますが、本記事では主に企画の立案から開発・運用の流れ、アプリ開発に使用される言語やソフト、更にはアプリの種類・違いなどについて詳しく説明していきます。
1.アプリ企画の進め方
もしあなたが会社の上司から企業のアプリ制作をお願いされた場合、アプリ開発の流れと、決めるために必要な最低限の知識をつけなければなりません。
アプリを企画する段階で、どのような手順をふまなければならないのかを以下にまとめます。
1-1. 顧客に提供する価値・企業が得たいもので、最も重視することを決める
アプリ制作において一番重要なのは、「なんのためにアプリを作るのか?」ということです。
とてもシンプルですが、この部分の熟考を怠るとアプリが企業にもたらす利益や顧客との直接的な結びつきが薄くなってしまいます。
1-2. 他の販促手段との違い、アプリ独自の役割を整理する
アプリを作ることですべての課題を解決できるわけではありません。アプリ制作を進める際には、どのような顧客をターゲットにするか、および他の施策との違いを明確に決定することが非常に重要です。
たとえば、店舗がある企業の場合は「実店舗での接客を重視しているので、店舗への来客を促すためのアプリを作りたい」、実店舗がなく EC サイトのみ運営している企業の場合は「商品を購入したいと思ったときにスムーズに注文できるようにして、機会損失を防ぎたい」といったパターンが考えられます。
関連記事:
1-3. 他企業のアプリの調査
自社と同じような業種の企業がすでにアプリを導入している場合、アプリにどのような機能が搭載されていて、どのように活用されているかを洗い出すことが必要です。
たとえば、 クーポン配信機能、ポイントカード機能、プッシュ配信による情報配信、店舗がある場合は店舗検索機能や商品検索機能の有無を表にして、先行している企業ごとに〇×をつけていくといったやり方です。
さらに深堀りすると、クーポン配信機能について、どういった消費者にどのタイミングでクーポンを配信するかという切り口でも調査できます。
また、どれくらいダウンロードされているか(Google Play のみ公開)、顧客からのレビューではどんなことが指摘されているかもチェックしておきましょう。
1-4. スマホアプリ開発の費用相場を知り、予算を組む
「アプリって結局いくらかかるの?」というご相談を受けることは少なくありません。
MLS Dev などのレポートによると、海外におけるモバイルアプリの平均的な開発コストは、リリース段階の初期バージョンで約 500 万円となっていますが、アプリのジャンルが実装する機能によって大きく変動するため、実際の外注費用の総額には幅があります。
以下の表は、アプリ開発の種類別の相場をまとめたものです。
出典:
- App Development Cost in 2023: A Comprehensive Guide (MLS Dev)
- How Much Does It Cost to Develop an App in 2023? Cost Breakdown (SPD LOAD)
関連記事:
また、アプリ開発においてかかる費用は、おおきく分けて以下の 3つに分けることができます。
1)開発するアプリの種類
たとえば、ゲーム系アプリ、クーポンやポイントカード機能つきの店舗系アプリ、商品検索機能やお気に入り登録機能があるアプリなど、機能によって金額に差異が生じます。
2)アプリ開発方法
アプリ開発の工程では、「人月」といった作業量を表す単位が用いられ、作業人数 × 作業期間で開発費用を見積もります。単純に人数といっても、SE (システムエンジニア)や PG(プログラマー)の能力や役割分担によって単価が異なるため、見積もりに影響します。
さらに、第 5 章「スマホアプリの作り方と違いについて」の中でも触れていますが、開発手法(ノーコード・ローコード・フルスクラッチ)によっても金額が全く異なります。
費用を下げたい場合は、おおまかにいえば「機能を絞る」か「ノーコード部分を増やす」の二択となります。
3)保守・運用費
ランニングコストとして、サーバー代など保守・運用費が必要となります。
リリース後にユーザーからフィードバックを受けたバグの改善や、アプリの機能の向上、 OS のアップデート対応などが必要になってきます。
また、自社や個人で開発する場合、iOS / Android いずれも、開発するためには登録料がかかることも忘れてはなりません。
iOSアプリの場合は、「Apple Developer Program」に開発者登録が必要で、年間約 1万円の登録料金がかかります。一方、Androidアプリの場合は、「Googleディベロッパーアカウント」の作成が必須で、およそ 3,000 円の登録料金が必要です。
発注企業へ保守・運用費は開発費に含まれているのか、確認し予算へ加えることをおすすめします。
関連記事:「それ、事業として成立しますか?」アプリ事業の計画で重要な“ビジネスモデル”と“売上・利益の出し方”
1-5. 内製か外注か、外注なら制作会社を選ぶ
アプリ開発の進め方にはいくつか方法がありますが、おおまかに分けると自社で開発運用していく「内製」とアプリ開発企業へ「外注」かに分かれます。
自社開発ができるにこしたことはないですが、それぞれメリット・デメリットがいくつかあります。
自社開発のメリット
- アプリ開発・デザインのノウハウを自社で蓄積できる
- 顧客や営業側からの要望を直接開発チームに伝えられるので、認識の齟齬が起きず開発スピードが早い
自社開発のデメリット
- アプリの完成度が社内の人材のスキルに左右される
- アプリ開発経験が豊富な人材を採用・育成・定着することが難しい(Web に比べて絶対数が少ない)
外注のメリット
- アプリ開発の経験が豊富なプロへ依頼することができる
- 社内の人材に比べ、リソースやコストを計算しやすい
外注のデメリット
- 専門性の高い開発業者へ依頼した場合、相応のコストがかかる
- 選定する企業によって品質が左右され、「安かろう悪かろう」のアプリになるリスクも
--
自社開発はアプリ開発に強くなるために、人材の育成や採用に時間やコストがかかり、外注費よりコスト高になる場合もあります。
アプリ開発は一つの専門領域なので、外注する場合もスマホアプリの設計から開発運用の実績がある企業を選ぶ必要があります。
関連記事:
2.アプリ開発の流れ
アプリ開発の一般的な流れは「要件定義」→「設計(見た目や中の処理について)」→「開発」→「テスト」→「リリース」→「保守・運用」となります。
詳細な部分について以下にまとめていきます。
2-1. 要求整理と要件定義
要求整理とは、開発チームや制作会社に依頼する事業部門が、アプリシステムに要求する仕様を整理することです。社内の要求が整理されずに開発が進むと「思っていたものと違う」、顧客の要求を十分に理解できていないと「使う気になれない」という声が挙がるリスクがあります。
要件定義とは、目的や機能・ユーザーのユースケースを明確にし、発注者と開発者との間で理解を共有するためのプロセスです。
要件定義はアプリ開発の上流工程なので、この時点で発注側と開発側の認識のすりあわせがうまくいかないと、最悪の場合、開発のやり直しが発生します。
お役立ち資料:
要件定義の工程におけるポイント
アプリ開発の進め方においては、大きく分けて以下の 3つのポイントを定める必要があります。
- アプリの開発方法
第 5 章の「スマホアプリの作り方と違いについて」にて細かく記載しますが、作りたいアプリによってどのような開発方法が適しているかを判断する必要があります。
- アプリの機能
発注側は、「どのような機能を取り入れて何を実現したいか?」を具体的に開発側へ明確に説明することが重要です。
発注側にシステム開発の知見があるメンバーがいない場合は、開発担当者から説明を受けながら進めていくことが望ましいです。また、アプリのリリース時点ですべての細かい要求まで実装しようとは考えず、要求ごとの優先度を整理しておくことも重要です。
- UI(ユーザーインターフェース)/ UX(ユーザーエクスペリエンス)
UI とは、ユーザーがアプリを利用する際に目に見える「ボタン」や「入力フォーム」、「フォント」などの視覚的要素です。UX とは、ユーザーがアプリを利用した際にうける直感的な体験のことを示します。
企業が自社アプリを運用する際の主な目的はリピーターやファンを増やすことなので、ユーザーの視点を理解し、使いやすいアプリを設計する必要があります。
2-2. 開発(プログラミング)
「要件」を実現するために、開発言語とソフトを用いて開発します。
iOS とAndroid でプラットフォームが異なるため、開発者はそれぞれの環境に適した開発環境と開発言語を使用してプログラミングする必要があります。
iOS アプリ
iOS アプリの開発には「Objective-C」「Swift」という言語を使用します。Swift は比較的新しく、使いやすさに配慮された言語です。
これらの開発言語を利用するためには、Apple 社からリリースされた「XCode」という開発環境を利用します。
Android アプリ
Android アプリ開発で利用される開発言語は、多くの場合は「Java」です。「Java」は、歴史も古く幅広い分野で利用されている言語です。Google によって公式にサポートされている「Kotlin(コトリン)」も比較的新しい開発言語であり、 Java を簡潔かつ安全になるよう改良を加えた言語です。
開発環境は「Android Studio」を利用します。Google が提供しており、Android プラットフォームに特化した機能やツールを提供しています。
Flutter アプリ
Flutter (フラッター) とは、スマートフォンのネイティブアプリ開発に特化したモバイルフレームワークの一種です。フレームワークとは、アプリやソフトウェア開発を行う際に必要となる機能や、基本的な骨組みをまとめたものです。
Flutter の最大の特徴は、1つのコードで iOS と Android の両方に対応させるように変換できる機能が備わっていることです。この機能により、開発期間やコストを抑えてシステム開発を実現しやすくなります。
Flutter は、1つのソースコードで複数の OS に対応可能ですが、カメラや位置情報取得機能を実装する場合は、iOS や Android ごとにネイティブ言語の記述が必要です。
関連記事:Flutterでアプリを開発するメリットと、できないことおよび自社アプリ開発で採用する際の注意点
ノーコード開発ツール
「Bubble」「Adalo」を筆頭に、プログラミング言語を使わずにマウス操作の GUI、あるいは Google スプレッドシートからアプリを構築できるというツールもあります。上記のクロスプラットフォーム技術「Flutter」も、より MVP 開発に適したノーコード開発ツール「Flutter Flow」を提供しています。
特に Adalo はマウス操作だけで店舗アプリなどを作りやすく、月額数万円の有料アカウントを利用することで自社の iOS/Android アプリをアプリストアにリリースし、顧客に配布することができます。
ただしこれらのツールはあくまで MVP 開発のためのツールという面が強く、
- 作りこもうとするとプログラミングスキル(またはエンジニアの協力)が必要
- 作りこんだアプリを自社でメンテナンスや拡張しきれなくなった際に、外注できるスペシャリスト企業が少ない
というデメリットもあります。
関連記事:有名なノーコード開発ツール「Adalo」で店舗アプリを作ろうとすると、どこまではメリットが大きくてどこからが厳しいのか?という検証記事
2-3. アプリのテスト
開発が完了したら、テスト工程へ移ります。
設計書の仕様通りに動くかを確認します。確認点は、「画面表示」「ページ遷移」「挙動」「入力値や出力値の確認」などがあります。スマートフォンのタッチパネルは指を 5 本まで検知でき、スワイプなど Web にはない操作もあるので、専門の知識が必要となります。
テストの段階で「バグ」を発見し、不具合を修正します。
2-4. アプリのストア審査
制作したアプリはアプリが公開される前にデジタルアプリケーションストア(例: App Store、Google Playなど)によって公開申請を行い、審査を通過する必要があります。審査を無事に通過することができれば、リリースできるという流れです。
IOS / Android 別のアプリ審査基準や期間があり、審査ではじかれる(リジェクト)場合もあります。アプリ審査ではじかれると、修正に時間がかかる場合もあるため、余裕をもってスケジュールを組んだり、アプリの審査基準を熟知している企業を開発パートナーに選ぶこともポイントです。
3. アプリ運用の進め方とポイント
アプリの運用は、開発やリリースが完了した後も継続的な努力が必要です。アプリの「運用」と「保守」が鍵となります。
アプリ運用は、「いかに安定した環境でユーザーにアプリを使い続けてもらえるか?」、アプリ保守の場合は、「アプリやシステムに障害が発生した場合、いかに素早く原因追及と復旧できるか?」がポイントです。
また、事前に運用保守のコストを予算に組み込み、施策の体制と進め方を決めておくことをおすすめします。
3-1. 短期・中長期での目標を設定する
アプリマーケティングにおいて、「何をどのようにどれくらい目標達成したか?」を定める KPI(Key Performance Indicator)を設定することが一般的です。 KPI は、月次、週次、日次など、期間を区切って計測するケースが大半です。
アプリにおける KPI は、「アプリのDL 数」「アプリの継続利用率」「プッシュ配信の開封率」などいくつか挙げられます。もっともわかりやすい指標はアプリの DL 数です。
しかしながら、DL されただけでは、実際に利用されて購買活動に繋がったかはわかりません。アプリ開発の主な目的は「継続的な接点を持つ」「ファンを増やす といったパターンが多いので、DL 数だけではアプリの効果は測りきれません。
こうした背景から、一定期間にアプリを一定頻度で利用しているユーザー数(アクティブユーザー)と、継続してアプリを利用しているユーザーの割合(リテンション率)を KPI の軸とする方法が一般的です。
関連記事
3-2. プッシュ通知についてのノウハウを貯めていく
プッシュ通知は、企業と顧客が継続的な接点を持つ役割を担っており、アプリマーケティングの鍵となる施策です。
アプリの継続的な利用を促し、休眠(アプリをDL 後、ほとんど触っていない状態)やアンインストールを回避することに役立ちます。
プッシュ通知の開封率も KPI になりますが、プッシュ通知をどのタイミングで配信すべきかというノウハウや、そもそも開封してもらうためにどんな流れでユーザーから許諾(プッシュ通知の受信許可)を取るかというノウハウを貯めていく必要があります。
プッシュ通知の配信タイミングに注視して開封率を上げることで、ユーザーの定着率を高める効果があります。
関連記事
3-3. アプリをアップデートしていく
iOS / Android では、年に数回、OS がアップデートされます。スマートフォンを動かす OS がアップデートされると、スマホ自体の機能追加や不具合の解消が行われます。
アップデートの種類は「メジャーアップデート」と「マイナーアップデート」に分かれます。
メジャーアップデートは、バージョンが 1.0 から 2.0 など、見た目や操作性が大幅に変更されます。
マイナーアップデートは、バージョンが 1.0 から 1.1 など、追加機能や不具合修正時にアップデートされます。
OS アップデートにより、今まで正常に使用できていたアプリが動かなくなってしまったり、ブラックアウトしてしまうなどといった、予期せぬ不具合が発生しかねません。 予期せぬ不具合は、ユーザーが直接ダメージを受けてしまうので、避けるためには予め OS アップデートの対応も想定しておく必要があります。
4. アプリの形式ごとの特徴と、工程の違い
「アプリ」にはさまざまな種類があり、どの形式で開発するかによって開発費用・開発体制が大きく変わります。その種類や特徴を以下にまとめます。
ネイティブアプリ
ネイティブアプリとは、Java/Kotolin/Objective-C/Swift というアプリ用の言語で開発し、App Store や Google Play などのアプリケーションストアからインストールして使用するアプリのことです。下記のハイブリッドアプリ(WebView アプリ)や、先述した Flutter もネイティブアプリの一種です。
カメラや GPS 機能など、スマホの特徴をアプリ開発に活かせます。ダウンロードしてもらうための工夫が必要ですが、DL 後はオフライン環境でも一部の機能を利用できます。しかしながら、ネイティブ構築部分が増えるほど開発費用が上がり、OS のアップデートがある度にアプリの更新が必要になります。
ハイブリッド(WebView)アプリ
ハイブリッドアプリとは、既存の Web を活用したネイティブアプリです。端末にインストールする「ネイティブアプリ」と、マルチプラットフォームで利用できる「Web アプリ」の特徴を持ち合わせています。
メリットは、既存の Web サイトを生かす部分が増えるほど、ネイティブアプリと比較した場合に安価で開発できることです。 さらに、ネイティブアプリ同様にスマホ特性の機能を活かした開発が可能なため、Web よりもカメラや GPS 機能などを活用しやすいです。
関連記事
Web アプリ
Web アプリとは、ブラウザを利用して情報を見せるだけでなく、ユーザーが任意の操作が可能なアプリの事を示します。 身近な例として、YouTube では動画を再生することができ、G-mail ではメールを読むだけでなく、メールの送受信も可能です。 ネット予約や口コミ投稿などができる「食べログ」もWeb アプリの代表格です。
アプリケーションストアを経由した審査を受ける必要がないため、自由度の高い点がメリットです。インターネット環境がないと動作しないことと、プッシュ通知などアプリらしい機能に制限が多いことがデメリットです。
PWA
PWA(Progressive Web Apps)とは、Web アプリをよりネイティブアプリに近づけて進化させた形式です。スマホのホーム画面上にショートカットを作成したり、オフラインで通信したり、プッシュ配信(Android のみ)による情報配信をしたり、といったことができます。
PC ・タブレット・スマホ・どのデバイスでも利用できることもメリットですが、iOS での運用にはさまざまな面で不安要素が残っています。
関連記事
LINEミニアプリ
LINEミニアプリは、ネイティブアプリで実装するような一部の機能を切り出し、LINE 上で提供する Web アプリです。
- モバイルオーダー:店内においてある QR コードを読み取ることで、注文ページが立ち上がり、スマホからオーダーすることができます。
- デジタル会員証:店内においてある QR コードを読み取ることで、会員証あるいは「仮」会員証の発行ができます。ポイントやクーポンの発行も可能なのでリピーター獲得が見込めます。
- 順番待ちシステム:事前に混雑状況を把握したり、現地に着く前に LINE から整理券を発行することができます。さらに順番が近づいたときにプッシュ通知でリマインドしたり、キャンセルボタンを作ることもできます。
といった機能があり、さまざまな業種に対応しています。LINE 公式アカウントのお友だち登録をしていなくても機能を利用することができます。
LINE 公式アカウント
「顧客との継続的な接点を作りたい」という要件に対して、まず優先的に取り組むべき施策が LINE からのプッシュメッセージ配信です。アプリという形式ではありませんが、自社アプリの代用ツールとして捉えることができます。
LINE の月間利用者数は、日本の人口の約 70% と普及率が高いため、「お友だち登録」することへのハードルは低く、再来店・再購入を促すメッセージの開封率も企業アプリに比べて高くなります。小規模に始める上では安価に運用できることも大きなメリットです。
しかしながら、お友だちの数(顧客)の数が増えるにつれてコストが高くなるというデメリットがあるので、一定規模の企業では LINE と自社アプリの併用が一般的となります。
関連記事
5. スマホアプリの作り方と、開発方法ごとの違いについて
スマホアプリの作り方において、一般的な「フルスクラッチ開発」以外にも「ノーコード」や「ローコード(ハーフスクラッチ)」と呼ばれる開発手法があります。
スクラッチ開発とノーコード開発では開発費用・スケジュールが大きく異なるため、企画・発注の際にはこれらの違いも知っておくことをおすすめします。
ノーコード
ノーコードは、ソースコードを書く必要がないため、プログラミング言語の知識がない人でもアプリ制作することが可能です。 また、ノーコードで開発可能なサービスを指して、「ノーコードツール」と呼ぶこともあります。
ノーコードツールでアプリを開発していく流れとしては、ドラッグ&ドロップやテキスト入力など、基本的にはマウスの操作で開発が可能です。 短期間でアプリの開発が進められるので、開発コストの削減が期待できますが、アプリユーザーの目線に落とし込んだ細やかな設計まで対応することが難しいです。
ローコード
ローコードは、基本的な部分をノーコードで構築し、こだわりたい部分で最低限のコードを書くという作り方です。ノーコードと比較すると、比較的開発の自由度が高くなります。
ノーコードより実現したいことが広がる半面、開発コストがかかることと、コードに対する知識が求められるため、プロジェクトの規模や要件に応じて適切なバランスを見つけることが重要です。
フルスクラッチ開発
フルスクラッチ開発とは、ソフトウェアやアプリをイチから完全に新しく開発することを意味します。 なかでも、ウォーターフォール型とアジャイル型があり、それぞれアプリ開発の進め方に特徴があります。
ウォーターフォール型開発
名前の通り、水が上から落ちていくように
- 要件定義
- 設計
- 実装
- テスト
- アプリ導入
と、上から順番に開発工程を計画通り進めていきます。逆戻りはせず、要件定義で決めた内容を元に設計・開発を行います。
大規模なシステム開発において採用されることが多く、予算とスケジュールを決めやすいことがメリットです。
しかしながら、途中で軌道修正することが難しく、突発的に仕様を変更した場合は全体の設計が狂ったり、当初設定した費用や納期に影響が生じる場合があります。
アジャイル型開発
アジャイル(Agile)には、「素早い」、「俊敏な」という意味があります。言葉の意味通り、アプリ開発の流れが素早いことが特徴です。
「フルスクラッチ開発は柔軟な軌道修正ができない」と言われることもありますが、アジャイル型では、開発者は顧客と継続的にコミュニケーションをとり、要望に応じて柔軟に変更できるよう進めます。
予算の面では、毎月の予算を決められるのでコントロールしやすいですが、修正に時間とコストをかけすぎてしまい、かえって開発期間やコストが高くなってしまうこともあります。
関連記事:
6. アプリ開発の進め方と、工程ごとのポイントまとめ
- アプリ開発において一番重要なのは「なんのためにアプリを作るのか?」という視点であり、ターゲットや機能を細分化していき要件に落とし込むこと
- 同じ「アプリ」でも複数の種類があり、制作したいアプリがどの手段で最大限の効果を発揮するかを考える
- 作りたいアプリは「ノーコード」「ローコード」「フルスクラッチ」どの開発工程で作るべきかを考える
- 内製(社内開発)、外注それぞれのメリット・デメリットを把握する
- アプリはリリース後も、DL 率やプッシュ開封率を上げるための施策が重要であるため、運用後の KPI なども考えておく
- アプリ開発にかかわる費用として、「開発」だけでなく「保守・運用費」までのランニングコストも考慮しておく
BackApp では創業以来、 200 社をこえるクライアントに対して iOS/Android アプリ開発を手がけてきました。 「フルスクラッチ以外の手段も踏まえて、複数プランの提案をしてほしい」「予算を抑えつつ、ある程度はカスタマイズもしたい」というご相談も承っております。
また、アプリ開発工程だけではなく事業企画の段階からパートナーとして相談に乗らせていただくことも可能ですので、進め方において不安な点などがございましたらぜひお気軽にお問い合わせください。
- 「自社アプリを考えているが、初期投資を抑えてまずは試してみたい」
- 「LINE からの PUSH 配信で顧客と継続的に接点は作れているが、費用対効果が見合わなくなってきた」
- 「安すぎるシステムだと動作速度や拡張性などが不安」
といったお悩みを抱えている企業様に向けて、ノーコードでアプリを開発するサービス「PASTA」を展開しています。