Skip to content
Open
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
50fb3f1
adding js to shared
KevinSchildhorn Nov 21, 2025
a5955b8
cleaning up code
KevinSchildhorn Nov 21, 2025
f4cbb4e
initial call
KevinSchildhorn Nov 21, 2025
c89be89
adding compiler arg
KevinSchildhorn Nov 21, 2025
12ad1e7
Updating Dependencies and fixing deprecation warnings
KevinSchildhorn Nov 21, 2025
5b9acd1
Update Koin.kt
KevinSchildhorn Nov 21, 2025
c340c35
Merge branch 'ks/UpdatingDependencies' into ks/Web4
KevinSchildhorn Nov 21, 2025
f233d27
Update Koin.kt
KevinSchildhorn Nov 21, 2025
a975001
Update Koin.kt
KevinSchildhorn Nov 21, 2025
94ae645
Finalizing JS for Shared
KevinSchildhorn Nov 21, 2025
54aba14
Update build.gradle.kts
KevinSchildhorn Dec 5, 2025
61c00d8
Merge branch 'ks/UpdatingDependencies' into ks/Web4
KevinSchildhorn Dec 5, 2025
b5e5944
finalizing shared-ui
KevinSchildhorn Dec 5, 2025
7830f96
Adding small Web Project from Template
KevinSchildhorn Jan 8, 2026
636285c
Updating Web Call
KevinSchildhorn Jan 8, 2026
9b21619
Update WaitForLoadedContextModel.kt
KevinSchildhorn Jan 8, 2026
664a786
Updating sqldelight driver to be suspend and fixing some issues with …
KevinSchildhorn Jan 22, 2026
c76364e
temporary merges for JS
KevinSchildhorn Feb 10, 2026
0c78ac8
Moving ViewModels to factory
KevinSchildhorn Feb 11, 2026
adc50fc
Adding favicon and attempting to fix sqldelight for web
KevinSchildhorn Feb 11, 2026
44c15f1
Revert "Moving ViewModels to factory"
KevinSchildhorn Feb 12, 2026
4e89e9b
Adding changes for
KevinSchildhorn Feb 12, 2026
dc5d187
fixing issues
KevinSchildhorn Feb 12, 2026
615d65d
Moving factories into another file
KevinSchildhorn Feb 12, 2026
5c8dc69
Fixing issues with images and fixing SQLDelight async issues
KevinSchildhorn Feb 13, 2026
3d40d6b
Fixing issues with Sponsor images
KevinSchildhorn Feb 13, 2026
b8b4202
Making ConferenceConfigProvider suspendable
KevinSchildhorn Feb 13, 2024
876e38b
Adding adaptive layout features
KevinSchildhorn Apr 15, 2026
790c44b
Updating date and main view
KevinSchildhorn Apr 22, 2026
df3f596
Updating sponsors view and fixing animations
KevinSchildhorn Apr 22, 2026
39fbf1b
Adjusting Images
KevinSchildhorn Apr 22, 2026
9b0d4d8
updating empty view
KevinSchildhorn Apr 22, 2026
07d6119
formatting
KevinSchildhorn Apr 22, 2026
bdbb364
Update libs.versions.toml
KevinSchildhorn Apr 23, 2026
124cf9b
Merge branch 'main' into ks/Web4
KevinSchildhorn Apr 28, 2026
4559a4d
formatting
KevinSchildhorn Apr 28, 2026
3dac4be
Responding to comments
KevinSchildhorn May 20, 2026
ef845f9
Updating the platform
KevinSchildhorn May 28, 2026
d2eec98
fixing minor issues
KevinSchildhorn May 28, 2026
26c6f76
Update shared/src/jsMain/kotlin/co/touchlab/droidcon/Koin.js.kt
KevinSchildhorn May 28, 2026
fdc7789
Update shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/viewmodel…
KevinSchildhorn May 28, 2026
c96a19e
Update shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/viewmodel…
KevinSchildhorn May 28, 2026
7bed0af
Update shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/viewmodel…
KevinSchildhorn May 28, 2026
b355c0a
Update shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/MainCo…
KevinSchildhorn May 28, 2026
d298ef9
Update shared/src/commonMain/kotlin/co/touchlab/droidcon/domain/servi…
KevinSchildhorn May 28, 2026
3b5d3e7
Update shared/src/commonMain/kotlin/co/touchlab/droidcon/domain/servi…
KevinSchildhorn May 28, 2026
6a6b0de
Update shared/src/commonMain/kotlin/co/touchlab/droidcon/domain/servi…
KevinSchildhorn May 28, 2026
8992cf7
Update shared/src/commonMain/kotlin/co/touchlab/droidcon/domain/servi…
KevinSchildhorn May 28, 2026
bd6ba7f
removing logs and responding to comments
KevinSchildhorn May 28, 2026
a85510e
Adding KotlinXDateFormatterTest
KevinSchildhorn May 28, 2026
79db5a3
Apply suggestions from code review
KevinSchildhorn May 28, 2026
b5dd8ac
Fixing various issues and adding multiple tests
KevinSchildhorn May 28, 2026
372bed8
Merge branch 'ks/Web4' of https://github.com/touchlab/DroidconKotlin …
KevinSchildhorn May 28, 2026
7568a17
Moving localization
KevinSchildhorn May 28, 2026
110417d
formatting
KevinSchildhorn May 28, 2026
79425a2
Fixing CI issues
KevinSchildhorn May 29, 2026
4c943ab
Update SqlDelightConferenceRepository.kt
KevinSchildhorn May 29, 2026
74fdee9
Update SqlDelightConferenceRepository.kt
KevinSchildhorn May 29, 2026
f6db0b5
Adding a common AnalyticsService
KevinSchildhorn May 29, 2026
15b8297
Update build.yml
KevinSchildhorn May 29, 2026
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
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ jobs:
uses: android-actions/setup-android@v3

