CraftD: A framework to implement Server-Driven UI quickly and easily to Android / iOS / Flutter / Kmp
See the project website for documentation.
| Tech | Support |
|---|---|
| View System - Android | ✅ Supported |
| Jetpack Compose - Android | ✅ Supported |
| Widget - Flutter | ✅ Supported |
| SwiftUi - iOS | ✅ Supported |
| Jetpack Compose - Multiplatform | ⚒️ In Progress |
| Component | Compose | View System | Widget | SwiftUI |
|---|---|---|---|---|
| Button | X | X | X | - |
| Text | X | X | X | X |
| CheckBox | X | - | - | - |
@JsonIgnoreProperties(ignoreUnknown = true)
@Immutable
@Stable
data class CheckBoxProperties(
@JsonProperty("text") val text: String? = null,
... rest of your properties
)
{
"key": "CraftDCheckBox",
"value": {
... rest of your properties
}
}
@Composable
fun CraftDCheckBox(
checkboxProperties: CheckBoxProperties,
modifier: Modifier = Modifier,
onChecked: (Boolean) -> Unit
) {
... Rest of your code
}class CraftDCheckBoxBuilder(
override val key: String = CraftDComponentKey.CHECK_BOX_COMPONENT.key
) :
CraftDBuilder {
@Composable
override fun craft(model: SimpleProperties, listener: CraftDViewListener) {
val checkBoxProperties = model.value.convertToVO<CheckBoxProperties>()
CraftDCheckBox(checkBoxProperties) {
checkBoxProperties.actionProperties?.let { listener.invoke(it) }
}
}
}More details check our documentation
| Android Compose | Android View System | iOS SwiftUI | Flutter |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
A Server Driven UI library for Android.
Inspired by the DynamicView.


