App Clip: 主要概念、iOSアプリの軽量版

著者: IT Sectr 公開日: 2026-02-14 読了時間: 12 分

App Clip は、デバイスにインストールしなくても即座に起動するiOSアプリの軽量版です。iOS 14で導入されたこの技術により、ユーザーはNFCタグ、QRコード、またはApp Clip Codeをスキャンすることで、アプリの特定の機能にアクセスできます。App Clipのサイズは10 MBを超えず、起動にかかる時間は2秒未満です。これは、完全なインストールを必要とせずにネイティブアプリと即座にやり取りするためのAppleのソリューションです。

重要なポイント

  • 即時起動 — NFC、QR、またはApp Clip Codeをスキャンして1~2秒でApp Clipが開く
  • サイズ制限 — App Clipのバイナリファイルは圧縮状態で10 MBを超えてはならない
  • App Clip Code — Apple独自のビジュアルコード。NFCタグとURLリンクを内蔵
  • 共有コードベース — App Clipとメインアプリは最小限の追加設定で1つのXcodeプロジェクトを使用
  • 単一タスク — App Clipは1つのアクション(注文、支払い、予約)を実行し、完全版のインストールを提案

App Clipとは?

App Clip は、完全なアプリの小さな部分をインストールせずに起動できるAppleのiOS向け技術です。ユーザーがNFCタグ、QRコード、またはApp Clip Codeをスキャンすると、オペレーティングシステムがApp Clipをダウンロードし、現在の画面の上にカードとして開きます。AppleはApp Clipを “支払い、注文、サインアップ” のシナリオ用に設計しました — 摩擦や待ち時間なしで実行されるべきアクションです。

App Clipは一時的モードで動作します。iOSは限られた期間(通常は数日間、またはユーザーが明示的に削除するまで)App Clipのデータを保存します。ユーザーが同じ機能を再び必要とする場合、App Clipは再ダウンロードされます。Appleは継続的な使用のために完全なアプリのインストールを促進するため、意図的にApp Clipの永続性を制限しています。App Clipで作成されたデータは、CloudKitを介してインストール時に自動的に完全なアプリに転送されます。

実際の例:レストランのテーブルにあるNFCタグをスキャンして注文と支払い(Panera、Pizza Hut)、レンタルスクーターのQRコードをスキャンしてロック解除(Lime、Bird)、駐車メーターのApp Clip Codeで支払い(PayByPhone)、店内の商品をスキャンして購入(Shopify)。これらのシナリオはすべて、インストール手順がないことでメリットを得る取引タスクであるという共通点があります。

起動トリガー:NFC、QR、App Clip Code

App Clipは5つのメカニズムで起動します。最も一般的なのはNFCタグ(タップでApp Clip起動)、QRコード(カメラスキャンで画面下部にApp Clipカード表示)、App Clip Codes(模様のある枠と内蔵NFCタグを持つApple独自のビジュアルコード)です。App ClipはSafari App BannerとiMessageリンクからも起動します。

App Clip Code はAppleの特許技術です。QRコードとは異なり、App Clip Codesは見た目が美しく、ブランドカラーと中央のロゴをサポートし、URLは端の音波のような波形でエンコードされています。コードには内蔵NFCタグが含まれており、視覚スキャンとタップの二重起動メカニズムを提供します。AppleはApp Store Connectポータルを通じてApp Clip Code生成ツールを提供しています。

swift
// SceneDelegate.swift — NSUserActivityを介したApp Clip起動の処理
import UIKit

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?

    func scene(_ scene: UIScene,
                willContinueUserActivityWithType userActivityType: String) {
        // 着信するNSUserActivityの準備
    }

    func scene(_ scene: UIScene,
                continue userActivity: NSUserActivity) {

        guard let invocationURL = userActivity.webpageURL else { return }

        // URLの解析と必要な画面へのナビゲーション
        handleInvocationURL(invocationURL)
    }

    private func handleInvocationURL(_ url: URL) {
        // 例:/order/restaurantID — 注文画面
        // 例:/pay/parkingID — 支払い画面
    }
}

すべてのトリガーは最終的に、呼び出しコンテキストを含むwebpageURLパラメータを持つNSUserActivityを作成します。App ClipはこのURLを解析し、対応する画面を表示します。App Clipは地理位置トリガーもサポートしています — iOSはユーザーが特定の場所(App Clipがあるコーヒーショップの近くなど)にいる場合にApp Clipを提案できます。

SwiftでのApp Clip開発

App Clipの開発は、完全なアプリの既存のXcodeプロジェクトから始まります。新しいApp Clipターゲットを追加します — 同じプロジェクト、同じチーム、ほとんどの共有コードを使用します。App Clipターゲットには、特定の機能に必要なファイル、ストーリーボード、リソースのみが含まれます。Appleは事前構成されたentitlementsとInfo.plistキーを備えたApp Clipテンプレートを提供しています。

swift
// AppClip/ProductViewModel.swift — App Clipと完全なアプリ間の共有ロジック
import Foundation
import StoreKit

class ProductViewModel: ObservableObject {

    @Published var items: [Product] = []
    @Published var total: Decimal = 0

    func checkout() {
        // APIを介した注文送信
    }

    func showInstallPrompt() {
        // 完全なアプリをインストールするためのSKOverlay表示
        guard let scene = UIApplication.shared()
            .connectedScenes
            .first(where: { $0 is UIWindowScene }) as? UIWindowScene else { return }

        let overlay = SKOverlay(configuration: SKOverlay.AppClipConfiguration(
            position: .bottom
        ))
        overlay.present(in: scene)
    }
}

// AppClip/MainViewController.swift — App Clipのメイン画面
class MainViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // App Clipカード用のコンパクトUI
        // サイズ削減のためのSF Symbols使用
        // 現在のトランザクションのデータのみ読み込み
    }

    @IBAction func openFullApp(_ sender: Any) {
        // App Storeでアプリページを開く
        guard let url = URL(string: "https://apps.apple.com/app/id123456789") else { return }
        UIApplication.shared.open(url)
    }
}

App Clipターゲットはメインアプリと同じApple Developer Team IDBundle ID(.Clipサフィックス付き)を使用します。主要なentitlements:com.apple.developer.app-clipおよびURL処理用の関連ドメイン。App ClipはApple Pay、Sign in with Apple、StoreKit(購入用)、Core Locationをサポートしています。一部のフレームワークは利用できません:バックグラウンドモード、HealthKit、Media Library、および一部のセンサーAPI。

サイズ制限と最適化

App Clipのサイズ制限はAppleによって厳格に管理されています — 圧縮状態で10 MB以下。チェックはApp Storeへのアップロード段階で行われ、制限を超えるビルドは却下されます。サイズにはバイナリコード、リソース(ストーリーボード、アセットカタログ)、リンクされたフレームワークが含まれます。SwiftランタイムライブラリはiOSの一部でありカウントされませんが、サードパーティのフレームワークはサイズを増加させます。

最適化方法効果備考
アセットカタログの間引き30~60%単一画像スケール(3x)、未使用のデバイスイディオムを除外
SF Symbols大幅システムアイコンは無料 — カスタムアイコンを含めない
UIKitの代わりにSwiftUI20~30%SwiftUIはリンクするフレームワークが少ない
最小限の依存関係変動App Clip機能に必要なフレームワークのみを含める
オンデマンドリソース変動起動後に重要でないデータ(画像)を読み込む
コードストリッピング10~40%Swiftでのデッドコードストリッピングとモジュール全体の最適化

Xcodeはアーカイブ後にOrganizerでApp Clipサイズレポートを提供します。レポートはサイズをコンポーネント(コード、リソース、フレームワーク)ごとに分類し、推定ダウンロードサイズを表示します。Appleは配信チャネルごとの圧縮のばらつきを考慮して、App Clipを8 MB以内に保つことを推奨しています。

App Clipのユーザーシナリオ

App Clipの使用シナリオは4つの段階で構成されています。発見:ユーザーが物理世界でNFCタグ、QRコード、またはApp Clip Codeに遭遇します。起動:スキャンまたはタップでApp Clipが読み込まれます(2秒未満、通常1秒)。インタラクション:App Clipが単一機能(注文、支払い、予約画面)のカードとして開きます。完了:ユーザーがタスクを完了し、SKOverlayまたはApp Storeリンクを介して完全なアプリをインストールする提案が表示されます。

AppleはApp Clipのプライバシーに特に注意を払っています。システムはApp Clipに対してカメラ、位置情報、通知の許可を個別に要求します。App Clipで作成されたデータ(支払い情報、設定)はローカルに保存され、CloudKitを介して完全なアプリのインストール時に転送されます。App Clipは機密性の高い許可(Health、Motion、Media Library)を要求できません — これらには完全なアプリのインストールが必要です。

重要な機能はSKOverlayで、App Clip画面の下部に表示され、完全なアプリのインストールを提案するネイティブiOS要素です。SKOverlayはApp Storeに移動する必要がなく、現在のアプリのコンテキストで機能します。ユーザーは1タップで完全なアプリをインストールでき、App Clipはインストール後に作成されたすべてのデータを自動的に転送します。

App Clip vs Android Instant App

