本文へ移動

ホーム / PdM / 第2部 Web サービスの仕組み

第2部 Web サービスの仕組み・第5章

スマホアプリの制約

★☆☆ 発展4トピック・面接 2問

Web と比べたスマホアプリの制約を、企画とリリースの判断に使える範囲で押さえる。

作り方特徴向いている場面
ネイティブ(iOS は Swift、Android は Kotlin)OS の機能を一番使える。iOS と Android で2回作る動きの速さ・OS の新機能が大事
クロスプラットフォーム(Flutter・React Native など)1つのコードで両方に出せることが多い。OS の新機能への対応は少し遅れることがある両方を少ない人数で作りたい
Web(スマホのブラウザ・PWA)審査なしですぐ直せる。通知や端末の機能に制限がある更新が多い・まず試したい

どの作り方かで、「iOS だけ先に出す」「OS の新機能に対応する」の工数が変わります。自分のプロダクトがどれで作られているかは最初に確かめておきます。

App の「クロスプラットフォーム」

アプリは審査を通り、少しずつ配られ、古い版も残り続ける提出審査数時間〜数日段階的に公開一部の人から全員に配信古い版を使い続ける人:数か月〜年単位で残るサーバーは古い版が呼ぶ API を残し続ける。どうしても必要なら強制アップデート
アプリのリリースの流れ

スマホアプリは App Store・Google Play の審査を通す必要があり、数時間〜数日かかることがあります。すぐに直して出し直せないので、サーバー側の Feature Flag で機能を止められる作りが特に大切です。

仕組み内容
App Store の段階的リリース7日かけて配信の対象を少しずつ広げる。途中で一時停止できる
Google Play の段階的公開公開する割合を自分で決めて広げ、問題があれば止められる
戻せないこと一度入れた版は端末から戻せない。直した版を新しく出す
強制アップデート古い版では使えないと案内する画面。使う条件を事前に決めておく
アプリ内課金デジタルの商品は、ストアの決済を使うルールと手数料がある。最新の規約を確かめる

App の「審査と段階的リリース」

プッシュ通知は、アプリを開いていないときでも、サーバーからスマホの画面に知らせを出せる仕組みです。セールのお知らせ・発送の連絡・メッセージの着信など、利用者を呼び戻す強い手段ですが、利用者の許可がないと届かないうえに、断られると取り戻しにくいという制約があります。

そのため「いつ許可を聞くか」「許可されなかったときにどうするか」は、技術の話である前に仕様の話です。PdM がこの制約を知っておくと、通知に頼った施策の見込みを立てやすくなります。

通知は OS の配信サービスを通って届く。許可がなければ届かない自社のサーバー送る内容OS の配信サービスAPNs・FCM端末OS が表示許可(初回のダイアログ)を断られると届かない。断られた後は設定から戻してもらうしかない届いたかどうか・読まれたかは、正確には分からないこともある
プッシュ通知の届き方

プッシュ通知は、自社のサーバーから Apple の APNs や Google の FCM という配信サービスを通って端末に届きます。iOS では通知にユーザーの許可が要り、Android も 13 以降は許可が要ります。許可の画面は一度断られると、ユーザーが設定から戻さない限り出せません。

OS の許可が要るもの仕様で考えること
通知最初の起動ですぐ聞かず、価値が伝わる場面で聞く
位置情報「使用中のみ」で足りるか。常に取る理由を説明できるか
カメラ・写真使う直前に理由を添えて聞く
トラッキング(iOS の ATT)他社のアプリやサイトをまたいだ追跡には許可が要る。広告の効果の測り方に影響

許可されない前提で、通知がなくても使える流れ(アプリ内のお知らせ・メール)も用意しておきます。

下の「ブラウザで試す」の図では、アプリが通知の許可をもらって端末の宛先(デバイストークン)を受け取り、自社のサーバーに登録するところから始まります。そのあと、出来事が起きるとサーバーが Apple の APNs に送信を頼み、APNs から端末に届くまでを順に追えます。最初の「許可とデバイストークン」の手順がないと後の手順がすべて始まらない点と、APNs が「受け付けた」ことと「端末に届いた」ことは別の段階である点に注目してください。

別のページで開く →

ネットワーク図を読み込んでいます…

電波がないときは端末に置き、つながったら送る操作電波なし端末に保存送信待ちつながるサーバーへ送る同期同じデータを別の端末でも変えていたら? → どちらを残すかのルールが要る
オフラインと同期

スマホは地下鉄やエレベーターで電波が切れます。そのときにどこまで使えるかは仕様で決めることです。全部をオフラインで使えるようにすると工数が大きく増えるので、場面を選びます。

レベル例工数
エラーを分かりやすく出す「通信できません。再読み込み」小
見るだけできる前に開いた記事・チケットを表示中
操作も後で送るメモや下書きを保存して、つながったら送る大(同期と食い違いの扱い)

操作を後で送る場合、別の端末で同じデータを変えていたときにどちらを残すかのルールが必要です。

App の「端末のデータとオフライン」

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • アプリは審査があり、すぐに直して出せない。古い版も長く残る
  • 通知・位置情報などは OS の許可が要り、断られる前提で設計する
  • 電波が弱い・切れる場面でどう見せるかを仕様で決める

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1スマホアプリの機能をリリースするとき、Web と比べて気をつけることは?

模範回答

大きく2つあります。1つ目は審査です。App Store や Google Play の審査を通す必要があり、すぐに直して出し直せないので、リリース日に余裕を持たせ、問題があればサーバー側のフラグで機能を止められるようにしておきます。

2つ目は古いバージョンが残ることです。アップデートしない人がいるので、API は古い版でも動くように後方互換を保つ必要があります。ストアの段階的な公開を使って少しずつ広げ、どうしても古い版を切る必要があるときは、強制アップデートの方針を事前に決めておきます。

深掘りされたら

  • 古いアプリ版のサポートは、いつまで続けるべきですか?

見られているポイント審査・古いバージョン・後方互換・フラグでの停止

Q2新機能のプッシュ通知の許可を、アプリの初回起動ですぐに求める案が出ています。どう考えますか?

模範回答

私は、すぐに聞くのは避けたほうがよいと考えます。iOS では一度断られると、ユーザーが設定から戻さない限り許可の画面を出せないので、価値が分からないうちに聞くと断られやすく、取り返しがつきにくいからです。

例えば「注文の発送をお知らせします」のように通知の価値が伝わる場面で、理由を添えて聞く流れを提案します。そのうえで許可率を計測し、許可されない人にもアプリ内のお知らせやメールで届く設計にします。

深掘りされたら

  • 許可率はどう測りますか?

見られているポイントOS の制約を体験の設計と数字に結びつけられるか