Repository navigation
Version Information
- Kotlin: 2.4.10
- Gradle: 9.7.1
- AGP Plugin: 9.4.0
- Android compileSdk / targetSdk: 37
- Google Services 4.5.0
- Compose Multiplatform: 1.12.0
- Composables UI: 0.2.0 (with Compose Unstyled 2.7.0)
- Lucide Icons: 2.2.1
- Koin: 4.2.2
- Ktor: 3.5.2
- OSKIT: 5.2.0-rc1
- OSKIT Compose: 4.2.0-rc2
Note on the OSKit release candidates. OSKit 5.2.0-rc1 / Compose 4.2.0-rc2 are built against
Kotlin 2.4.0, Compose 1.11.1, Koin 4.2.2 and Ktor 3.5.1 -- the stack this template targets. The
last stable release (4.1.1) was built against Compose 1.10.1 and pulls Compose Material 2 onto
the classpath. PinoskitKmp = "5.1.0"/oskitCompose = "4.1.1"inlibs.versions.tomlif you
need stable-only dependencies.
Release Notes
Version 2.0
- Migrated to Composables UI: The UI layer now uses Composables UI 0.2.0 (MIT-licensed, free) instead of Material 3. This replaces the old
composables-uibranch, which used the retired paid Composables Core library. - Single project variant: The
main/composables-uisplit is gone. There is one template, and it is Composables UI. Nothing to check out, nothing to keep in sync. - New design system under
composeApp/.../ui/design/: an app-ownedAppThemeplus editableColors,Shapes,TypographyandSpacingtoken files, andAppScreen/AppToolbarshared components. See Design System. - Light/dark theme setting:
ThemeMode(System / Light / Dark) is now a persisted user setting wired throughAppSettingsInteractorinto the theme, with a working toggle on the Home screen. - Dependencies and toolchain updated: Kotlin 2.4.10, Gradle 9.7.1, AGP 9.4.0, Compose Multiplatform 1.12.0, Koin 4.2.2, Ktor 3.5.2, BuildKonfig 0.22.0, OSKit 5.2.0-rc1.
- Fixed
AppInformationServicedependency injection: the platform modules boundAppInformationServiceImplto itself rather than to theAppInformationServiceinterface, so anything injectingAppSettingsInteractorcrashed at startup. It was latent because nothing injected it before. - Fixed the configuration cache for iOS builds:
kmp-app-icon-generatorwiresgenerateIconsonto every Kotlin/Native link task, and that task is not configuration-cache compatible -- which failed every iOS build and:composeApp:allTests. The dependency edge is now cut incomposeApp/build.gradle.kts; run icon generation on demand instead. - Removed dead code: the unused Material 3 theme in
androidApp(ui/theme/) and itscolors.xmlpalette. - Modernized the Gradle DSL: replaced the
by gettingsource-set accessors that Gradle 10 removes. - Platform-native feel: press effects (Material ripple / iOS highlight / desktop hover), haptics, shapes, type scale, spacing, tap targets, toolbar metrics and scrollbars now follow the host platform. See Platform feel.
- Fixed the iOS Xcode build:
ComposeAppis a static framework, so the app target has to linksqlite3itself for OSKit's KV storage. Without it Xcode failed with "symbol(s) not found for architecture arm64" — meaning the README's "open in Xcode and run" never worked.OTHER_LDFLAGSis now part of the generatedConfig.xcconfig. - AI guidelines moved to
CLAUDE.md;GEMINI.mdis now just a pointer to it.