2025年1月30日にオンラインセミナー『失敗しないモバイルアプリ開発 企画者が知っておくべき開発の流れと検討のポイント』を開催いたしました。
この記事では当日用いた資料を公開しています。
目次
はじめに
顧客体験の向上や業務効率化の手段としてモバイルアプリ開発の需要は伸び続ける一方ですが、アプリ開発の知識を誰もが持っているわけではありません。
実際に検討をはじめると、開発にかかるコストや期間・要件の決め方・デザイン・開発言語・配信方法・運用保守など、多くの検討が必要なことが、特に技術的な知識を持たないビジネスサイドの方にとって大きな課題となります。
そこで、今回はモバイルアプリ開発について検討する際に必要となる知見を一通り押さえ、技術的な専門知識を持つ方にもそうでない方にもわかりやすくポイントをご紹介します。
モバイルアプリについて
モバイルアプリとは
最初に、改めて ”モバイルアプリ” の定義についてですが、モバイルアプリとは、”Mobile Application” の略称で、スマートフォンやタブレットなどのモバイルデバイスに、直接インストールすることで動作するアプリのことを指します。
みなさんが普段お使いの、広く一般的に用いられるスマホ上のアイコンで表示されるアプリのことです。
Webアプリケーションとの違い
広く普及している Webアプリケーション(Webブラウザを通じてインターネットに接続して利用できるソフトウェア)との違いについても、簡単にふれておきます。
モバイルアプリ | Webアプリ | |
---|---|---|
利用方法 | ストアからインストールが必要 | ブラウザ上で動作(Safari, chrome) |
通信要件 | 起動時に通信不要(オフライン可) | 通信環境が必要 |
デバイス連携 | カメラ、位置情報、Bluetoothなどのデバイス機能が連携しやすい | 一部デバイス機能に制限あり |
互換性 | 機種やOSで動作が異なる場合あり | どの端末でも基本的には同じ動作 |
リリース | ストアの審査あり | いつでもリリース可能 |
容量負荷 | デバイスのストレージを使用 | ブラウザが使用するストレージのみ |
バージョン依存 | OSアップデートに追随が必要 | 使用ブラウザのバージョン(影響は少) |
開発コスト | プラットフォームごとの開発が必要になる場合あり | プラットフォーム共通 |
より詳細な比較や内容については、過去の記事:モバイルアプリとWeアプリの比較をご参照ください。
モバイルアプリ開発の流れ
モバイルアプリ開発は、開発の規模や採用する手法によって多少の違いはありますが、基本的には下図の流れで進みます。
一度開発したら二度と手を加えないというものではないので、追加開発や機能改善がある場合は「保守/運用」から出ている矢印のように前のフェーズに戻り、同様のプロセスを繰り返し行います。
【企画】
解決したい課題やターゲットユーザーを洗い出し、その解決策としてアプリケーションの開発が有効かどうかを検討します。
【要件定義】
課題の解決にあたって、どういった機能が必要かを検討します。代表的な機能でいうと、”ログイン機能” や “位置情報連携機能” などが挙げられます。また、機能の選定だけでなく、必要なパフォーマンス想定や使用するプラットフォームの検討(Android または iOS)なども行います。
【技術選定】
要件定義で実際にやりたいことが定まってきたら、どういった技術構成でそれらを実現するかを検討します。1つのアプリケーションを実現するためには、フロントエンド、バックエンド、クラウドサービス、サードパーティサービスといった多岐にわたる技術を連携させる必要があり、その選択がアプリケーションの性能、保守性、そして開発効率に大きく左右します。
【デザイン】
要件に合わせたユーザー体験が最大となるようなデザインの検討や、サービスイメージに合わせた色使いやテーマの検討などを実施します。
【実装/テスト】
検討してきた要件やデザインを実際に形にしていきます。
【リリース】
実装が完成しましたら、アプリストアへの申請作業に入ります。リリースフェーズについては、要件としてストア公開を実施するかどうかにもよりますが、基本的にはモバイルアプリ開発するうえでは必須の工程となります。iOSだとApp Store、AndroidだとPlay Storeにあたります。
【保守/運用】
アプリケーションは作ったら終了ではなく、稼働して初めてスタート地点です。最初のリリースはミニマルな機能でのリリースとなることも多く、実際のユーザーの声を聞きながら改善を続けていきます。
成功に導くために押さえておきたいポイント
続いて、上記の「モバイルアプリ開発の流れ」で記載した開発の流れにそって、具体的に押さえておきたいポイントを紹介します。
企画段階の注意点
目的と課題の明確化
まず企画を進めていく前に一度初心に立ち返って、社内で解決したい課題や問題を洗い出しましょう。そのうえで、「この問題を解決したい」「この問題のために〜を実現したい」といった明確な状態まで整理されているのが望ましいです。
例えば、飲食店向けアプリの場合、顧客の予約管理を効率化することが課題なのか、リピート顧客の増加が目的なのか、などを明確化する必要があります。なにより、あくまでもアプリケーションは「目的達成や課題解決のためのツール」であることをチームで共通認識を持つことが大切です。
アプリケーションとして動くものを作り出すと達成感や充足感は味わえますが、実際には本来の目的達成には貢献できていないという状況が、残念ながら起こりがちです。まずは課題や目的を明確にすることが大切です。
既存ツールや既存サービスとの比較検討
世の中には沢山のサービスが出回っています。明確化した課題が、既存のサービスで達成できないのか、または、モバイルアプリである必要があるのか、Webサービスなどの他のアプリケーションだと実現ができないのか、などの調査や検討・比較を実施します。
例えば、従業員向けの勤怠管理アプリを開発検討しているのであれば、既存の外部サービス利用で十分ということもあるかもしれません。また、調査の結果、新規開発する方針で検討が進んだ際は、よく似た機能のサービスが出回っていないかなどを調査し、それらとの差別化ポイントや、自社で開発するメリットなどを明確化しましょう。
このように、既存のツールや既存サービスの活用も視野に入れながら、最適な手段を選択することが重要です。また、新規開発を進める場合でも、自社で開発するメリットをしっかりと整理して進めていきましょう。
システム連携
モバイルアプリ開発を検討する際には、既存の社内システムや外部ツールとの連携要件を、改めて確認することが重要です。例えば、以下のような項目が挙げられます。
- 社内で使用しているクラウドサーバーのデータの受け渡しが可能かどうか
- 外部デバイスなどを使用したい場合は、デバイスとスマホの連携が可能かどうか
- 仮に従業員向けポータルアプリを作るとしたら、社内の勤怠管理システムと連携できるかどうかなども考慮が必要
また、それらの連携の要件が「期間やコストなどを考慮して現実的な方法といえるのか」も合わせて確認しておくことも大切です。
リリース後を見据えた計画
継続的な運用に備えたリソースや環境の確保を、事前にしっかりと計画しておくことが大切です。アプリは、リリース後も継続的に改善していく必要があります。
予期せぬエラーや不具合の改善対応をしたり、ユーザーログからユーザーの同行を調査して、機能の追加や改善を検討したりなど、アプリケーションは継続して成長していくものです。
開発には人員を割いていたが、リリース後に人員や予算を避けずに成長速度が遅くなり、思ったような成果が出ない。なんてことも十分に考えられます。
長期的な運用を見越して、計画段階から運用リソースや環境をしっかりと押さえておきましょう。そして、何より大切なことは、リリースはゴールではなく、課題解決のためのスタートに過ぎないということです。
リリースして満足してしまうケースも珍しくありませんが、「稼働してからが本当のスタート」です。リリース後の計画をしっかりと立てておくことが、アプリの成功確率を高めます。企画の段階でしっかり考えておきましょう。
要件定義段階の注意点
対応OSの選定
現状は「モバイルアプリ = iOS用 または Android用」と捉えられることが一般的です。どちらのOSを選ぶのか、または両方に対応するのかどうかを検討します。
一例ですが、社内利用を主とした業務用モバイルアプリの場合は、社用スマホがどちらのOSなのかを基準に選定することが多いです。
一方で、コンシューマー向けのアプリでは、両方のOSに対応するのが一般的と言えます。
OSのバージョンについても、考慮しておきたいポイントです。アプリ開発では、利用を検討していたSDK※やライブラリが「OSxx以上」といった制約がある場合があります。そのため、スマホのOSバージョンがアプリケーションの機能や動作に影響を与える、ということは理解しておきましょう。
また、OSは定期的に更新されるため、追随計画も欠かせません。OSの更新に伴い、アプリも定期的にアップデートを行う必要があります。
一般的な機能であれば、OSを更新しても基本的には互換性がありますが、特殊な機能やマイナーなライブラリやSDKを使用している場合、新しいOSでは動作が不安定になる可能性もあります。
※ SDK:Software Development Kitの略称。特定のシステムに対応したソフトウェアを開発するために必要なプログラム、技術文書などをまとめてパッケージ化したもの。
OSバージョンの保証範囲についても計画段階から考慮にいれておきましょう。
古くなっていくOSバージョンをいつまでも動作保証範囲としておくと、年々開発やテストのコストが増えるため、最新のOSのバージョンから2バージョン程度下までを保証範囲とすることが現実的かと思います。
【参考資料】下記のページで、各iOSバージョンのリリース日、サポート状況(アクティブサポート、セキュリティサポート終了日)、最新バージョンなどが分かりやすくまとめられています。
endoflife.date – Apple iOS
endoflife.date – Android OS
デバイス種別による違い
どういったデバイスを対象とするのかを検討することは大切です。主要な検討項目について、いくつか挙げてみます。
【タブレット対応の有無】
タブレットもスマートフォンと同様、モバイルデバイス扱いとなります。
ただし、御存知の通りタブレットは画面サイズがスマホに比べて大きいため、対応する場合は、画面サイズに応じたレイアウト調整が必要となります。両方に対応したレイアウト調整は、実装費用やデザイン費用にも影響が出てくることには注意が必要です。
【画面の向き】
画面の向きについても、利用用途に応じて縦向き、横向き、または両方に対応するかの検討が必要です。カメラ機能が主なモバイルアプリであれば、横向き固定とすることも考えられるケースです。このような細かい動作も事前に検討しておきましょう。
【画面サイズ】
同じ画面デザインだとしても、端末によって見え方が変わってしまい、デザインが崩れてしまう可能性があることは覚えておきたいポイントです。
例えば、iPhoneSE とiPhone16ProMaxを比べてみると、同じiPhoneでも、大きく表示領域が変わることがわかります。
【メモリやバッテリー、CPU性能などのスペック】
端末のスペックの違い、特に性能の低い端末をどう扱うかの検討は重要です。特にコンシューマー向けのモバイルアプリの場合、ユーザーの端末差が顕著に現れます。
一例ですが、以下のようなスペックの違うスマホを両方対象と考えていると、古い機種では「動作のカクつき、アプリがクラッシュする、意図した動きにならない」などの問題が発生する恐れもあります。
古い機種:A | 最新機種:B | |
---|---|---|
CPU | 2.0GHz x 4コア | 3.1GHz x 8コア |
RAM | 3GB | 16GB |
ROM | 32GB | 128GB〜 |
バッテリー | 3,300mAh | 4,700mAh |
OS | Android 10 / 11 | Android 14 |
もちろん、こういった差をどこまで対象範囲とするのかも検討する必要があります。それにより開発期間や費用に大きな影響があることは事前に押さえておきたいポイントです。
ストア公開の必要有無
モバイルアプリ開発を検討する際、ストアに公開するかどうかは重要なポイントとなります。大きく選択肢は2つあります。
「一般公開」と「テスト配信」です。
「アプリを一般公開」する場合、iOSであればApp Store、AndroidであればGoogle Play Storeに申請する必要があります。申請するアプリは、各ストアのガイドラインを遵守していなければなりません。
また、ストア公開に向けては、申請準備や各種ストア設定が必要で、純粋な開発作業以外にもいくつかの作業が発生します。
もう一方、検証段階や検証用アプリであれば「テスト配信」という方法も選択肢としては挙げられます。こちらはストア申請が不要、もしくは簡易審査で済むため、迅速に限られたユーザーにアプリを配信することが可能です。
ただし、あくまでも “テスト” 配信であるため、登録のメールアドレスだけが配信の対象であったり、有効期限もある事は注意です。
基本的には、「アプリ開発をする = ストア公開」を最終的には目指すことになると思います。アプリ開発をする上で、ユーザーに使ってもらえる状態にすることは必須であるため、ストア公開を見据えた開発は避けて通れないステップです。
ストアのガイドラインに準拠する必要性
ストアの一般公開にはストアの審査が必要で、各OSのストアが定めるガイドラインに準拠しているかが審査されます。ガイドラインには情報の取り扱い方法や、アプリの動作に関する規定、アプリの内容に関する規定などがあります。
ここがストアを経由しないで提供できるWebアプリケーションとの大きな違いです。
Webアプリケーションでは、どんなコンテンツで例え品質が悪くても、Web 上に公開、リリースすることは可能です。しかし、モバイルアプリをリリースする場合は、必ずストアを経由する必要があります。
そのため、要件定義時に検討した内容が、ガイドラインに準じているかを確認することはとても大切です。
ガイドラインに準拠しておらずアプリの審査で落とされるよくある事例
【動作不良】
- アプリがクラッシュする
- 本番環境だと意図した動作にならい
【プライバシー対応不足】
- ユーザー登録機能があるが退会機能がない
- コア機能以外で個人情報を収集している
【UI/UXに関する規定】
- 1画面に情報を詰め込みすぎている
- ログインせずとも基本機能は使用できる必要がある
【機能】
- 主機能が他のアプリの模倣だと判断される
- 主機能がWebサイトを呼び出して表示しているだけ
今回紹介したのは一部ですが、こういった細かい規定が定められています。各OSのガイドラインへのリンクを載せておきますので、他に気になる内容があれば是非調べてみてください。
iOS: App Review Guidelines
Android: デベロッパーポリシーセンター
技術選定時の注意点
モバイルアプリ開発における開発言語の選定
アプリケーション開発全般で言えることですが、どのような開発言語を選定するかは、アプリの開発コストや機能性に大きな影響を与える重要なポイントです。モバイルアプリ開発では、AndroidはKotlin、iOSはSwiftと呼ばれる開発言語で開発することが現在の主流です。
以降、KotlinやSwift のようにそれぞれのOSに特化した開発言語のことを、”ネイティブ言語” と表現します。
ネイティブ言語での開発では、OSに深く根付いた機能(スマホのカメラやセンサー類、等)を活用でき、各OSに最適化された動作ができる点が大きな特徴です。
そして、最近ではAndroidとiOS両方に向けたモバイルアプリを、1つのソースコードで開発できる「クロスプラットフォーム」と呼ばれる技術が主流になりつつあります。その代表例が、React NativeやFlutterです。
クロスプラットフォームと呼ばれる技術の最大のメリットは、開発コストや工数を大幅に削減できる点です。一つのコードで両OSに対応できるため、単純計算なら1/2の工数で開発が可能ということになります。
ネイティブ言語での開発、クロスプラットフォームでの開発、どちらが良いかはアプリの要件や目的に応じて最適な選択を検討する必要があります。
クロスプラットフォームでのアプリ開発であれば、コストを抑えられ、基本的な機能であれば高品質かつ素早くアプリを作ることが十分可能です。ただし、OS機能に根付いた最新の機能をフルに活用したい場合などは、クロスプラットフォームでは制限がある場合があります。
例えば、カメラの高度な補正機能や VR/AR 機能などが挙げられます。そのような条件のアプリの場合は、ネイティブ言語での開発が適切な場合が多いです。
アプリの目的や要件を明確にし、それに合った技術を選ぶことが重要です。
モバイルアプリ開発における技術選定については、別の記事「ネイティブアプリとクロスプラットホームアプリの違い」で詳細に解説しているので、興味がある方はぜひこちらもご参照ください。
ベンダーから提案された技術スタックの確認
いざ要件を詰めて開発フェーズまで無事に進んだ際に、アプリを構成する中身(技術スタック)を開発会社に任せっきりにしないことも大切です。
担当者が技術的な知見をあまり持っていない場合も可能な観点だけでも確認しておくことは大切です。確認を怠ったが故にリリース後に想定外のリスクが発生する可能性があることは考慮しておく必要があります。
よくある問題発生例としては以下が挙げられます。
- 古い技術構成なため、機能追加や保守が困難になった
- 最新の技術やサービスを多様したが、繁栄せずに廃れて機能が使えなくなる
- 過度に高度で複雑な技術を使用し、開発や保守のコストが上がる
- 別の開発ベンダーへ移行検討時に、上記の理由で移行先がが見つからない
発注者側が専門的な技術知識を全て把握する必要はもちろんありませんが、以下の確認ポイントだけでも押さえておくと、リスクを最小化することができます。
- 広く採用されている技術か(普及度)
- 保守運用が容易な技術か(コスト面)
- 移行や連携がしやすいか(他ベンダー対応)
- アップデートや新機能追加が容易か(拡張性)
実装・リリース時の注意点
余裕のある実装期間の確保
実装期間を確保する際には、余裕を持ったスケジュール設定が重要です。
システム開発は机上で計画した当初の予定のままスムーズに進むことは非常に稀です。特にモバイルアプリとサーバー(フロントエンドとバックエンド)をそれぞれ別の開発ベンダーに頼んでいるなど、複数社が関与する場合、さまざまな問題が発生する可能性があります。
発生する問題の原因の1つは、開発ベンダー間の認識齟齬や、発注者と開発ベンダーとの解釈のズレが主な原因です。認識の齟齬が発生すると、仕様確認を相互がすることとなり、多くのロスが発生してしまいます。
中でも、発注者の作業負担が増加してしまうことは想定しておく必要があります。契約により違いはありますが、開発ベンダーが複数いる場合、基本的にはベンダー同士が直接やり取りすることはないため、発注者が双方の間に立って各種調整をおこなう手間が発生してしまいます。
解決策としては、前述の通り、「問題は発生するもの」とした前提で計画を立てておくことが大切です。バッファを持たせた事前計画を心がけましょう。
もう1つの解決策としては、フロントエンドとバックエンドを分けずに同じ開発ベンダーに開発依頼することです。その方が認識のズレを減らし、意思疎通ややり取りが効率化され、開発期間の短縮にも繋がります。
余裕のあるリリース計画
上記項目同様に、リリースフェーズでも余裕を持ったリリース計画を立てることが大切です。
特にストア審査の一連のプロセスは、想定していた以上に時間がかかる場合があるため、それを見越した計画が必要です。App StoreやGoogle Play Storeのガイドラインは、文字数にして5万文字程にも及び、内容も多岐にわたります。
要件定義時や実装時にガイドラインをしっかりと確認はしていても、リリース時の審査に引っかかることはあり得ます。そのため、ストア審査は “少なくとも” 1回は必ずリジェクトされるものとして計画しておくことが無難です。また、リジェクト(アプリストアの審査に通らず、公開を拒否される)時の対応にかかる作業工数も事前に把握しておきたいポイントです。
一度の審査のやり取りで、数日かかることは認識しておく必要があります。そのため、リジェクト後の修正作業や再審査の期間も含めて、リリース計画を立てましょう。余裕を持って1ヶ月前には初回審査に提出できるような計画であれば安心かと思います。
モバイルアプリ開発に関するご相談はNCDCヘ
モバイルアプリ開発において押さえておきたいポイントについて解説しましたが、検討すべきことはは他にも沢山あり、また、要件によっても抑えるべきポイントも変わってきます。
NCDCでは、iOS/Androidアプリの企画から、設計、デザイン、開発、APIを駆使した既存システムとの連携まで、モバイルアプリケーションのビジネス活用に必要なサービスをワンストップでご提供しています。
モバイルアプリを開発する予定があるけれど、どこから始めたらいいか分からない、といった段階からでもご支援が可能ですので、ぜひ一度お気軽にご相談ください。