- name: Check, Assemble Android and compile iOS
run: ./gradlew ktlintCheck assembleDebug compileKotlinIosX64 --no-daemon
run: ./gradlew ktlintCheck assembleDebug compileKotlinIosSimulatorArm64 --no-daemon
4 changes: 2 additions & 2 deletions android/src/main/java/co/touchlab/droidcon/android/MainApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ import co.touchlab.droidcon.android.service.impl.DefaultParseUrlViewService
import co.touchlab.droidcon.android.util.NotificationLocalizedStringFactory
import co.touchlab.droidcon.application.service.NotificationSchedulingService
import co.touchlab.droidcon.domain.service.AnalyticsService
import co.touchlab.droidcon.domain.service.impl.ComposeResourceReader
import co.touchlab.droidcon.domain.service.impl.ResourceReader
import co.touchlab.droidcon.initKoin
import co.touchlab.droidcon.service.ParseUrlViewService
import co.touchlab.droidcon.ui.uiModule
import co.touchlab.droidcon.util.ClasspathResourceReader
import com.google.firebase.Firebase
import com.google.firebase.analytics.analytics
import com.russhwolf.settings.ExperimentalSettingsApi
Expand Down Expand Up @@ -47,7 +47,7 @@ class MainApp :
}

single<ResourceReader> {
ClasspathResourceReader()
ComposeResourceReader()
}

single<NotificationSchedulingService.LocalizedStringFactory> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,8 @@ class DefaultParseUrlViewService : ParseUrlViewService {

private val urlRegex = Patterns.WEB_URL.toRegex()

override fun parse(text: String): List<WebLink> = urlRegex.findAll(text).map { WebLink(it.range, it.value) }.toList()
override fun parse(text: String): List<WebLink> = urlRegex
.findAll(text)
.map { WebLink(it.range, it.value) }
.toList()
}
3 changes: 2 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ subprojects {
}
}
}

/*
Comment thread
KevinSchildhorn marked this conversation as resolved.
Outdated
tasks.register<Delete>("clean") {
delete(rootProject.layout.buildDirectory)
}
*/
28 changes: 22 additions & 6 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
[versions]
## SDK Versions
adaptive = "1.3.0-alpha02"
kamelImageDefault = "1.0.9"
kotlinxBrowser = "0.5.0"
material3AdaptiveNavigationSuiteVersion = "1.9.0"
minSdk = "23"
targetSdk = "36"
compileSdk = "36"

# Dependencies
kotlin = "2.2.21"
kotlin = "2.3.10"

## Gradle Plugin version must be compatible with Multiplatform
## https://kotlinlang.org/docs/multiplatform-compatibility-guide.html#version-compatibility
android-gradle-plugin = "8.13.1"
android-gradle-plugin = "8.13.2"
coroutines = "1.10.2"
kotlinx-datetime = "0.7.1"
ktor = "3.3.2"
ktor = "3.3.3"

stately = "2.1.0"
java = "21"
Expand All @@ -26,12 +30,12 @@ sqlDelight = "2.2.1"
firebase-analytics = "22.5.0"
firebase-crashlytics = "19.4.4"
firebase-messaging = "24.1.2"
firebase-bom = "34.6.0"
firebase-bom = "34.7.0"
firebase-crashlytics-gradle = "3.0.6"
gms-google-services = "4.4.4"

# TODO: Update Compose libraries. There is currently a conflicing issue with the HorizontalPager
compose-androidx-ui = "1.9.5"
compose-androidx-ui = "1.10.0"
compose-compiler = "1.5.15"
composeNavigation = "2.9.6"
compose-jb = "1.9.3"
Expand All @@ -52,11 +56,19 @@ uuid = "0.8.4"
ktlint = "14.0.1"
coil = "3.3.0"
zoomimage = "1.4.0"
skie = "0.10.8"
skie = "0.10.10"

[libraries]
adaptive = { module = "org.jetbrains.compose.material3.adaptive:adaptive", version.ref = "adaptive" }
adaptive-layout = { module = "org.jetbrains.compose.material3.adaptive:adaptive-layout", version.ref = "adaptive" }
adaptive-navigation = { module = "org.jetbrains.compose.material3.adaptive:adaptive-navigation", version.ref = "adaptive" }
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" }
coil-network = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coil" }
kamel-image-default = { module = "media.kamel:kamel-image-default", version.ref = "kamelImageDefault" }
kotlinx-browser = { module = "org.jetbrains.kotlinx:kotlinx-browser", version.ref = "kotlinxBrowser" }
ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" }
material3-adaptive-navigation-suite = { module = "org.jetbrains.compose.material3:material3-adaptive-navigation-suite", version.ref = "material3AdaptiveNavigationSuiteVersion" }
multiplatform-settings-make-observable = { module = "com.russhwolf:multiplatform-settings-make-observable", version.ref = "multiplatformSettings" }
sqliter = { module = "co.touchlab:sqliter-driver", version.ref = "sqliter" }
compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "compose-compiler" }
androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "splashscreen" }
Expand Down Expand Up @@ -91,7 +103,9 @@ multiplatformSettings-test = { module = "com.russhwolf:multiplatform-settings-te

sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqlDelight" }
sqldelight-driver-ios = { module = "app.cash.sqldelight:native-driver", version.ref = "sqlDelight" }
sqldelight-driver-js = { module = "app.cash.sqldelight:web-worker-driver", version.ref = "sqlDelight" }
sqldelight-coroutines = { module = "app.cash.sqldelight:coroutines-extensions", version.ref = "sqlDelight" }
sqldelight-async-extensions = { module = "app.cash.sqldelight:async-extensions", version.ref = "sqlDelight" }
sqldelight-runtime = { module = "app.cash.sqldelight:runtime", version.ref = "sqlDelight" }

kermit = { module = "co.touchlab:kermit", version.ref = "kermit" }
Expand All @@ -115,8 +129,10 @@ compose-navigation = { module = "androidx.navigation:navigation-compose", versio
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
koin-test = { module = "io.insert-koin:koin-test", version.ref = "koin" }
koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koin" }

zoomimage-composeResources = { module = "io.github.panpf.zoomimage:zoomimage-compose-resources", version.ref = "zoomimage" }
zoomimage-compose = { module = "io.github.panpf.zoomimage:zoomimage-compose", version.ref = "zoomimage" }

[plugins]
crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase-crashlytics-gradle" }
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion ios/Droidcon/Droidcon.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
1821427726B5418D0047DB71 /* about.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = about.json; path = ../../../shared/src/commonMain/resources/about.json; sourceTree = "<group>"; };
1821427726B5418D0047DB71 /* about.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = about.json; path = ../../../shared/src/commonMain/composeResources/files/about.json; sourceTree = "<group>"; };
18240FB62C6FED770099E416 /* Droidcon.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Droidcon.entitlements; sourceTree = "<group>"; };
1833220F26B0CF5600D79482 /* DroidconApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DroidconApp.swift; sourceTree = "<group>"; };
18E89B48283E5D2C00C08C9B /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@ package co.touchlab.droidcon.ios

import co.touchlab.droidcon.application.service.NotificationSchedulingService
import co.touchlab.droidcon.domain.service.AnalyticsService
import co.touchlab.droidcon.domain.service.impl.ComposeResourceReader
import co.touchlab.droidcon.domain.service.impl.ResourceReader
import co.touchlab.droidcon.initKoin
import co.touchlab.droidcon.ios.service.DefaultParseUrlViewService
import co.touchlab.droidcon.ios.util.NotificationLocalizedStringFactory
import co.touchlab.droidcon.ios.util.formatter.IOSDateFormatter
import co.touchlab.droidcon.service.ParseUrlViewService
import co.touchlab.droidcon.ui.uiModule
import co.touchlab.droidcon.util.BundleResourceReader
import co.touchlab.droidcon.util.formatter.DateFormatter
import co.touchlab.droidcon.viewmodel.WaitForLoadedContextModel
import com.russhwolf.settings.ExperimentalSettingsApi
import com.russhwolf.settings.NSUserDefaultsSettings
Expand All @@ -26,9 +24,9 @@ fun initKoinIos(userDefaults: NSUserDefaults, analyticsService: AnalyticsService
module {
single { BundleProvider(bundle = NSBundle.mainBundle) }
single<ObservableSettings> { NSUserDefaultsSettings(delegate = userDefaults) }
single<ResourceReader> { BundleResourceReader(bundle = get<BundleProvider>().bundle) }

single<DateFormatter> { IOSDateFormatter() }
single<ResourceReader> {
ComposeResourceReader()
}

single<NotificationSchedulingService.LocalizedStringFactory> {
NotificationLocalizedStringFactory(bundle = get<BundleProvider>().bundle)
Expand Down

This file was deleted.

8 changes: 8 additions & 0 deletions kotlin-js-store/wasm/yarn.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


"@js-joda/core@3.2.0":
version "3.2.0"
resolved "https://registry.yarnpkg.com/@js-joda/core/-/core-3.2.0.tgz#3e61e21b7b2b8a6be746df1335cf91d70db2a273"
integrity sha512-PMqgJ0sw5B7FKb2d5bWYIoxjri+QlW/Pys7+Rw82jSH0QN3rB05jZ/VrrsUdh1w4+i2kw9JOejXGq/KhDOX7Kg==
Loading
Loading