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


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

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

  • デバイス上のモデルは、最大限のプライバシー、無料、オフライン サポートを提供します。
  • クラウド ホスト型の Gemini モデルは、大きなコンテキスト ウィンドウ、高度な 機能、より強力な推論機能を提供します。

Apple プラットフォーム用 Firebase SDK(特に 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. [**Download GoogleService-Info.plist**] をクリックして、構成 ファイルを取得します。

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

    3. [Next] を 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. [Add Package] をクリックします。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 Services] > [AI Logic] に移動します。

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

  3. [Gemini API provider] を選択するよう求められたら、 [Gemini Developer API] を選択することをおすすめします。これにより、無料で簡単に始めることができます。

    後で、いつでも 設定できますAgent Platform Gemini API (formerly Vertex AI) (および課金の要件)。

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

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

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

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

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

    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 コンソールで、 [Security] > [App Check] > [Apps] タブに移動します

    2. アプリを見つけて、オーバーフロー メニュー ()をクリックし、 [Manage debug tokens] を選択します。

    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 にアクセスすることに関するフィードバックを送信する