GEMINI LABEN
SIRI — WWDC 2026で刷新版SiriがGoogle Geminiモデルで動くと確定。ただしEUではDMAによりiOS 27時点で提供されませんFLASH3.5 — Gemini 3.5 FlashがGA。エージェント・コーディングで持続的なフロンティア性能を発揮する最上位FlashモデルですIMAGE-GA — Gemini 3.1 Flash Image / 3.1 Pro Imageがネイティブ視覚モデルとしてGA。preview版は6/25に終了予定MANAGED-AGENTS — Gemini APIでManaged Agentsが公開プレビュー。Googleホストの隔離Linuxサンドボックスで自律エージェントを構築できますFILE-SEARCH — File Searchがマルチモーダル対応。gemini-embedding-2で画像のネイティブ埋め込み・検索が可能になりましたDEPRECATION — gemini-3.1-flash-image-preview / gemini-3-pro-image-previewは6/25に停止。GA版への移行をお早めにSIRI — WWDC 2026で刷新版SiriがGoogle Geminiモデルで動くと確定。ただしEUではDMAによりiOS 27時点で提供されませんFLASH3.5 — Gemini 3.5 FlashがGA。エージェント・コーディングで持続的なフロンティア性能を発揮する最上位FlashモデルですIMAGE-GA — Gemini 3.1 Flash Image / 3.1 Pro Imageがネイティブ視覚モデルとしてGA。preview版は6/25に終了予定MANAGED-AGENTS — Gemini APIでManaged Agentsが公開プレビュー。Googleホストの隔離Linuxサンドボックスで自律エージェントを構築できますFILE-SEARCH — File Searchがマルチモーダル対応。gemini-embedding-2で画像のネイティブ埋め込み・検索が可能になりましたDEPRECATION — gemini-3.1-flash-image-preview / gemini-3-pro-image-previewは6/25に停止。GA版への移行をお早めに
記事一覧/開発ツール
開発ツール/2026-04-18上級

Gemini API × Kotlin Multiplatform:iOS/Android 共通 AI ロジックの設計から App Store 公開まで

Kotlin Multiplatform(KMP)とGemini APIを組み合わせ、iOS・Android両対応のAI機能を1つのコードベースで実装する完全ガイド。共通ビジネスロジック設計・SwiftUI/Compose UI・本番APIキー管理・マルチモーダル対応まで動作確認済みコードで解説します。

kotlin-multiplatformkmpgemini-api286ios12android9cross-platform3mobile4swiftui4jetpack-compose3

プレミアム記事

iOS アプリと Android アプリ、それぞれに AI 機能を実装しようとすると、同じロジックを Swift と Kotlin で二度書くことになります。私が実際にそれをやってみて感じたのは、「コードの重複よりも、バグ修正や API 変更への対応を2プラットフォームで同時にやる消耗感」でした。

Kotlin Multiplatform(KMP)は、そのコスト構造を根本から変えます。Gemini API を呼ぶロジック、レスポンスのパース、エラーハンドリング、状態管理——これらを共通モジュールに一度書けば、iOS も Android も同じコードで動きます。ネイティブ UI の体験は損なわずに。

ここで扱うのはKMP プロジェクトへの Gemini API 統合を、セットアップから本番デプロイまで動作確認済みのコードで解説します。

KMP + Gemini を選ぶ理由と、避けるべき落とし穴

なぜ Flutter や React Native ではないのか

クロスプラットフォーム開発の選択肢として Flutter や React Native も有力です。ただ、AI 機能を本格的に組み込む際にはそれぞれ課題があります。

Flutter は Dart での Gemini SDK アクセスが限定的で、Google が提供する公式 SDK(Python・JS・Swift・Kotlin)との相性が良くありません。Google が Dart SDK を提供していますが、機能追加が遅れがちです。

React Native は JavaScript ベースで、Gemini の JS SDK をそのまま使えるメリットがありますが、ネイティブのカメラ連携や画像処理パフォーマンスに課題が残ります。

KMP は Kotlin の REST API クライアント(Ktor)を共通モジュールで使い、iOS/Android どちらからも同じビジネスロジックを呼べる点が決定的な優位性です。SwiftUI と Jetpack Compose それぞれでネイティブ UI を書きながら、AI の呼び出し部分は一箇所にまとめられます。

KMP が本当に向いている AI アプリの特徴

  • テキスト生成・チャット・要約など、ネットワーク越しの Gemini API 呼び出しが中心
  • iOS と Android で同じビジネスロジックを持つ(異なるのは UI だけ)
  • 将来的に Desktop(macOS、Windows)や Web への展開を視野に入れている

逆に、デバイス上での推論(Gemini Nano)や、プラットフォーム固有の ML フレームワーク連携が必要な場合は、ネイティブ実装の方が適しています。

プロジェクトセットアップ

必要な環境

  • Android Studio Giraffe 以降(KMP プラグイン対応版)
  • Xcode 15 以降(iOS ビルドに必要)
  • JDK 17 以降
  • Gemini API キー(Google AI Studio で無料取得)

Gradle の設定

新しい KMP プロジェクトは Android Studio の「New Project → Kotlin Multiplatform App」ウィザードで作成できます。生成されたプロジェクトに Gemini API を組み込むための shared/build.gradle.kts の設定は次の通りです。

// shared/build.gradle.kts
 
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
 
plugins {
    alias(libs.plugins.kotlinMultiplatform)
    alias(libs.plugins.androidLibrary)
    kotlin("plugin.serialization") version "2.0.0"
}
 
kotlin {
    androidTarget {
        @OptIn(ExperimentalKotlinGradlePluginApi::class)
        compilerOptions {
            jvmTarget.set(JvmTarget.JVM_11)
        }
    }
 
    listOf(
        iosX64(),
        iosArm64(),
        iosSimulatorArm64()
    ).forEach { iosTarget ->
        iosTarget.binaries.framework {
            baseName = "Shared"
            isStatic = true
        }
    }
 
    sourceSets {
        commonMain.dependencies {
            // Ktor: HTTP クライアント(KMP 全プラットフォーム対応)
            implementation("io.ktor:ktor-client-core:2.3.12")
            implementation("io.ktor:ktor-client-content-negotiation:2.3.12")
            implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.12")
            // Kotlinx Serialization(JSON パース)
            implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
            // Coroutines
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
        }
        androidMain.dependencies {
            // Android 向けの Ktor エンジン
            implementation("io.ktor:ktor-client-okhttp:2.3.12")
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1")
        }
        iosMain.dependencies {
            // iOS 向けの Ktor エンジン(Darwin = Apple プラットフォーム)
            implementation("io.ktor:ktor-client-darwin:2.3.12")
        }
    }
}

なぜ Ktor か: Gemini の公式 Kotlin SDK(com.google.ai.client.generativeai)は Android/JVM 専用で、iOS を含む共通モジュールからはそのままでは使えません。Ktor + Gemini REST API の直接呼び出しにすることで、iOS・Android・Desktop 全プラットフォームで動作します。

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

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
KMP + Gemini API のセットアップと共通モジュール設計に詰まっていた開発者が、Gradle設定・HTTP通信・コルーチン設計の正しいパターンを今日手に入れられる
iOS(SwiftUI)とAndroid(Jetpack Compose)それぞれのUI実装を、共通AIロジックから分離した動くコードで習得し、2つのプラットフォームを1つのコードベースでカバーできる
APIキーのセキュアな管理・レート制限対策・マルチモーダル入力(画像解析)対応まで揃え、本番品質のAI搭載クロスプラットフォームアプリをリリースできる
Stripe による安全な決済 · いつでもキャンセル可能
シェア

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

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

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

関連記事

API / SDK2026-05-12
Gemini 3.2 Pro の Function Calling を iOS/Android アプリに統合する:個人開発 12 年・累計 5,000 万 DL から見えた設計パターン
Gemini 3.2 Pro の Function Calling を iOS/Android アプリに統合する実装ガイド。SwiftUI・Kotlin 両対応のコード例と、12 年の個人開発・累計 5,000 万 DL 事業で実証した本番設計パターンを解説します。
開発ツール2026-04-02
Gemini API × Android Jetpack Compose 完全統合ガイド — Kotlin ネイティブ AI アプリの本番設計パターン
Kotlin + Jetpack Compose でネイティブ Android AI アプリを構築する完全ガイド。Google AI SDK for Android の導入から ViewModel 設計、Multimodal 対応、Room DB 履歴管理、セキュリティ戦略まで本番レベルで解説します。
API / SDK2026-05-05
Gemini APIキーをモバイルアプリに埋め込んではいけない:Firebase App Check で実現する多層防御アーキテクチャ
モバイルアプリでGemini APIを安全に使うためのバックエンド設計パターン。Firebase App Check・Cloud Functions・レートリミット・異常検知を組み合わせた本番グレードの多層防御実装ガイド。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →