📱

スマホアプリエンジニアでない方へ向けた、スマホアプリ開発に関連するトピック

2024/12/16に公開

はじめに

スマホアプリエンジニアでない方に向けて、スマホアプリ開発に関連するトピックを紹介します。
iOS や Android のアプリ開発を実装しない方でも、スマホアプリについての基本的な知識を理解できるようになることを目指します。

スマホ・スマホアプリの状態

スマホアプリは、スマホなどの状態に応じて動作が異なることもあります。
そのため、スマホの状態について理解しておくことが重要です。

スマホの状態

  • OS 状態
    • OS / バージョン
  • 電源状態
    • オン / オフ / スリープ
  • バッテリー状態
    • 使用中 / 充電中 / 充電完了 / 低電力モード / バッテリー切れ
  • 通信状態
    • Wi-Fi 接続 / モバイルデータ通信 / 機内モード / オフライン
  • ストレージ状態
    • ストレージ容量 / 空き容量あり / 空き容量なし

スマホアプリの状態

  • インストール状態
    • 未インストール / インストール済
  • 実行状態
    • 実行中(フォアグラウンド) / バックグラウンド実行 / 停止(Kill)
  • 更新状態
    • 最新版 / アップデート可能 / アップデート不可
  • 権限状態
    • 必要な権限を付与 / 一部の権限を拒否 / すべての権限を拒否
  • データ状態
    • データが同期中 / データが非同期 / データが破損
  • エラー状態
    • クラッシュ / フリーズ / エラーメッセージが表示

スマホアプリの画面遷移

スマホアプリで次の画面へ遷移したり、前の画面に戻るような内容はスタックのような状態で管理されています。
画面遷移の仕組みを理解しておくことで、アプリの動作を理解しやすくなります。

操作 スタック状態
画面 A を表示
画面 A から画面 B に遷移
画面 A から画面 B に遷移し、画面 C に遷移
画面 A から画面 B に遷移し、>画面 C に遷移した後、1 つ戻る
画面 A から画面 B に遷移し、画面 C に遷移した後、前画面に戻らない状態の画面 D に遷移

スマホの通知

スマホアプリでは、通知を利用してユーザーに情報を伝えることができます。
通知は、アプリがバックグラウンドで動作している場合でも、ユーザーに情報を伝えることができます。

通知方法

ローカル通知

  • スマホアプリ自体で即時または決められた時間に通知を表示できる
  • 決められた時間に通知する場合、その設定でメッセージも指定するため、柔軟にメッセージを変更はできない
  • オフラインでも通知を表示できる
  • サーバーが不要

プッシュ通知

  • サーバーから通知内容を受け取り、通知を表示できる
  • サーバーから通知内容を送信するため、柔軟にメッセージ・タイミングを変更できる
  • iOS: Apple Push Notification service (APNs)、Android: Firebase Cloud Messaging (FCM)で送信する
    • FCM 経由で APNs へ送信することも可能
  • 通知を表示する「通知メッセージ」とデータのみの「データメッセージ」に分かれる

通知メッセージ

  • バックグラウンド実行・停止(Kill)
    • 受け取った通知内容をもとに通知が表示される
  • フォアグラウンド
    • 自動で通知は表示されない
    • スマホアプリで通知を受け取ったことを検知し、ローカル通知により通知を表示できる

データメッセージ

  • データを受け取り、スマホアプリにて処理を行うことができる
  • FCM 経由で APNs に送信した場合、サイレントプッシュ通知として扱われる
    • 実行可能時間は 30 秒
    • ユーザーによって明示的に停止(Kill)されていなければ実行可能

URL によるスマホアプリ起動

Web サイトやメール文章のリンクからスマホアプリを起動できます。
スマホアプリを起動するための URL スキームや Universal Links について理解しておくことで、スマホアプリの利便性を向上させることができます。

Custom URL Scheme

  • myapp::// のようにスマホアプリ独自の URL スキームが設定できる
  • その URL スキームを指定したリンクを作成しそれをクリックすると、そのスマホアプリが起動する
  • スマホにアプリがインストールされていない場合、何も動作しない
  • 自由に設定できるため、乗っ取り攻撃のセキュリティーリスクがある
  • https://myapp.example.com のような特定の URL でスマホアプリが起動できる
  • https://myapp.example.com/.well-known/apple-app-site-association に設定を記載したファイルを配置しなければならない
  • https://myapp.example.com のような特定の URL でスマホアプリが起動できる
  • https://myapp.example.com/.well-known/assetlinks.json に設定を記載したファイルを配置しなければならない

サードパーティのサービス

サードパーティのサービスを利用することで、スマホアプリ起動の URL が用意できます。
また、スマホアプリがインストールされていない場合は App Store, Play Store を開くことができます。

URL によるスマホアプリ起動時に特定の画面に遷移

URL にパスやパラメータを付与することで、スマホアプリ起動時に特定の画面に遷移できます。
スマホアプリの起動時に特定の画面に遷移することで、ユーザーにとって使いやすいアプリになります。
このように遷移させる場合、スマホアプリ側で URL のパスやパラメータを解析し、遷移先の画面を表示する処理を実装する必要があります。

スマホアプリの審査

App Store (iOS), Play Store (Android) にスマホアプリを公開する場合、審査が必要です。
審査を通過するためには、各ストアのガイドラインに従い、アプリの品質を高めることが重要です。
審査には時間がかかることもあるため、公開予定日の数日前に提出することが望ましいです。
また、審査で問題があった場合は、修正して再提出できます。

審査期間 App Store (iOS)

  • 1〜2 日程度
  • 以下のような場合、審査期間が長引くこともある
    • 初回提出
    • 大きなアップデート
    • 審査項目への違反
    • 審査の混雑

審査期間 Play Store (Android)

  • 1〜2 日程度
  • 以下のような場合、審査期間が長引くこともある
    • アプリの複雑さ
    • 審査状況

まとめ

  • スマホの状態とスマホアプリの状態は、アプリの動作に影響を与える
  • スマホアプリの画面遷移は、スタックのような状態で管理されている
  • 通知は、ローカル通知とプッシュ通知がある
  • URL によるスマホアプリ起動は、Custom URL Scheme, Universal Links, App Links などがある
  • スマホアプリの審査は、App Store (iOS), Play Store (Android) で公開する際に必要

最後まで読んでいただきありがとうございます。この記事がすこしでもよいと思ったら、Like♥ を押してもらえると励みになります。

Discussion