RORK LABEN
PLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっていますPLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっています
記事一覧/AIモデル
AIモデル/2026-04-10中級

Rork × Gemini 2.5 Flash 実装ガイド — 超高速・低コストAI推論でレスポンシブなアプリを作る

Rork MaxでGemini 2.5 Flashを組み込み、高速かつ低コストなAI機能を実装する手順です。APIキーの取得、SDKセットアップ、ストリーミング応答、Thinkingモード、画像解析などのマルチモーダル活用、コスト最適化のベストプラクティスまで解説します。

Gemini 2.5 FlashRork Max232Google AI2AI統合2React Native233モバイルAI3Thinking

なぜ Gemini 2.5 Flash を選ぶのか

Googleが提供するGemini APIにはいくつかのモデルが存在しますが、モバイルアプリ開発で今もっとも注目を集めているのが Gemini 2.5 Flash です。従来のGemini 2.5 Proが高品質な長文生成・複雑な推論に優れている一方、Flash は「速度・コスト・精度のバランス」において際立った存在感を示しています。

Rork Maxで作るアプリはユーザーとのリアルタイムなやり取りが多く、AIの応答速度がUXを左右します。Flashを採用することで、ユーザーが「返答を待っている」と感じるストレスを大幅に軽減できます。

主な特徴を整理すると次のようになります。

  • 応答速度: Gemini 2.5 Proの平均5〜10秒に対し、Flash は1〜3秒程度で初回トークンが返る
  • コスト: 入力100万トークンあたり約0.075ドル(Proの約1/5〜1/7)
  • Thinking モード: 複雑な推論が必要な場面では「Thinking」を有効化して精度を確保できる
  • マルチモーダル対応: テキスト・画像・音声・動画の入力に対応

AI機能をアプリに組み込む際は「どのモデルを使うか」が開発コストとユーザー体験に直結します。Rork MaxプロジェクトにGemini 2.5 Flashを統合する具体的な手順を順を追って整理していきます。

事前準備:Google AI API キーの取得

実装を始める前に、Google AI StudioでAPIキーを取得しておく必要があります。

  1. Google AI Studio にアクセスし、Googleアカウントでログイン
  2. 左上の「Get API Key」ボタンをクリック
  3. 「Create API Key」を選択し、使用するGCPプロジェクトを指定
  4. 生成されたAPIキーを安全な場所にコピー

⚠️ セキュリティ上の注意: APIキーはソースコードに直接記述しないでください。Rork Maxプロジェクトでは、Supabaseの環境変数またはCloudflare WorkersのSecretとして管理するのが安全です。

Gemini 2.5 Flash の SDK セットアップ

Rork Maxのプロジェクトは内部的にExpo(React Native)で動作しています。Google AI JavaScript SDKを追加することで、Gemini APIを呼び出せるようになります。

# Rork MaxプロジェクトのルートディレクトリでSDKをインストール
npm install @google/generative-ai

インストール後、API呼び出しの共通ファイルを作成します。

// lib/gemini.ts — Gemini 2.5 Flash クライアントの初期化
 
import { GoogleGenerativeAI } from "@google/generative-ai";
 
// 環境変数からAPIキーを読み込む(ハードコード厳禁)
const API_KEY = process.env.EXPO_PUBLIC_GEMINI_API_KEY || "";
 
const genAI = new GoogleGenerativeAI(API_KEY);
 
/**
 * Gemini 2.5 Flash モデルを取得するヘルパー関数
 * thinkingBudget を指定すると Thinking モードが有効になる
 */
export function getFlashModel(thinkingBudget?: number) {
  return genAI.getGenerativeModel({
    model: "gemini-2.5-flash-preview-04-17",
    generationConfig: thinkingBudget
      ? {
          thinkingConfig: {
            thinkingBudget, // 0 = 無効, 1024〜8192 = Thinking有効(トークン予算)
          },
        }
      : undefined,
  });
}
 
// 期待する出力: GoogleGenerativeAIのモデルインスタンス

