A Kotlin library to automatically generate mock data in Jetpack Compose @Previews using KSP.
- Automatic generation
PreviewParameterProvider
- Nested data class support
- Custom annotations:
@LongMessagePreview
,@ShortMessagePreview
, etc. - Centralized configuration via
ComposePreviewMockConfig
- Compatible with KSP + KotlinPoet
add KSP plugin in your build.gradle.kts
:
plugins {
id("com.google.devtools.ksp") version "1.9.22-1.0.16" // update with your kotlin version
}
and add to dependencies :
dependencies {
ksp("com.recisio.compose-mock-preview:1.0.0")
implementation("com.recisio.compose-mock-preview:1.0.0")
}
@ComposeMockPreviewProvider
data class TestComposable(
val title: String,
@LongMessagePreview val description: String,
val imageRes: Int,
val nested: NestedData
)
@ComposeMockPreviewConfiguration
class AppMockConfiguration : ComposeMockPreviewConfig {
override val longMessageList: List<String> = listOf("Very very long message")
override val shortMessageList: List<String> = listOf("short message")
override val resMessageList: List<Int> = listOf(R.string.app_name)
override val resDrawableList: List<Int> = listOf(R.drawable.ic_launcher_background)
override val resColorList: List<Int> = listOf(R.color.purple_700)
}
@PreviewLightDark
@Composable
fun TestComposablePreview(@PreviewParameter(TestComposablePreviewProvider::class) parameter: TestComposable) {
TestCompose(parameter)
}
Module | Description |
---|---|
com.recisio.compose-mock-preview |
Annotations KSP (@ComposeMockPreviewProvider ) + KSP PreviewParameterProvider auto generate file |
MIT © Recisio