Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ default_platform :android

platform :android do

androidVersionNum = 254
wearVersionNum = 329
androidVersionNum = 255
wearVersionNum = 330

before_all do
end
Expand Down
12 changes: 6 additions & 6 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
[versions]
kotlin19 = "1.9.25"
ksp19 = "1.9.25-1.0.20"
kotlin = "2.1.0"
ksp = "2.1.0-1.0.29"
kotlin = "2.1.20"
ksp = "2.1.20-1.0.31"
kotlinx-coroutines = "1.10.1"
kotlinx-datetime = "0.6.2"
apollo-kotlin-execution = "0.1.1-SNAPSHOT-3e89cc694ab96bae7b4c1b7b6394c211065551c1"

agp = "8.8.0"
activity-compose = "1.10.1"
androidx-lifecycle = "2.8.7"
androidx-datastore = "1.1.3"
androidx-datastore = "1.1.4"
apollo = "4.1.1"
apollo-cache = "0.0.8"
compose = "1.7.8"
Expand All @@ -19,8 +19,8 @@ compose-multiplatform = "1.7.3"
compose-material3 = "1.3.1"
composeWindowSize = "0.5.0"
credentials = "1.5.0"
decompose = "3.3.0-alpha02"
essenty = "2.4.0"
decompose = "3.3.0"
essenty = "2.5.0"
googleid = "1.1.1"
horologist = "0.7.10-alpha"
io-coil-kt = "2.7.0"
Expand All @@ -30,7 +30,7 @@ kmmbridge = "0.5.7"
koin-android = "4.0.0"
koin-android-compose = "4.0.0"
koin-compose-multiplatform = "4.0.4"
koin-core = "4.0.0"
koin-core = "4.0.4"
kotlinx-coroutines-play-services = "1.10.1"
lifecycle = "2.8.7"
lifecycle-livedata-ktx = "2.8.7"
Expand Down
18 changes: 8 additions & 10 deletions maestro/Confetti.flow
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,16 @@ appId: dev.johnoreilly.confetti
---
- launchApp:
clearState: true
- scrollUntilVisible:
element:
id: androidmakers2024
#- scrollUntilVisible:
# element:
# id: androidmakers2025
- tapOn:
id: androidmakers2024
- assertVisible: "AndroidMakers by droidcon 2024"
id: androidmakers2025
- assertVisible: "AndroidMakers by droidcon 2025"
- scrollUntilVisible:
element:
text: "Kotlin Multiplatform.*"
- tapOn: "Kotlin Multiplatform.*"
- assertVisible: "Kotlin Multiplatform at Stable and Beyond"
text: "Kotlin and Compose Multiplatform.*"
- tapOn: "Kotlin and Compose Multiplatform.*"
- assertVisible: "Kotlin and Compose Multiplatform patterns for iOS interop"
- tapOn: "Back"

Swift-friendly API Generator for Kotlin Multiplatform
When Swift calls Kotlin through Objective-C, critical Kotlin language features are dropped. SKIE bridges modern types and coroutines in the best way: with real Swift.
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ import com.russhwolf.settings.NSUserDefaultsSettings
import com.russhwolf.settings.ObservableSettings
import com.russhwolf.settings.coroutines.toFlowSettings
import dev.johnoreilly.confetti.auth.Authentication
import dev.johnoreilly.confetti.dev.johnoreilly.confetti.work.SessionNotificationSender
import dev.johnoreilly.confetti.utils.DateService
import dev.johnoreilly.confetti.utils.IosDateService
import dev.johnoreilly.confetti.work.NotificationSender
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module
Expand All @@ -33,6 +35,7 @@ actual fun platformModule() = module {
.serverUrl("https://confetti-app.dev/graphql")
.addHttpInterceptor(ApolloClientAwarenessInterceptor("confetti-ios", "fixme"))
}
single<NotificationSender> { SessionNotificationSender() }
}

actual fun getNormalizedCacheFactory(conference: String, uid: String?): NormalizedCacheFactory {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package dev.johnoreilly.confetti.dev.johnoreilly.confetti.work

import dev.johnoreilly.confetti.work.NotificationSender

class SessionNotificationSender: NotificationSender {
override suspend fun sendNotification(selector: NotificationSender.Selector) {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ import com.russhwolf.settings.ObservableSettings
import com.russhwolf.settings.PreferencesSettings
import com.russhwolf.settings.coroutines.toFlowSettings
import dev.johnoreilly.confetti.auth.Authentication
import dev.johnoreilly.confetti.dev.johnoreilly.confetti.work.SessionNotificationSender
import dev.johnoreilly.confetti.utils.DateService
import dev.johnoreilly.confetti.utils.JvmDateService
import dev.johnoreilly.confetti.work.NotificationSender
import okhttp3.OkHttpClient
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.singleOf
Expand All @@ -32,6 +34,7 @@ actual fun platformModule() = module {
single<FetchPolicy> {
FetchPolicy.CacheAndNetwork
}
single<NotificationSender> { SessionNotificationSender() }
}

actual fun getNormalizedCacheFactory(conference: String, uid: String?): NormalizedCacheFactory {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package dev.johnoreilly.confetti.dev.johnoreilly.confetti.work

import dev.johnoreilly.confetti.work.NotificationSender

class SessionNotificationSender: NotificationSender {
override suspend fun sendNotification(selector: NotificationSender.Selector) {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ import com.russhwolf.settings.coroutines.FlowSettings
import com.russhwolf.settings.coroutines.toFlowSettings
import com.russhwolf.settings.observable.makeObservable
import dev.johnoreilly.confetti.auth.Authentication
import dev.johnoreilly.confetti.dev.johnoreilly.confetti.work.SessionNotificationSender
import dev.johnoreilly.confetti.utils.DateService
import dev.johnoreilly.confetti.utils.WasmDateService
import dev.johnoreilly.confetti.work.NotificationSender
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module
Expand All @@ -26,6 +28,7 @@ actual fun platformModule() = module {
single<FetchPolicy> {
FetchPolicy.CacheAndNetwork
}
single<NotificationSender> { SessionNotificationSender() }
}

actual fun getNormalizedCacheFactory(conference: String, uid: String?): NormalizedCacheFactory {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package dev.johnoreilly.confetti.dev.johnoreilly.confetti.work

import dev.johnoreilly.confetti.work.NotificationSender

class SessionNotificationSender: NotificationSender {
override suspend fun sendNotification(selector: NotificationSender.Selector) {
}
}
Loading