Build all apps from Markdown content; Compose Desktop replaces GTK on Linux and Windows

- content/ + scripts/build-content.py produce content.json for every app
- stable lesson IDs with one-time progress migration (Swift, Kotlin)
- shared answer-check tests (tests/answers.json) for Kotlin and Swift
- android/desktop: Compose app with updater, speech and GTK progress import
- CI packages AppImage and Windows zip with ProGuard, runs the tests

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-10-09 20:40:37 +02:00
commit c3bc32113b
964 changed files with 57285 additions and 1156 deletions

View file

@ -66,6 +66,9 @@ android {
compose = true
buildConfig = true
}
// UI, data and navigation shared with the desktop app (../desktop).
sourceSets.getByName("main").kotlin.directories.add("../shared/src")
}
kotlin {
@ -88,13 +91,14 @@ dependencies {
debugImplementation("androidx.compose.ui:ui-tooling")
}
val extractContent = tasks.register<Exec>("extractContent") {
val buildContent = tasks.register<Exec>("buildContent") {
workingDir = rootProject.projectDir.parentFile
commandLine("python3", "scripts/extract-android-content.py")
inputs.dir(rootProject.projectDir.parentFile.resolve("src"))
commandLine("python3", "scripts/build-content.py")
inputs.dir(rootProject.projectDir.parentFile.resolve("content"))
inputs.file(rootProject.projectDir.parentFile.resolve("scripts/build-content.py"))
outputs.file(file("src/main/assets/content.json"))
}
tasks.named("preBuild").configure {
dependsOn(extractContent)
dependsOn(buildContent)
}