Quick Start
The fastest path to a new Kolt-based project, plus manual wiring for an existing one.
Bootstrap script (recommended)
# Android-only project
./scripts/new-project.sh --type android --name MyApp --package com.example.myapp
# KMP project
./scripts/new-project.sh --type kmp --name MyApp --package com.example.myapp
# Interactive (prompts for values)
./scripts/new-project.sh
Produces a complete project with Gradle files, wrapper, source dirs, and all steering docs. Then:
cd MyApp && ./gradlew :app:assembleDebug # first build scaffolds theme XMLs
What just happened
Running the bootstrap script sets up a ready-to-build multi-project structure wired with Kolt’s conventions:
- Convention Plugins Applied: The generated modules apply Kolt convention plugins (e.g.
kmp.libraryorandroid-application) instead of hardcoding compiler settings or third-party versions. - Version Catalogs Linked: The root
settings.gradle.ktsimportskoltlibsandkmplibscatalogs, exposing version aliases to your build files. - Directory Structure Scaffolded: Standard target directories (such as
commonMain,androidMain, andiosMainfor KMP) are prepared and populated with empty source placeholders. - Default Resources Generated: During the first build, the build plugins dynamically inject default theme resources (like colors and shape styles) into your project.
Manual wiring (existing project / new module)
// settings.gradle.kts
dependencyResolutionManagement {
versionCatalogs {
create("koltlibs") {
from("io.github.appspiriment.kolt:kolt-catalog:<version>")
}
// KMP projects also add:
create("kmplibs") {
from("io.github.appspiriment.kolt:kmp-catalog:<version>")
}
}
}
// app/build.gradle.kts
plugins { id("io.github.appspiriment.kolt.application") }
android { namespace = "com.example.myapp" }
First build auto-runs scaffoldKoltResources (theme XMLs) and scaffoldKoltDocs (docs/) — both idempotent, never overwrite on re-run.