UI를 그리는 방법은 크게 두가지. Jetpack Compose를 이용해 모든 화면에 다 그리거나 / core의 특정 부분만 kmm을 사용하고 나머지 앱 화면은 직접 그릴 수 있다.

이렇기 때문에, kotlin 하면 흔히 생각하는 jvm (혹은 java)와의 호환성이 commonMain 안에서는 작동하지 않음. 아마 standalone한 wasm 형태의 결과물로 만들어 두는 듯.


2024.10.05

  • Room DB 셋업
    • lib.version.toml에 버전 추가
[versions]
room = "2.7.0-alpha01"  
ksp = "1.9.23-1.0.19"  
sqlite = "2.5.0-SNAPSHOT"

[libraries]
room-runtime = { module = "androidx.room:room-runtime", version.ref="room" }
room-runtime-android = { module = "androidx.room:room-runtime-android", version.ref = "room" }
room-compiler = { module = "androidx.room:room-compiler", version.ref = "room"}
sqlite-bundled = { module = "androidx.sqlite:sqlite-bundled", version.ref = "sqlite" }

[plugins]
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
room = { id = "androidx.room", version.ref = "room" }
  • build.gradle.kts (:composeApp)
    • plugin
	  alias(libs.plugins.ksp)  
	  alias(libs.plugins.room)

commonMain.dependencies

implementation(libs.room.runtime)  
implementation(libs.sqlite.bundled)

바깥 dependencies에

ksp(libs.room.compiler)

하고 오류나는거 정상이니까 build


DateTime 구현체가 없는게 귀찮네.. wasm 형태로 말아버려야 하니까 없는게 맞겠지만

https://medium.com/@adman.shadman/implementing-ios-android-date-time-utilities-in-kotlin-multiplatform-285d03d5e877