Supported platforms¶
The :kiteqr engine is pure common Kotlin. It uses kotlin-stdlib only, with
no expect/actual, no java.* and no native binaries. The same code compiles
and runs on every target below.
:kiteqr-compose builds for fewer of them. It supports only the targets that
Compose Multiplatform supports, and its Android minSdk is 24 rather than 21.
Mismatched target sets are the most common cause of a failed first build, so
check both columns.
| Target | :kiteqr |
:kiteqr-compose |
|---|---|---|
androidTarget |
minSdk 21 | minSdk 24 |
jvm |
yes | yes |
iosArm64, iosSimulatorArm64 |
yes | yes |
iosX64 |
yes | no |
macosArm64 |
yes | yes |
tvosArm64, tvosSimulatorArm64 |
yes | no |
watchosArm32, watchosArm64, watchosSimulatorArm64, watchosDeviceArm64 |
yes | no |
linuxX64, linuxArm64, mingwX64 |
yes | no |
androidNativeArm32, androidNativeArm64, androidNativeX86, androidNativeX64 |
yes | no |
js(IR) |
browser + Node | browser |
wasmJs |
browser + Node | browser |
wasmWasi |
Node | no |
That is 22 targets for :kiteqr and 7 for :kiteqr-compose. The Apple targets
are Arm-only apart from iosX64. Neither module builds macosX64, tvosX64 or
watchosX64.
What needs a platform¶
Only drawing onto a screen. That lives in the opt-in
:kiteqr-compose binding. The core never depends on it.
What has actually been run¶
Targets being declared is not the same as targets being tested. The test suite
has only been executed on the JVM. The Kotlin/Native, JS, Wasm and Android
target tests have never been run in this tree, and no CI workflow runs them
either. Cross-target compilation is checked with
compileCommonMainKotlinMetadata. Per-target binaries may need the relevant
Kotlin/Native toolchains on first build.