Skip to content

Commit

Permalink
Merge pull request #29 from viethua99/issue/ios-network
Browse files Browse the repository at this point in the history
[KMP] Fix iOS Ktor network issues
  • Loading branch information
viethua99 authored Mar 3, 2024
2 parents 840fa30 + 019955e commit 094709e
Show file tree
Hide file tree
Showing 13 changed files with 71 additions and 46 deletions.
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,14 @@ Go to the [Releases](https://github.com/viethua99/KMP-Stable-Diffusion/releases)
| <img width="320" src="docs/images/android_tti_feature.gif" /> | Coming soon | Coming soon |

## 👀 Screenshots
### Android

| <img width="320" src="docs/images/android_screenshot_1.png" /> | <img width="320" src="docs/images/android_screenshot_2.png" /> | <img width="320" src="docs/images/android_screenshot_3.png" /> | <img width="320" src="docs/images/android_screenshot_4.png" /> |
|----------------------------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------|
### iOS
| Platform | Home (1) | Home (2) | Generate | Detail |
|----------|----------------------------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------|
| Android | <img width="320" src="docs/images/android_screenshot_1.png" /> | <img width="320" src="docs/images/android_screenshot_2.png" /> | <img width="320" src="docs/images/android_screenshot_3.png" /> | <img width="320" src="docs/images/android_screenshot_4.png" /> |
| iOS | <img width="320" src="docs/images/ios_screenshot_1.png" /> | <img width="320" src="docs/images/ios_screenshot_2.png" /> | <img width="320" src="docs/images/ios_screenshot_3.png" /> | <img width="320" src="docs/images/ios_screenshot_4.png" /> |

| Comingsoon | Comingsoon | Comingsoon |
|------------|-------------|------------|

## Support Styles:
## 🎨 Support Styles

| Style | Sample | Style | Sample |
|--------------|-------------------------------------------------------------------------------|--------------|--------------------------------------------------------------------------------|
Expand Down
1 change: 1 addition & 0 deletions composeApp/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ kotlin {

// Ktor Dependencies for API network
implementation(libs.ktor.client.cio)
implementation(libs.ktor.client.okhttp)

// Koin Dependencies for dependency injection
implementation(libs.koin.android)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
package com.vproject.stablediffusion.di

import com.vproject.stablediffusion.util.TestUtil
import io.ktor.client.HttpClient
import io.ktor.client.engine.okhttp.OkHttp
import io.ktor.client.plugins.HttpTimeout
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.serialization.kotlinx.json.json
import kotlinx.serialization.json.Json
import org.koin.dsl.module

actual fun platformModule() = module {
single { TestUtil(get()) }

single {
HttpClient(OkHttp) {
install(ContentNegotiation) {
json(Json { ignoreUnknownKeys = true })
}

install(HttpTimeout) {
requestTimeoutMillis = 120000
connectTimeoutMillis = 120000
socketTimeoutMillis = 120000
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.vproject.stablediffusion.network

class HttpClientAndroid {
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.vproject.stablediffusion.di

import com.vproject.stablediffusion.BuildKonfig
import com.vproject.stablediffusion.database.createDatabase
import com.vproject.stablediffusion.database.dao.MyDao
import com.vproject.stablediffusion.database.sqlDriverFactory
Expand All @@ -13,20 +12,6 @@ import com.vproject.stablediffusion.presentation.screen.project.ProjectModel
import com.vproject.stablediffusion.presentation.screen.setting.SettingModel
import com.vproject.stablediffusion.presentation.screen.home.HomeModel
import com.vproject.stablediffusion.presentation.screen.detail.DetailModel
import io.ktor.client.HttpClient
import io.ktor.client.engine.cio.CIO
import io.ktor.client.plugins.DefaultRequest
import io.ktor.client.plugins.HttpTimeout
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.client.plugins.logging.LogLevel
import io.ktor.client.plugins.logging.Logging
import io.ktor.client.request.accept
import io.ktor.client.request.header
import io.ktor.client.request.headers
import io.ktor.http.ContentType
import io.ktor.http.HttpHeaders
import io.ktor.serialization.kotlinx.json.json
import kotlinx.serialization.json.Json
import org.koin.core.context.startKoin
import org.koin.core.module.Module
import org.koin.core.module.dsl.factoryOf
Expand Down Expand Up @@ -64,27 +49,6 @@ fun repositoryModule() = module {
}

fun remoteModule() = module {
// Network Dependencies
single {
HttpClient {
install(ContentNegotiation) {
json( Json { ignoreUnknownKeys = true })
}

install(HttpTimeout) {
requestTimeoutMillis = 120000
connectTimeoutMillis = 120000
socketTimeoutMillis = 120000
}

// install(DefaultRequest) {
// headers {
// append("Authorization", BuildKonfig.STABLE_DIFFUSION_API_KEY)
// }
// }
}
}

single<StableDiffusionApi> { KtorStableDiffusionApi(client = get()) }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ private fun HomeSearch() {
Box(Modifier.weight(1f)) {
if ("".isEmpty()) {
Text(
modifier = Modifier,
modifier = Modifier.align(Alignment.CenterStart),
text = "Popular Searches: Dragon Year",
style = TextStyle(
color = MaterialTheme.colorScheme.onSurface,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,27 @@
package com.vproject.stablediffusion.di

import com.vproject.stablediffusion.util.TestUtil
import io.ktor.client.HttpClient
import io.ktor.client.plugins.HttpTimeout
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.serialization.kotlinx.json.json
import kotlinx.serialization.json.Json
import org.koin.dsl.module

actual fun platformModule() = module {
single { TestUtil() }

single {
HttpClient {
install(ContentNegotiation) {
json( Json { ignoreUnknownKeys = true })
}

install(HttpTimeout) {
requestTimeoutMillis = 120000
connectTimeoutMillis = 120000
socketTimeoutMillis = 120000
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
package com.vproject.stablediffusion.di

import com.vproject.stablediffusion.util.TestUtil
import io.ktor.client.HttpClient
import io.ktor.client.engine.darwin.Darwin
import io.ktor.client.plugins.HttpTimeout
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.serialization.kotlinx.json.json
import kotlinx.serialization.json.Json
import org.koin.dsl.module

actual fun platformModule() = module {
single { TestUtil() }
single { TestUtil() }

single {
HttpClient(Darwin) {
install(ContentNegotiation) {
json(Json { ignoreUnknownKeys = true })
}

install(HttpTimeout) {
requestTimeoutMillis = 120000
connectTimeoutMillis = 120000
socketTimeoutMillis = 120000
}
}
}
}
Binary file added docs/images/ios_screenshot_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/ios_screenshot_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/ios_screenshot_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/ios_screenshot_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }
ktor-client-auth = { module = "io.ktor:ktor-client-auth", version.ref = "ktor" }
ktor-client-js = { module = "io.ktor:ktor-client-js", version.ref = "ktor" }
#ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin-android" }
Expand Down

0 comments on commit 094709e

Please sign in to comment.