Skip to content

Commit 27eff17

Browse files
updated kotlin to 1.6.0
1 parent 5057d01 commit 27eff17

13 files changed

Lines changed: 37 additions & 76 deletions

File tree

project-files/Portfolio/buildSrc/src/main/java/io/github/amanshuraikwar/nxtbuz/buildSrc/dependencies.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ object Libs {
1313
const val coilCompose = "io.coil-kt:coil-compose:1.3.1"
1414

1515
object Ktor {
16-
private const val version = "1.6.1"
16+
private const val version = "2.0.0-beta-1"
17+
const val json = "io.ktor:ktor-serialization-kotlinx-json:$version"
18+
const val contentNegotiation = "io.ktor:ktor-client-content-negotiation:$version"
1719
const val clientCore = "io.ktor:ktor-client-core:$version"
1820
const val clientJson = "io.ktor:ktor-client-json:$version"
1921
const val clientLogging = "io.ktor:ktor-client-logging:$version"
@@ -27,8 +29,9 @@ object Libs {
2729
}
2830

2931
object Kotlinx {
30-
const val serializationCore = "org.jetbrains.kotlinx:kotlinx-serialization-core:1.2.1"
31-
const val serializationJson = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1"
32+
private const val version = "1.3.2"
33+
const val serializationCore = "org.jetbrains.kotlinx:kotlinx-serialization-core:$version"
34+
const val serializationJson = "org.jetbrains.kotlinx:kotlinx-serialization-json:$version"
3235
}
3336

3437
object Google {
@@ -46,15 +49,16 @@ object Libs {
4649
}
4750

4851
object Kotlin {
49-
private const val version = "1.5.31"
52+
private const val version = "1.6.0"
5053
const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$version"
5154
const val gradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$version"
5255
const val extensions = "org.jetbrains.kotlin:kotlin-android-extensions:$version"
5356
}
5457

5558
object Coroutines {
56-
private const val version = "1.5.2-native-mt"
59+
private const val version = "1.6.0-native-mt"
5760
const val core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version"
61+
const val test = "org.jetbrains.kotlinx:kotlinx-coroutines-test:$version"
5862
const val android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version"
5963
}
6064

project-files/Portfolio/shared/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ kotlin {
4444
implementation(clientJson)
4545
implementation(clientLogging)
4646
implementation(clientSerialization)
47+
implementation(contentNegotiation)
48+
implementation(json)
4749
}
4850

4951
with(Libs.Kotlinx) {
@@ -59,6 +61,7 @@ kotlin {
5961
implementation(kotlin("test"))
6062
implementation(Libs.Ktor.clientMock)
6163
implementation(Libs.multiplatformSettingsTest)
64+
implementation(Libs.Coroutines.test)
6265
}
6366
}
6467
val androidMain by getting {
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package io.github.amanshuraikwar.portfolio
22

3-
import kotlinx.coroutines.CoroutineScope
4-
import kotlinx.coroutines.runBlocking
5-
6-
actual fun runTest(block: suspend CoroutineScope.() -> Unit) = runBlocking { block() }
7-
83
actual annotation class JsName actual constructor(
94
actual val name: String
105
)

project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/Factory.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ package io.github.amanshuraikwar.portfolio
22

33
import io.ktor.client.HttpClient
44
import io.ktor.client.engine.HttpClientEngine
5-
import io.ktor.client.features.json.JsonFeature
6-
import io.ktor.client.features.json.serializer.KotlinxSerializer
7-
import io.ktor.client.features.logging.DEFAULT
8-
import io.ktor.client.features.logging.LogLevel
9-
import io.ktor.client.features.logging.Logger
10-
import io.ktor.client.features.logging.Logging
5+
import io.ktor.client.plugins.ContentNegotiation
6+
import io.ktor.client.plugins.logging.DEFAULT
7+
import io.ktor.client.plugins.logging.LogLevel
8+
import io.ktor.client.plugins.logging.Logger
9+
import io.ktor.client.plugins.logging.Logging
10+
import io.ktor.serialization.kotlinx.json.json
1111
import kotlinx.serialization.json.Json
1212

1313
object Factory {
@@ -16,8 +16,8 @@ object Factory {
1616
json: Json = createJson(),
1717
enableNetworkLogs: Boolean
1818
) = HttpClient(engine) {
19-
install(JsonFeature) {
20-
serializer = KotlinxSerializer(json)
19+
install(ContentNegotiation) {
20+
json(json)
2121
}
2222
if (enableNetworkLogs) {
2323
install(Logging) {
@@ -31,8 +31,8 @@ object Factory {
3131
json: Json = createJson(),
3232
enableNetworkLogs: Boolean
3333
) = HttpClient {
34-
install(JsonFeature) {
35-
serializer = KotlinxSerializer(json)
34+
install(ContentNegotiation) {
35+
json(json)
3636
}
3737
if (enableNetworkLogs) {
3838
install(Logging) {
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
package io.github.amanshuraikwar.portfolio.network
22

3+
import io.github.amanshuraikwar.portfolio.network.model.AppDataResponse
34
import io.github.amanshuraikwar.portfolio.network.model.PortfolioDataResponse
45
import io.ktor.client.HttpClient
6+
import io.ktor.client.call.body
57
import io.ktor.client.request.get
68

79
class PortfolioApi(
810
private val client: HttpClient,
911
private val baseUrl: String = "https://amanshuraikwar.github.io/api",
1012
) {
1113
suspend fun getPortfolioData() =
12-
client.get<PortfolioDataResponse>("$baseUrl/portfolio_data.json")
14+
client.get("$baseUrl/portfolio_data.json").body<PortfolioDataResponse>()
1315

1416
suspend fun getAppData(appId: String) =
15-
client.get<PortfolioDataResponse>("$baseUrl/app_data_$appId.json")
17+
client.get("$baseUrl/app_data_$appId.json").body<AppDataResponse>()
1618
}

project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/theme/network/ThemeApi.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ package io.github.amanshuraikwar.portfolio.theme.network
22

33
import io.github.amanshuraikwar.portfolio.theme.network.model.ThemeDataResponse
44
import io.ktor.client.HttpClient
5+
import io.ktor.client.call.body
56
import io.ktor.client.request.get
67

78
class ThemeApi(
89
private val client: HttpClient,
910
private val baseUrl: String = "https://amanshuraikwar.github.io/api",
1011
) {
11-
suspend fun getThemeData() =
12-
client.get<ThemeDataResponse>("$baseUrl/theme.json")
12+
suspend fun getThemeData()=
13+
client.get("$baseUrl/theme.json").body<ThemeDataResponse>()
1314
}
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
11
package io.github.amanshuraikwar.portfolio
22

3-
import kotlinx.coroutines.CoroutineScope
4-
5-
expect fun runTest(block: suspend CoroutineScope.() -> Unit)
6-
73
expect annotation class JsName constructor(val name: String)

project-files/Portfolio/shared/src/commonTest/kotlin/io.github.amanshuraikwar.portfolio/ThemeDataTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,17 @@ import io.ktor.http.HttpHeaders
1515
import io.ktor.http.HttpStatusCode
1616
import io.ktor.http.headersOf
1717
import io.ktor.utils.io.ByteReadChannel
18+
import kotlinx.coroutines.ExperimentalCoroutinesApi
1819
import kotlinx.coroutines.delay
1920
import kotlinx.coroutines.flow.first
2021
import kotlinx.coroutines.launch
22+
import kotlinx.coroutines.test.runTest
2123
import kotlinx.serialization.json.Json
2224
import kotlin.test.Test
2325
import kotlin.test.assertEquals
2426
import kotlin.test.assertNotEquals
2527

28+
@ExperimentalCoroutinesApi
2629
class ThemeDataTest {
2730
//region api
2831
@Test
@@ -51,6 +54,7 @@ class ThemeDataTest {
5154
)
5255
)
5356

57+
5458
runTest {
5559
assertEquals(
5660
DEFAULT_THEME_DATA_RESPONSE,

project-files/Portfolio/shared/src/iosTest/kotlin/io.github.amanshuraikwar.portfolio/TestFun.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ package io.github.amanshuraikwar.portfolio
33
import kotlinx.coroutines.CoroutineScope
44
import kotlinx.coroutines.runBlocking
55

6-
actual fun runTest(block: suspend CoroutineScope.() -> Unit) = runBlocking { block() }
7-
86
actual annotation class JsName actual constructor(
97
actual val name: String
108
)

project-files/Portfolio/shared/src/jsMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedBlogListDataStore.kt

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,6 @@ import io.github.amanshuraikwar.portfolio.blog.BlogListDataItem
88
class GeneratedBlogListDataStore {
99

1010
fun getBlogListData(): List<BlogListDataItem> {
11-
return listOf(
12-
BlogListDataItem(
13-
title = "My Portfolio",
14-
date = "December 27, 2021",
15-
firstParagraph = "This is my portfolio. It is a KMM project which currently supports Web, Android & iOS clients coming soon. The Web app is written in Kotlin, built using Jetpack Compose for Web and it has a KMM shared module for business logic.",
16-
link = "https://amanshuraikwar.github.io/portfolio",
17-
),
18-
BlogListDataItem(
19-
title = "How to use highlight.js in your Jetpack Compose Web project",
20-
date = "December 14, 2021",
21-
firstParagraph = "If you are building your web app using Jetpack Compose for Web and want to use highlight.js, this is the blog for you.",
22-
link = "https://amanshuraikwar.github.io/jetpack-compose-web-highlight-js",
23-
),
24-
BlogListDataItem(
25-
title = "Issues using MockK in a KMM shared module",
26-
date = "December 12, 2021",
27-
firstParagraph = "If you are writing unit tests for your Kotlin project and need to mock certain objects, there is high chance that you are using MockK. Here are a couple of issues that I faced while using MockK in my KMM project. The project has Android and iOS apps with business logic written in shared KMM modules, I was writing unit tests to test this business logic.",
28-
link = "https://amanshuraikwar.github.io/mockk-kmm-issues",
29-
),
30-
BlogListDataItem(
31-
title = "Introducing Next Bus SG",
32-
date = "December 8, 2021",
33-
firstParagraph = "After working on it for more than a year, I present to you Next Bus SG. Next Bus SG is a minimal & light app to see bus arrival timings in Singapore. Scroll down to the bottom for download links.",
34-
link = "https://amanshuraikwar.github.io/nextbus",
35-
),
36-
)
11+
return listOf()
3712
}
3813
}

0 commit comments

Comments
 (0)