Kira is an Android library that defines a Kotlin DSL (similar to
androidx.preference) for creating UI that allows users to call
any function (including @Composable
ones) with any parameter values.
Kira also includes annotation-processor kira-processor
that ✨automagically✨ generates UI for functions using the
DSL.
Library is particularly useful for building demo screens for UI components in playground apps of various design systems.
@Kira
@Composable
fun TextCard(
text: String,
isRed: Boolean,
skill: Skill?,
food: Food,
) = TODO()
Generated code (only a portion):
kira(TextCardScope()) {
text = string(paramName = "text", defaultValue = "Lorem")
isRed = boolean(paramName = "isRed", defaultValue = false)
skill = nullableEnum(paramName = "skill", defaultValue = null)
food = enum(paramName = "food")
injector {
TextCard(
text = text.currentValue(),
isRed = isRed.currentValue(),
skill = skill.currentValue(),
food = food.currentValue(),
)
}
}
Screenshot of the UI demo screen:
![Kira — Early Demo on YouTube](images/youtube-thumbnail.jpg)
Add the following code to your project's root build.gradle
file:
repositories {
maven { url "https://jitpack.io" }
}
Next, add the dependency below to your module's build.gradle
file:
dependencies {
implementation "com.github.popovanton0:kira:LATEST_VERSION"
ksp "com.github.popovanton0.kira:kira-processor:LATEST_VERSION"
}
Examples are in the source code .
TODO()