Skip to content

Commit 3eccbe1

Browse files
authored
Merge pull request #49 from joreilly/dependency_updates
Initial changes to migrate to use Firebase AI Logic
2 parents 65c68e1 + c0fbac6 commit 3eccbe1

File tree

18 files changed

+54
-45
lines changed

18 files changed

+54
-45
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
![kotlin-version](https://img.shields.io/badge/kotlin-2.2.0-blue?logo=kotlin)
22

3-
# Vertex AI Compose/Kotlin Multiplatform Sample
3+
# Firebase AI Logic Compose/Kotlin Multiplatform Sample
44

55
Compose/Kotlin Multiplatform sample that makes use of the [Firebase Vertex AI SDK](https://firebase.google.com/products/vertex-ai-in-firebase).
66
The iOS and Android clients share the same Compose UI code but delegate to platform specific Swift and Kotlin code
@@ -41,4 +41,4 @@ The project uses the following multiplatform dependencies
4141
* StarWars (https://github.com/joreilly/StarWars)
4242
* WordMasterKMP (https://github.com/joreilly/WordMasterKMP)
4343
* Chip-8 (https://github.com/joreilly/chip-8)
44-
* Vertex-AI-KMP (https://github.com/joreilly/VertexAI-KMP-Sample)
44+
* FirebaseAILogicKMPSample (https://github.com/joreilly/FirebaseAILogicKMPSample)

composeApp/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ kotlin {
2929
implementation(libs.androidx.activity.compose)
3030

3131
implementation(project.dependencies.platform(libs.firebase.bom))
32-
implementation(libs.firebase.vertexai)
32+
implementation(libs.firebase.ai)
3333
}
3434
commonMain.dependencies {
3535
implementation(libs.kotlinx.serialization)

composeApp/google-services.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"project_info": {
33
"project_number": "1046936014894",
44
"project_id": "vertex-ai-kmp",
5-
"storage_bucket": "vertex-ai-kmp.appspot.com"
5+
"storage_bucket": "vertex-ai-kmp.firebasestorage.app"
66
},
77
"client": [
88
{

composeApp/src/androidMain/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
android:allowBackup="true"
88
android:icon="@mipmap/ic_launcher"
99
android:label="@string/app_name"
10-
android:name=".VertexAIKMPApp"
10+
android:name=".FirebaaseAILogicKMPApp"
1111
android:roundIcon="@mipmap/ic_launcher_round"
1212
android:supportsRtl="true"
1313
android:theme="@android:style/Theme.Material.Light.NoActionBar">

composeApp/src/androidMain/kotlin/dev/johnoreilly/vertexai/VertexAIKMPApp.kt renamed to composeApp/src/androidMain/kotlin/dev/johnoreilly/vertexai/FirebaaseAILogicKMPApp.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import com.google.firebase.FirebaseApp
55
import dev.johnoreilly.vertexai.di.initialiseKoin
66

77

8-
class VertexAIKMPApp : Application() {
8+
class FirebaaseAILogicKMPApp : Application() {
99
override fun onCreate() {
1010
super.onCreate()
1111
FirebaseApp.initializeApp(this)

composeApp/src/androidMain/kotlin/dev/johnoreilly/vertexai/GenerativeModel.android.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package dev.johnoreilly.vertexai
22

33
import com.google.firebase.Firebase
4-
import com.google.firebase.vertexai.type.PublicPreviewAPI
5-
import com.google.firebase.vertexai.type.Schema
6-
import com.google.firebase.vertexai.type.generationConfig
7-
import com.google.firebase.vertexai.vertexAI
4+
import com.google.firebase.ai.type.PublicPreviewAPI
5+
import com.google.firebase.ai.type.Schema
6+
import com.google.firebase.ai.type.generationConfig
7+
import com.google.firebase.ai.ai
8+
import com.google.firebase.ai.type.GenerativeBackend
89

910

1011
class GenerativeModelAndroid : GenerativeModel {
@@ -18,16 +19,16 @@ class GenerativeModelAndroid : GenerativeModel {
1819
)
1920

2021
override suspend fun generateTextContent(prompt: String): String? {
21-
val generativeModel = Firebase.vertexAI.generativeModel(
22-
modelName = "gemini-1.5-flash"
22+
val generativeModel = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
23+
modelName = "gemini-2.5-flash"
2324
)
2425

2526
return generativeModel.generateContent(prompt).text
2627
}
2728

2829
override suspend fun generateJsonContent(prompt: String): String? {
29-
val generativeModel = Firebase.vertexAI.generativeModel(
30-
modelName = "gemini-1.5-flash",
30+
val generativeModel = Firebase.ai.generativeModel(
31+
modelName = "gemini-2.5-flash",
3132
generationConfig = generationConfig {
3233
responseMimeType = "application/json"
3334
responseSchema = jsonSchema
@@ -39,7 +40,7 @@ class GenerativeModelAndroid : GenerativeModel {
3940

4041
@OptIn(PublicPreviewAPI::class)
4142
override suspend fun generateImage(prompt: String): ByteArray? {
42-
val imageModel = Firebase.vertexAI.imagenModel(
43+
val imageModel = Firebase.ai.imagenModel(
4344
modelName = "imagen-3.0-generate-002"
4445
)
4546
val imageResponse = imageModel.generateImages(prompt)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
<resources>
2-
<string name="app_name">VertexAIKMP</string>
2+
<string name="app_name">FirebaseAILogicKMPSample</string>
33
</resources>

composeApp/src/commonMain/kotlin/dev/johnoreilly/vertexai/ui/App.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ fun App() {
1818
Scaffold(
1919
topBar = {
2020
CenterAlignedTopAppBar(title = {
21-
Text("VertexAI-KMP")
21+
Text("FirebaseAILogicKMPSampe")
2222
})
2323
}
2424
) {

composeApp/src/commonMain/kotlin/dev/johnoreilly/vertexai/ui/HomeScreen.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ import coil3.compose.AsyncImage
4343
import coil3.compose.LocalPlatformContext
4444
import coil3.request.ImageRequest
4545
import com.mikepenz.markdown.m3.Markdown
46+
import firebaseailogickmpsample.composeapp.generated.resources.Res
47+
import firebaseailogickmpsample.composeapp.generated.resources.generate_content
48+
import firebaseailogickmpsample.composeapp.generated.resources.generate_image
4649
import org.jetbrains.compose.resources.stringResource
4750
import org.koin.compose.viewmodel.koinViewModel
48-
import vertexai_kmp_sample.composeapp.generated.resources.Res
49-
import vertexai_kmp_sample.composeapp.generated.resources.generate_content
50-
import vertexai_kmp_sample.composeapp.generated.resources.generate_image
5151

5252
@Composable
5353
fun HomeScreen() {

gradle/libs.versions.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
[versions]
2-
agp = "8.11.1"
2+
agp = "8.12.0"
33
androidx-activityCompose = "1.10.1"
44
androidx-ui-tooling = "1.8.3"
5-
coil = "3.2.0"
5+
coil = "3.3.0"
66
compose-multiplatform = "1.8.2"
7-
firebaseBom = "33.16.0"
7+
firebaseBom = "34.1.0"
88
googleServices = "4.4.3"
99
koin = "4.1.0"
1010
kotlin = "2.2.0"
1111
kotlinx-serialization = "1.9.0"
1212
markdownRenderer = "0.35.0"
1313
composeLifecyleRuntime="2.9.1"
14-
skie = "0.10.4"
14+
skie = "0.10.5"
1515

1616
[libraries]
1717
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activityCompose" }
1818
androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "androidx-ui-tooling" }
1919
androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "androidx-ui-tooling" }
2020
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" }
2121
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
22-
firebase-vertexai = { module = "com.google.firebase:firebase-vertexai" }
22+
firebase-ai = { module = "com.google.firebase:firebase-ai" }
2323
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
2424
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koin" }
2525
kotlinx-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core", version.ref = "kotlinx-serialization" }

0 commit comments

Comments
 (0)