基本的なテキスト生成の実装

最もシンプルなユースケースから始めましょう。ユーザーの入力に対してAIが返答するテキスト生成です。

// screens/AIChatScreen.tsx の一部
 
import { getFlashModel } from "../lib/gemini";
import { useState } from "react";
import { View, TextInput, Button, Text, ScrollView } from "react-native";
 
export default function AIChatScreen() {
  const [input, setInput] = useState("");
  const [response, setResponse] = useState("");
  const [loading, setLoading] = useState(false);
 
  async function handleSend() {
    if (!input.trim()) return;
    setLoading(true);
    setResponse("");
 
    try {
      // Thinking不使用(高速レスポンス優先)
      const model = getFlashModel();
      const result = await model.generateContent(input);
      const text = result.response.text();
      setResponse(text);
    } catch (error) {
      console.error("Gemini API error:", error);
      setResponse("エラーが発生しました。しばらく経ってから再試行してください。");
    } finally {
      setLoading(false);
    }
  }
 
  return (
    <View style={{ flex: 1, padding: 16 }}>
      <ScrollView style={{ flex: 1 }}>
        <Text style={{ fontSize: 16 }}>{response}</Text>
      </ScrollView>
      <TextInput
        value={input}
        onChangeText={setInput}
        placeholder="質問を入力..."
        style={{ borderWidth: 1, borderRadius: 8, padding: 12, marginBottom: 8 }}
      />
      <Button
        title={loading ? "生成中..." : "送信"}
        onPress={handleSend}
        disabled={loading}
      />
    </View>
  );
}
 
// 期待する出力: テキスト入力→AIレスポンス表示が動作するシンプルなチャット画面

ストリーミング応答でUXを向上させる

長い文章の生成では、完了を待つより**ストリーミング(逐次表示)**のほうがユーザー体験が格段に向上します。Gemini 2.5 FlashはSSE(Server-Sent Events)形式でのストリーミングに対応しています。

// ストリーミングを使った実装例
 
async function generateWithStreaming(prompt: string, onChunk: (text: string) => void) {
  const model = getFlashModel();
 
  // generateContentStream を使うとトークンを逐次受け取れる
  const stream = await model.generateContentStream(prompt);
 
  for await (const chunk of stream.stream) {
    const chunkText = chunk.text();
    if (chunkText) {
      onChunk(chunkText); // 受け取ったテキストをコールバックで渡す
    }
  }
}
 
// 使い方
await generateWithStreaming("React Nativeのパフォーマンス最適化のコツを教えて", (chunk) => {
  setResponse((prev) => prev + chunk); // 逐次 state を更新
});
 
// 期待する出力: テキストが1文字ずつではなく段落単位で流れるように表示される

この実装にするだけで、ユーザーが「AIが考えている」のをリアルタイムで見られるようになり、離脱率が下がります。

Thinking モードで複雑な問題を解く

「数学の計算」「多段推論が必要なQ&A」「コードのデバッグ提案」など、精度が求められる場面ではThinkingモードを有効にします。

// Thinkingモードを有効にした実装例
 
async function generateWithThinking(prompt: string): Promise<string> {
  // thinkingBudget: 使用するThinkingトークンの上限
  // 1024 = 軽めの推論, 8192 = 深い推論(応答時間増加・コスト増)
  const model = getFlashModel(2048);
 
  const result = await model.generateContent({
    contents: [{ role: "user", parts: [{ text: prompt }] }],
  });
 
  return result.response.text();
}
 
// 使い方(コードレビュー・バグ解析などに適している)
const analysis = await generateWithThinking(
  "このReact Nativeコンポーネントのパフォーマンス問題を分析して改善案を提案してください:\n\n" +
    "..." // ユーザーのコードを挿入
);
 
// 期待する出力: 単純な回答より詳細で構造化された分析結果が返る

マルチモーダル機能:画像をAIで解析する

Gemini 2.5 Flashは画像入力にも対応しています。例えば、カメラで撮影した食品の栄養情報を解析するアプリや、レシートをスキャンして自動仕訳するアプリに活用できます。

// 画像解析の実装例
 
import * as ImagePicker from "expo-image-picker";
import * as FileSystem from "expo-file-system";
 
async function analyzeImage(imageUri: string, prompt: string): Promise<string> {
  const model = getFlashModel();
 
  // 画像をBase64に変換
  const base64 = await FileSystem.readAsStringAsync(imageUri, {
    encoding: FileSystem.EncodingType.Base64,
  });
 
  const result = await model.generateContent([
    {
      inlineData: {
        mimeType: "image/jpeg",
        data: base64,
      },
    },
    { text: prompt },
  ]);
 
  return result.response.text();
}
 
// 使い方
const result = await analyzeImage(
  photoUri,
  "この画像の食品の推定カロリーと主要栄養素を教えてください"
);
 
// 期待する出力: 「このメニューには約500kcal含まれており、タンパク質30g...」のような回答

コスト最適化のベストプラクティス

Gemini 2.5 Flashは安価ですが、トークン消費を最小化することでさらにコストを抑えられます。

システムプロンプトの最適化:繰り返し使うシステムプロンプトは短く簡潔に書く。毎回100トークン節約できれば、1万リクエストで100万トークン削減できます。

Thinking の使い分け:シンプルな質問応答にはThinking不要(thinkingBudget: 0)、複雑な推論には有効化する条件分岐を入れます。

キャッシュの活用:同じプロンプトへの繰り返しリクエストはクライアント側でキャッシュします。AsyncStorageやMMKVに短期キャッシュを保持するだけで、重複APIコールを60〜80%削減できるケースもあります。

プロンプトエンジニアリングの詳細については Rork AIプロンプトエンジニアリング完全マスターガイド でも丁寧に解説していますので、あわせてご参照ください。

全体を振り返って

Gemini 2.5 FlashはRork Maxアプリへの組み込みに非常に適したモデルです。その理由を改めて整理します。

  • 高速:ほとんどのモバイルユースケースで1〜3秒以内に初回レスポンスが返る
  • 安価:Proモデルと比べてトークン単価が大幅に低く、コストコントロールがしやすい
  • Thinkingで精度補完:必要な場面だけThinkingを有効にする柔軟な設計ができる
  • マルチモーダル:テキスト・画像・音声の入力に対応し、アプリの機能幅が広がる

まず lib/gemini.ts を作成して基本的なテキスト生成を動かし、その後ストリーミング→マルチモーダルと段階的に機能を拡張していくアプローチをお勧めします。

Gemini APIのさらに深い活用方法については、Rork × Gemini 2.5 Pro 完全実装ガイド でProモデルを使った長文コンテキスト処理を解説しています。AI機能を活かしたアプリ開発に取り組む方の参考になれば幸いです。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

AI モデル2026-04-07
Rork Max × OpenAI Responses API:ステートフルAIエージェントをモバイルアプリに実装する2026
OpenAI Responses APIを使ってステートフルなAIエージェントをRork Maxアプリに実装する完全ガイド。Web検索・ファイル検索・コードインタプリタなどの組み込みツールをCloudflare Workers経由でモバイルに統合する実践的な設計手法を解説します。
AI モデル2026-04-01
Rork × Gemini Agents SDK — マルチステップAIエージェントをモバイルアプリに統合する実装パターン
Gemini Agents SDKを使ってRorkアプリにマルチステップAIエージェントを統合する方法を徹底解説。Function Calling・セッション管理・ストリーミング・本番運用まで、実装コード付きで体系的に学べる上級ガイドです。
AI モデル2026-07-15
オンデバイス画像認識、React Native の TFLite か Rork Max の Core ML か — 同じ題材で両方組んで決めた選び方
端末内で画像を分類する機能を、React Native に TFLite を積んで作るか、Rork Max のネイティブ Swift と Core ML で作るか。同じ題材を両方で組み、端から端までの内訳を測って選び方を整理しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →