GEMINI LABEN
LOGS — Interactions APIの開発者ログがGoogle AI Studioのダッシュボードで閲覧できるようになりました。対応する呼び出しのログをそのまま確認できますOMNI — Gemini Omni Flashが公開プレビューで登場。テキストや静止画から720pの3〜10秒動画を生成でき、会話形式での動画編集にも対応しますNANO — Nano Banana 2 Liteが登場。Geminiの画像モデルの中で最速・最も低コストと位置づけられ、大量生成やコスト重視の用途に向きますSSRF — Gemini Enterprise Agent PlatformのAgent Studioで、7月1日以前に作成されたアプリに影響するSSRF脆弱性が修正されましたSTUDIO — Google AI StudioからGemini Omni FlashをAPI経由で試せます。動的な動画ワークフローを自作できますVERTEX — Vertex AIのリリースノートが更新を続け、生成AI機能の追加が進んでいますLOGS — Interactions APIの開発者ログがGoogle AI Studioのダッシュボードで閲覧できるようになりました。対応する呼び出しのログをそのまま確認できますOMNI — Gemini Omni Flashが公開プレビューで登場。テキストや静止画から720pの3〜10秒動画を生成でき、会話形式での動画編集にも対応しますNANO — Nano Banana 2 Liteが登場。Geminiの画像モデルの中で最速・最も低コストと位置づけられ、大量生成やコスト重視の用途に向きますSSRF — Gemini Enterprise Agent PlatformのAgent Studioで、7月1日以前に作成されたアプリに影響するSSRF脆弱性が修正されましたSTUDIO — Google AI StudioからGemini Omni FlashをAPI経由で試せます。動的な動画ワークフローを自作できますVERTEX — Vertex AIのリリースノートが更新を続け、生成AI機能の追加が進んでいます
記事一覧/開発ツール
開発ツール/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-api280ios12android7cross-platform3mobile5swiftui4jetpack-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-06-23
Gemini 3.2 Pro の Function Calling を iOS/Android アプリに統合する実装パターン
Gemini 3.2 Pro の Function Calling を iOS/Android アプリに統合する実装ガイド。SwiftUI・Kotlin 両対応の動くコード例と、個人開発の壁紙アプリで実証した本番設計パターン(コスト・レイテンシ・段階ロールアウト・回帰テスト)を解説します。
開発ツール2026-06-25
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駆動開発
※ アフィリエイトリンクを含みます
もっと見る →