スタートガイド: Apple の Foundation Models フレームワークを介して Gemini API にアクセスする


WWDC 2026 で、Apple は Foundation Models フレームワークをサードパーティのモデル アダプタに開放しました。つまり、オンデバイス モデルにアクセスする場合と同じ API を使用して、Foundation Models フレームワークを介してクラウドホスト モデル(Gemini など)にアクセスできます。

アプリでは、ユースケースに合わせてモデル インスタンスを切り替えて、リクエストをオンデバイス推論またはクラウド推論にルーティングできます。

  • オンデバイス モデルは、プライバシーの保護、コストの削減、オフラインでのサポートを実現します。
  • クラウドホスト型の Gemini モデルは、大きなコンテキスト ウィンドウ、高度な機能、より強力な推論能力を備えています。

Firebase SDK for Apple プラットフォーム(特に Firebase AI Logic ライブラリ)を使用して、Apple の Foundation Models フレームワークを介してクラウドホスト型の Gemini モデルにアクセスできます。このガイドでは、使用を開始する方法について説明します。

Gemini モデルへのアクセスを保護するため、このガイドでは、開発中であっても重要Firebase App Check を設定する方法についても説明します。

前提条件

  • 最新の Xcode 27 ベータ版をインストールします。

  • Apple プラットフォームのシミュレータまたは実機。どちらも対応するベータ版 OS バージョン(iOS 27 ベータ版など)を実行している必要があります。

  • SwiftUI インターフェースを使用する Apple プラットフォーム アプリの新しい Xcode プロジェクト。

サポートされている Gemini モデル

Apple の Foundation Models フレームワークとの統合では、次の Gemini モデルがサポートされています。

  • 汎用モデル

    • gemini-3.1-pro-preview
    • gemini-3.6-flash(および以前の gemini-3.5-flash
    • gemini-3.5-flash-lite(および以前の gemini-3.1-flash-lite
  • 画像生成モデル

    • gemini-3-pro-image(別名「Nano Banana Pro」)
    • gemini-3.1-flash-image(別名「Nano Banana 2」)
    • gemini-3.1-flash-lite-image(別名「Nano Banana 2 Lite」)

Gemini Live API モデルと Imagen モデルはサポートされていません。Gemini 2.5 モデルは技術的にはサポートされていますが、新しいプロジェクトにはおすすめしません。また、これらのガイドで説明されていない特別な構成が必要です。

ステップ 1: Firebase プロジェクトを作成する

この統合を試すには、新しい Firebase プロジェクトから始めることをおすすめします。

  1. Firebase コンソールにログインします。

  2. [新しい Firebase プロジェクトを作成] をクリックします。

  3. 画面に表示される手順に沿って設定します。Google アナリティクスを有効にする必要はありません

ステップ 2: アプリを Firebase に接続する

アプリを Firebase に接続するには、アプリを Firebase プロジェクトに登録し、構成ファイルをコードベースに追加する必要があります。

  1. プロジェクトの概要ページの中央にある iOS+ アイコンをクリックして、設定ワークフローを起動します。

  2. アプリを登録します。

    1. アプリのバンドル ID を入力します。Xcode でビルドしているプロジェクトのバンドル ID と一致していることを確認します。

    2. [アプリの登録] をクリックします。

  3. Firebase 構成ファイルを追加します。このファイルには、Firebase SDK が Firebase プロジェクトに接続するための設定が含まれています。

    1. [ダウンロードGoogleService-Info.plist] をクリックして、構成ファイルを取得します。

    2. GoogleService-Info.plist を Xcode プロジェクトのルートに移動し、すべてのターゲットに追加します。

    3. Firebase コンソールで [次へ] をクリックします。

  4. コンソールのワークフローには、Firebase SDK をアプリに追加するための一般的な手順が記載されています。Firebase AI Logic の具体的な手順については、このガイドの次のステップに進んでください。

ステップ 3: Firebase ライブラリを追加してアプリで Firebase を初期化する

  1. Swift Package Manager を使用して、必要な Firebase ライブラリを追加します。

    1. Xcode でアプリのプロジェクトを開いたまま、[File] > [Add Packages] の順に選択します。

    2. Firebase Apple SDK リポジトリ URL を入力します。

      https://github.com/firebase/firebase-ios-sdk
      
    3. 依存関係ルールとして [Branch] を選択し、「wwdc26-preview」と入力します。

    4. [パッケージを追加] をクリックします。Xcode が依存関係を解決してダウンロードします。

    5. メッセージが表示されたら、FirebaseAILogic ライブラリと FirebaseAppCheck ライブラリをアプリ ターゲットに追加します。

  2. アプリの起動時に Firebase を初期化するには、アプリのメイン エントリ ポイントに次のコードを追加します。

    import SwiftUI
    import FirebaseCore
    
    @main
    struct YourApp: App {
      init() {
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    

ステップ 4: Firebase サービスを有効にして保護する

アプリが Firebase を使用するように構成されたので、Firebase AI Logic サービスを有効にして、Firebase App Check を使用して関連する API へのアクセスを保護する必要があります。

ステップ 4a: Firebase プロジェクトで Firebase AI Logic を設定する

  1. Firebase コンソールで、[AI サービス] > [AI ロジック] に移動します。

  2. [開始する] をクリックして、設定ガイド付きワークフローを起動します。

  3. [Gemini API プロバイダ] を選択するよう求められたら、Gemini Developer API を選択することをおすすめします。これにより、無料で迅速に始めることができます。

    後からいつでも Vertex AI Gemini API を設定できます(お支払いに関する要件も同様です)。

  4. ワークフローを続行して、Firebase AI Logic に必要な API と関連サービスを設定します。

    2026 年 7 月上旬より、ワークフローのこのステージでは、アプリから直接アクセスされたときに Gemini API を保護するのに役立つ重要なサービスである AI Logic に対して Firebase App Check が自動的に適用されます。開始手順(このガイドの後半のステップを参照)の一環として、App Check が適用されるときにローカル開発用の App Check デバッグ プロバイダを構成する必要があります。

ステップ 4b: ローカル開発用に App Check デバッグ プロバイダを構成する

ローカル開発では、App Check の適用を維持しながら、証明書をバイパスするように App Check デバッグ プロバイダを構成する必要があります。

  1. Xcode プロジェクトで、Firebase を構成する前に FirebaseAppCheck をインポートし、デバッグ プロバイダの Factory を使用して App Check を初期化します。

    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct YourApp: App {
      init() {
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    
  2. デバッグ トークンを取得します。

    1. シミュレータまたはテストデバイスでアプリを起動します。

    2. Xcode コンソールを開き、App Check デバッグ トークンを探します。例:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. トークン(例: 123a4567-b89c-12d3-e456-789012345678)をコピーします。

  3. デバッグ トークンを App Check に登録します。

    1. Firebase コンソールで、[セキュリティ] > [App Check] > [アプリ] タブに移動します。

    2. アプリを見つけて、オーバーフロー メニュー()をクリックし、[デバッグ トークンを管理] を選択します。

    3. 画面上の手順に沿ってデバッグ トークンを登録します。

デバッグ プロバイダの詳細(新しいデバッグ トークンの取得方法など)については、App Check の公式ドキュメントをご覧ください。

ステップ 5: アプリで AI Logic サービスを初期化する

Gemini API プロバイダをクリックして、このページでプロバイダ固有のコンテンツとコードを表示します。

Firebase と App Check を構成したら、アプリで Firebase AI Logic サービスを初期化できます。

import FoundationModels
import FirebaseCore
import FirebaseAILogic

// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.6-flash")

ステップ 6: Gemini モデルにリクエストを送信する

アプリで Firebase AI Logic の設定、保護、初期化が完了したら、Gemini モデルにリクエストを送信する準備が整います。

次の例は、最も基本的なタイプのリクエスト(テキストのみのプロンプトからテキストを生成する)を示しています。

import FoundationModels
import FirebaseCore
import FirebaseAILogic

// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.6-flash")


// Create a session by injecting the model into Apple's `LanguageModelSession`.
let session = LanguageModelSession(model: model)

// Generate a text response to a prompt.
let response = try await session.respond(to: "Write a story about a magic backpack.")
print(response.content)

Gemini モデルは、画像と PDF の分析構造化された JSON 出力の生成画像の生成(「Nano Banana」モデルを使用)など、他のタイプのリクエストもサポートしています。これらのタイプのリクエストの例については、ドキュメントまたはサンプルアプリをご覧ください。

レスポンスをストリーミングする

モデル生成からの結果全体を待つのではなく、ストリーミングを使用して部分的な結果を処理することで、インタラクションを高速化できます。レスポンスをストリーミングするには、respond(to:) ではなく streamResponse(to:) を使用します。

import FoundationModels
import FirebaseCore
import FirebaseAILogic

// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.6-flash")


// Create a session by injecting the model into Apple's `LanguageModelSession`.
let session = LanguageModelSession(model: model)

// Generate a streamed text response to a prompt.
// To stream the response, use `streamResponse(to:)` instead of `respond(to:)`
let stream = session.streamResponse(to: "Write a story about a magic backpack.")
var response = ""
for try await snapshot in stream {
  // The snapshot contains *all* content generated so far.
  response = snapshot.content
}

次のステップ

  • Apple の Foundation Models フレームワークを介して Gemini API にアクセスする際に利用可能な機能を確認します。
  • 思考レベル(「推論」)の設定など、レスポンスを制御するためのモデルの構成方法について学習します。
  • 最新情報のグラウンディングなど、モデルにツールを提供する方法を学習します。
  • Firebase App Check と、リソースを保護する方法についてご確認ください。


Apple の Foundation Models フレームワークを介した Gemini API へのアクセスに関するフィードバックを送信する