Skip to content

Commit

Permalink
Merge pull request #221 from mbakgun/feature/coil
Browse files Browse the repository at this point in the history
Impl coil imageloader
  • Loading branch information
mbakgun authored May 23, 2024
2 parents ad7a0bb + 7943e76 commit 481ef84
Show file tree
Hide file tree
Showing 18 changed files with 103 additions and 312 deletions.
2 changes: 1 addition & 1 deletion README-de.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Die Anwendung wurde im MVVM-Konzept mit Kotlin und Jetpack Compose entwickelt. E
- [Koin](https://insert-koin.io/)
- [Kotlinx Serialization](https://kotlinlang.org/docs/serialization.html)
- [Kotlinx Coroutines](https://kotlinlang.org/docs/coroutines-overview.html)
- [Compose ImageLoader](https://github.com/qdsfdhvh/compose-imageloader)
- [Coil](https://coil-kt.github.io/coil/)
- [KMM-ViewModel](https://github.com/rickclephas/KMM-ViewModel)
- [Multiplatform Settings](https://github.com/russhwolf/multiplatform-settings)

Expand Down
2 changes: 1 addition & 1 deletion README-tr.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Kotlin ve Jetpack Compose kullanılarak MVVM konseptinde geliştirtirildi. Netwo
- [Koin](https://insert-koin.io/)
- [Kotlinx Serialization](https://kotlinlang.org/docs/serialization.html)
- [Kotlinx Coroutines](https://kotlinlang.org/docs/coroutines-overview.html)
- [Compose ImageLoader](https://github.com/qdsfdhvh/compose-imageloader)
- [Coil](https://coil-kt.github.io/coil/)
- [KMM-ViewModel](https://github.com/rickclephas/KMM-ViewModel)
- [Multiplatform Settings](https://github.com/russhwolf/multiplatform-settings)

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Application developed in the MVVM concept using Kotlin and Jetpack Compose. Netw
- [Koin](https://insert-koin.io/)
- [Kotlinx Serialization](https://kotlinlang.org/docs/serialization.html)
- [Kotlinx Coroutines](https://kotlinlang.org/docs/coroutines-overview.html)
- [Compose ImageLoader](https://github.com/qdsfdhvh/compose-imageloader)
- [Coil](https://coil-kt.github.io/coil/)
- [KMM-ViewModel](https://github.com/rickclephas/KMM-ViewModel)
- [Multiplatform Settings](https://github.com/russhwolf/multiplatform-settings)

Expand Down
2 changes: 0 additions & 2 deletions androidApp/src/androidMain/kotlin/com/mbakgun/mj/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@ import android.app.Application
import com.mbakgun.mj.di.viewModelModule
import di.initKoin
import org.koin.android.ext.koin.androidContext
import util.appContext

class App : Application() {

override fun onCreate() {
super.onCreate()
initKoin {
androidContext(this@App)
appContext = this@App
modules(viewModelModule)
}
}
Expand Down
2 changes: 0 additions & 2 deletions automotiveApp/src/main/java/com/mbakgun/mj/ui/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@ import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import org.koin.android.ext.android.get
import ui.MjImagesApp
import util.appContext

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
appContext = applicationContext
setComposable()
}

Expand Down
6 changes: 5 additions & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ androidxUiTest = "1.6.7"
koin = "3.6.0-wasm-alpha2"
ktorClient = "3.0.0-wasm2"
kotlinxCoroutines = "1.8.1"
coil3 = "3.0.0-alpha06"

[plugins]
detekt = { id = "io.gitlab.arturbosch.detekt", version = "1.23.6" }
Expand All @@ -15,7 +16,10 @@ androidxUiTestJunit4 = { module = "androidx.compose.ui:ui-test-junit4", version.
androidxUiTestManifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref="androidxUiTest" }
androidxCoreKtx = { module = "androidx.core:core-ktx", version="1.13.1" }
kmmViewmodelCore = { module = "com.rickclephas.kmm:kmm-viewmodel-core", version="1.0.0-ALPHA-21" }
imageLoader = { module = "io.github.qdsfdhvh:image-loader", version="1.8.0" }
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil3" }
coil-compose-core = { module = "io.coil-kt.coil3:coil-compose-core", version.ref = "coil3" }
coil-network-ktor = { module = "io.coil-kt.coil3:coil-network-ktor", version.ref = "coil3" }
coil-mp = { module = "io.coil-kt.coil3:coil", version.ref = "coil3" }
koin = { module = "io.insert-koin:koin-android", version.ref="koin" }
koinCore = { module = "io.insert-koin:koin-core", version.ref="koin" }
koinTest = { module = "io.insert-koin:koin-test", version.ref="koin" }
Expand Down
5 changes: 4 additions & 1 deletion shared/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,10 @@ kotlin {
implementation(libs.kotlinxSerializationCore)

//imageLoading
implementation(libs.imageLoader)
implementation(libs.coil.compose.core)
implementation(libs.coil.compose)
implementation(libs.coil.mp)
implementation(libs.coil.network.ktor)

//coroutines
implementation(libs.kotlinxCoroutinesCore)
Expand Down
8 changes: 2 additions & 6 deletions shared/detekt-baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@
<ID>FunctionNaming:MjImagesApp.kt$@Composable fun PreviewImage(imageUrl: String)</ID>
<ID>FunctionNaming:MjImagesApp.kt$@Composable fun ScrollToTopButton( onClick: () -&gt; Unit, modifier: Modifier = Modifier )</ID>
<ID>FunctionNaming:MjImagesApp.kt$@OptIn(ExperimentalFoundationApi::class) @Composable fun MjImageItem( image: MjImage, showPreviewDialog: (imageUrl: String) -&gt; Unit, )</ID>
<ID>FunctionNaming:MjImagesApp.kt$@OptIn(ExperimentalMaterialApi::class) @Composable fun MjImagesApp( viewModel: MjImagesViewModel )</ID>
<ID>FunctionNaming:MjImagesApp.kt$@OptIn(ExperimentalMaterialApi::class, ExperimentalCoilApi::class) @Composable fun MjImagesApp( viewModel: MjImagesViewModel )</ID>
<ID>FunctionNaming:Theme.kt$@Composable fun AppTheme( useDarkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -&gt; Unit )</ID>
<ID>FunctionNaming:main.ios.kt$fun MainViewController(viewModel: MjImagesViewModel): UIViewController</ID>
<ID>LongMethod:MjImagesApp.kt$@OptIn(ExperimentalMaterialApi::class) @Composable fun MjImagesApp( viewModel: MjImagesViewModel )</ID>
<ID>LongMethod:MjImagesApp.kt$@OptIn(ExperimentalMaterialApi::class, ExperimentalCoilApi::class) @Composable fun MjImagesApp( viewModel: MjImagesViewModel )</ID>
<ID>MagicNumber:Colors.kt$0xFF1F1B16</ID>
<ID>MagicNumber:Colors.kt$0xFF3E2D16</ID>
<ID>MagicNumber:Colors.kt$0xFF452B00</ID>
Expand All @@ -28,10 +28,7 @@
<ID>MagicNumber:Colors.kt$0xFFFFB951</ID>
<ID>MagicNumber:Colors.kt$0xFFFFFBFF</ID>
<ID>MagicNumber:Colors.kt$0xFFFFFFFF</ID>
<ID>MagicNumber:ImageLoader.kt$0.25</ID>
<ID>MagicNumber:ImageLoader.kt$1024</ID>
<ID>MagicNumber:ImageLoader.kt$32</ID>
<ID>MagicNumber:ImageLoader.kt$50</ID>
<ID>MagicNumber:ImageLoader.kt$512L</ID>
<ID>MagicNumber:MjImagesApp.kt$.2f</ID>
<ID>MagicNumber:MjImagesApp.kt$.8f</ID>
Expand All @@ -43,6 +40,5 @@
<ID>UnusedPrivateProperty:build.gradle.kts$val jvmMain by getting { dependencies { implementation(project(":shared")) implementation(compose.desktop.currentOs) } }</ID>
<ID>UnusedPrivateProperty:build.gradle.kts$val wasmJsMain by getting { dependencies { implementation(compose.runtime) implementation(compose.foundation) implementation(project(":shared")) } }</ID>
<ID>UnusedPrivateProperty:build.gradle.kts$val wasmJsMain by getting { dependencies { implementation(libs.ktorClientWasmJs) } }</ID>
<ID>UseCheckOrError:ImageLoader.kt$throw IllegalStateException("Unsupported operating system")</ID>
</CurrentIssues>
</SmellBaseline>
Original file line number Diff line number Diff line change
@@ -1,23 +1,20 @@
package ui

import android.content.Context
import androidx.compose.ui.platform.LocalContext
import data.source.MjImagesDataSource
import data.source.remote.model.MjImageResponse
import data.source.remote.model.MjImagesResponse
import di.initKoin
import org.koin.android.ext.koin.androidContext
import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.dsl.module
import util.appContext
import java.io.IOException

// setAppContext for ImageLoader &-init koin - mock response - return viewModel
fun initAppAndMockViewModel(
context: Context,
dataSource: MjImagesDataSource.Remote? = null
): MjImagesViewModel {
appContext = context.applicationContext
return initKoin {
androidContext(androidContext = context)
if (dataSource != null) {
Expand Down
43 changes: 0 additions & 43 deletions shared/src/androidMain/kotlin/util/ImageLoader.kt

This file was deleted.

Loading

0 comments on commit 481ef84

Please sign in to comment.