Pendahuluan
Google Gemini AI telah menjadi salah satu AI model paling powerful di tahun 2026. Mengintegrasikannya ke aplikasi Android membuka kemungkinan fitur yang luar biasa.
Setup Project
Dependencies
dependencies {
implementation("io.ktor:ktor-client-core:3.2.0")
implementation("io.ktor:ktor-client-okhttp:3.2.0")
implementation("io.ktor:ktor-client-content-negotiation:3.2.0")
implementation("io.ktor:ktor-serialization-kotlinx-json:3.2.0")
}
API Key
Gunakan BuildConfig atau remote config — jangan pernah hardcode API key!Implementasi Ktor Client
object GeminiClient {
private const val BASE_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent"
private val client = HttpClient(OkHttp) {
install(ContentNegotiation) {
json(Json { ignoreUnknownKeys = true })
}
install(HttpTimeout) {
requestTimeoutMillis = 60_000
}
}
suspend fun generateResponse(prompt: String): Result<GeminiResponse> {
return try {
val response = client.post(BASE_URL) {
parameter("key", BuildConfig.GEMINI_API_KEY)
contentType(ContentType.Application.Json)
setBody(GeminiRequest(
contents = listOf(Content(
role = "user",
parts = listOf(Part(text = prompt))
))
))
}
Result.success(response.body())
} catch (e: Exception) {
Result.failure(e)
}
}
}
Fitur Canggih: Multimodal Input
Gemini 2.0 mendukung multimodal — teks + gambar:
suspend fun analyzeImage(imageBitmap: Bitmap, prompt: String): GeminiResponse {
val base64Image = imageBitmap.toBase64()
return client.post(BASE_URL) {
parameter("key", BuildConfig.GEMINI_API_KEY)
setBody(GeminiMultimodalRequest(
contents = listOf(MultimodalContent(
parts = listOf(
Part(text = prompt),
Part(inlineData = InlineData(
mimeType = "image/jpeg",
data = base64Image
))
)
))
))
}.body()
}
Security Best Practice
Kesimpulan
Integrasi Gemini AI ke Android membuka potensi fitur yang luar biasa. Dengan Ktor Client dan arsitektur yang clean, Anda bisa membangun AI-powered app dengan performa tinggi.