特性App Clip (iOS)Instant App (Android)
サイズ制限圧縮10 MB合計10 MB
起動方法NFC、QR、App Clip Code、Safari、iMessage、位置情報ディープリンク、Google Play “今すぐ試す”、NFC、QR
開発Xcode + Swift(単一ターゲット)Android Studio + Kotlin(フィーチャーモジュール)
サポートiOS 14+(iPhone、iPod touch)Android 5.0+(API 21+)
データ保存一時的、完全なアプリに転送一時的(cookie API)、転送
収益化Apple Pay、StoreKitGoogle Pay、Google Play Billing
ビジュアルトリガーApp Clip Code(独自形式)標準QRコード

両方の技術 — App ClipとAndroid Instant App — は同じ問題を解決します:インストールなしでネイティブアプリを即座に起動することですが、異なるプラットフォームアプローチを使用します。App Clipはより制限されていますが(iOSのみ、小規模なエコシステム)、Apple PayおよびAppleデバイスエコシステムとの深い統合を提供します。Instant Appsはより広いAndroidのリーチと、追加インフラなしの標準QRコードを含む柔軟なトリガーで優位に立ちます。

よくある質問

App Clipsはどのデバイスで動作しますか?

App ClipsはiOS 14以降が必要で、iPhone 6s以降、iPod touch(第7世代)、A9チップ以降を搭載するすべてのiPadで動作します。App Clip Codeのスキャンは内蔵カメラアプリから利用できます。NFCタグによる起動にはiPhone XR/XS以降が必要です(iPhone 7/8はNFCを読み取れますが、App Clipを起動できません)。

メインアプリなしでApp Clipを公開できますか?

いいえ、App ClipはApp Storeで完全なiOSアプリにリンクされている必要があります。App Clipは独立して公開できません。完全なアプリとApp Clipは同じApple Developer Team IDとBundle ID(.Clipサフィックス付き)を使用します。AppleはApp Clipを完全なアプリへのエントリーポイントとして位置づけており、独立した配布メカニズムとしては位置づけていません。

App Clipのサイズはどのくらいにすべきですか?

App Clipの最大サイズは圧縮10 MBです。AppleはApp Storeへのアップロード時にこの制限を厳格にチェックします。圧縮の違いを考慮して、サイズを8 MB以内に保つことをお勧めします。SF Symbols、SwiftUIを使用し、サードパーティの依存関係を最小限にして制限内に収めます。

App Clipsはプッシュ通知を送信できますか?

いいえ、App Clipsはプッシュ通知を送信できません。Appleはスパムを防ぐためにこの機能を意図的にブロックしています。ローカル通知はApp Clipの短いライフタイム内で許可されています。通知を受け取るには、ユーザーが完全なアプリをインストールする必要があります。これはPWAや完全なネイティブアプリとの重要な違いです。

使用後のApp Clipデータはどうなりますか?

iOSは限られた期間(通常7~30日の非アクティブ状態)App Clipデータを保存します。ユーザーが完全なアプリをインストールすると、データはCloudKitを介して自動的に転送されます。インストールがない場合、iOSはApp Clipとそのデータを削除します。ユーザーは設定の “App Clips” セクションから手動でApp Clipを削除することもできます。

App Clipの開発にはどのくらい時間がかかりますか?

単純なシナリオ(注文+支払い)の場合、既存のiOSアプリにApp Clipを追加するのには通常、1人の開発者で2~4週間かかります。App Clipはメインアプリのコードベースのほとんどを使用するため、ゼロから別のアプリを構築するよりもコストが大幅に低くなります。主な時間はサイズの最適化とトリガーの構成に費やされます。

App Clipで利用可能なフレームワークは?

App ClipはApple Pay、Sign in with Apple、StoreKit、Core Location、MapKit、PushKit(VoIPのみ)をサポートしています。利用不可:HealthKit、ResearchKit、HomeKit、CarPlay、Metal(フルスコープ)、バックグラウンドモード(background fetch、location updates)、Media Library。App Clipはマイクおよび一部のデバイスセンサーにもアクセスできません。

まとめ

  • App Clip — NFC、QR、またはApp Clip Codeを介してインストール不要で起動する軽量iOSアプリ(最大10 MB)
  • トリガー — NFCタグ、QRコード、App Clip Codes、Safari App Banner、iMessageリンク、位置情報
  • Swift開発 — App Clipは完全なアプリとXcodeプロジェクトを共有し、別のターゲットを使用
  • サイズ最適化 — SF Symbols、SwiftUI、リソース間引き、依存関係の最小化で10 MB制限に対応
  • 制限された機能 — App Clipは1つのタスク(支払い、注文、予約)を実行し、完全なアプリのインストールを提案
  • iOSプラットフォーム — iOS 14+で利用可能な技術;Androidの相当品はGoogle Play Instant
  • 最適なシナリオ — 物理世界とのインタラクション:レストラン、スクーターレンタル、駐車場、チケット購入

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください