第22回|Google Cloudとの連携:APIキー設定と利用例[AI]


⚙️ 準備と環境設定

本記事では、Google Cloud Platform(GCP)とAndroidアプリを連携させる方法を解説します。特にCloud Translation APIやVision APIをComposeとKotlinで活用する手順に焦点を当てます。

Android Studio Otter
Android Studio Otter

1. GCPプロジェクト作成とAPI有効化

Google Cloud Consoleにアクセスし、新しいプロジェクトを作成します。次に「APIとサービス」から以下を有効化します:

  • Cloud Translation API
  • Cloud Vision API
  • 必要に応じて他のAI系API

これにより、アプリ側で翻訳や画像解析などのAI機能を利用可能になります。

2. サービスアカウントとAPIキー取得

「サービスアカウント」から新規作成し、JSON形式のキーをダウンロードします。このJSONファイルはAndroid Studioの app/src/main/res/raw/ 配下に配置します。APIキーを直接埋め込む方法もありますが、セキュリティ上サービスアカウントのJSONを利用するのが推奨です。

3. Gradle依存関係追加

dependencies {
    implementation "com.google.cloud:google-cloud-translate:2.23.2"
    implementation "com.google.cloud:google-cloud-vision:2.24.1"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3"
}

説明:Cloud TranslationとVision API用のライブラリを導入します。非同期処理はCoroutinesを使用します。


🤖 Geminiによる支援の使い方

Gemini AIを活用すると、APIキーを使ったCloud TranslationやVision APIの呼び出しサンプルコードを生成できます。「Composeで翻訳ボタンと画像解析機能を作るKotlinコードを生成」と指示すれば、UIとAPI呼び出し処理をまとめて提案してくれます。これにより初心者でも安全にAPI連携の実装が可能です。


💡 Kotlinでの実装例

以下はCloud Translation APIとVision APIをComposeで利用する基本例です。

1. Cloud Translation API呼び出し

import com.google.cloud.translate.Translate
import com.google.cloud.translate.TranslateOptions
import com.google.cloud.translate.Translation

suspend fun translateText(text: String, targetLang: String = "ja"): String {
    val translate: Translate = TranslateOptions.getDefaultInstance().service
    val translation: Translation = translate.translate(
        text,
        Translate.TranslateOption.targetLanguage(targetLang)
    )
    return translation.translatedText
}

説明:非同期処理で翻訳を実行。Kotlin Coroutinesを利用することでComposeのUIスレッドをブロックせずに処理できます。

2. Vision APIで画像ラベル検出

import com.google.cloud.vision.v1.AnnotateImageRequest
import com.google.cloud.vision.v1.ImageAnnotatorClient
import com.google.cloud.vision.v1.Feature
import com.google.protobuf.ByteString
import java.io.File

suspend fun detectLabels(imageFile: File): List {
    val imageBytes = ByteString.readFrom(imageFile.inputStream())
    val feature = Feature.newBuilder().setType(Feature.Type.LABEL_DETECTION).build()
    val request = AnnotateImageRequest.newBuilder()
        .addFeatures(feature)
        .setImage(com.google.cloud.vision.v1.Image.newBuilder().setContent(imageBytes).build())
        .build()

    ImageAnnotatorClient.create().use { client ->
        val response = client.batchAnnotateImages(listOf(request))
        val labels = response.responsesList.first().labelAnnotationsList
        return labels.map { it.description }
    }
}

説明:画像ファイルをVision APIに渡してラベル検出を行います。結果はラベル文字列リストとして返却され、Compose UIで表示可能です。

3. Compose UIでの利用例

@Composable
fun TranslateAndDetectScreen() {
    var inputText by remember { mutableStateOf("") }
    var translatedText by remember { mutableStateOf("") }
    var labels by remember { mutableStateOf(listOf()) }

    Column(modifier = Modifier.padding(16.dp)) {
        TextField(
            value = inputText,
            onValueChange = { inputText = it },
            label = { Text("翻訳するテキスト") }
        )
        Spacer(modifier = Modifier.height(8.dp))
        Button(onClick = {
            CoroutineScope(Dispatchers.IO).launch {
                translatedText = translateText(inputText)
            }
        }) { Text("翻訳") }
        Text("翻訳結果: $translatedText", modifier = Modifier.padding(top = 8.dp))
        Spacer(modifier = Modifier.height(16.dp))
        Button(onClick = {
            // ここで画像ファイル選択後 detectLabels を呼ぶ
        }) { Text("画像ラベル検出") }
        labels.forEach { label ->
            Text(text = label)
        }
    }
}

説明:ユーザー入力テキストを翻訳し、画像を選択してVision APIでラベル検出を行うCompose画面例です。Gemini AIを利用すると、このようなUI+API呼び出しサンプルを自動生成可能です。


🧩 FirebaseまたはCloudとの連携

Cloud TranslationやVision APIをAndroidアプリに安全に組み込むポイント:

  • JSONサービスアカウントの安全管理:res/raw/ 配下に配置
  • Gradleで必要ライブラリの依存関係を追加
  • Coroutinesを使った非同期処理でUIスレッドをブロックしない
  • Gemini AIを活用してUIとAPI呼び出しコードを自動生成し、実装効率を向上
  • 運用環境ではAPIキーやサービスアカウント情報を安全に保管し、Gitに含めない

📘 まとめ

第22回では、Google Cloud APIとAndroidアプリを連携する手順を解説しました。Cloud TranslationやVision APIをKotlinとComposeで活用する方法、APIキー管理、Gemini AIを使ったコード生成の活用例を紹介しました。これにより、初心者でもクラウドAI機能を安全かつ効率的にアプリに組み込むことが可能です。


🤖Android開発(Otter)[AI]Android Studio Otter × Gemini × Firebase × Google Cloud 開発支援ブログ一覧 Android Studio Otter 🩵【第1部】導入編:Android Studio Otterの準備と基本操作(1〜5回) ・ 第1回|A…
続きを読む
 zesys.net
🤖Android開発(Otter)[AI]


「※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。」

広告

迷子探偵やもやも [AI]

探偵はいつも迷子ですw

シェアする