Skip to content

Releases: nowjordanhappy/sketch-kmp

Release list

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 11 Aug 06:14

First release under io.github.nowjordanhappy:sketch-kmp. Versions up to 0.3.0 are
upstream's Android-only releases; 0.4.0 is the Compose Multiplatform port of that code.

Added

  • Kotlin Multiplatform targets: Android, Desktop (JVM), iosX64, iosArm64, iosSimulatorArm64
  • TextField gains an errorMessage: String parameter (default "Invalid input"), so the
    accessibility error announcement stays localisable

Changed

  • Published as io.github.nowjordanhappy:sketch-kmp — Maven Central verifies namespace
    ownership, so a fork cannot publish under com.mitteloupe.sketch
  • Package renamed to io.github.nowjordanhappy.sketchkmp, sources moved to commonMain
  • Depends on the org.jetbrains.compose artifacts instead of the androidx Compose BOM
  • SketchRectangleShape, SketchCapsuleShape and SketchCircleShape are now data classes — they previously inherited identity equality,
    making Compose miss its Outline cache and regenerate the sketched path every recomposition
    (Modifier.hachure allocates one inline by default, so this sat on a hot path)

Fixed

  • RangeSlider's end thumb was wired to the start thumb's MutableInteractionSource, so
    pressing the end thumb showed no ripple and pressing the start thumb animated both. The
    bug is present upstream too.
  • java.lang.Math replaced with kotlin.math in PathSketcher, HachureModifier and
    ProgressIndicator — it does not resolve in commonMain on any target

Removed

  • SketchUnderlineShape and SketchVerticalLineShape. A Compose Shape describes an area,
    but these described a zero-area line, so every standard consumer mishandled them —
    background drew an invisible wisp, border flattened the wobble, and Surface clipped
    its content away entirely. They were referenced nowhere, including upstream.
    HorizontalDivider and VerticalDivider already draw these lines correctly.
  • TextField's internal Strings value class and its androidx.compose.ui.R lookup, which has
    no Compose Multiplatform equivalent
  • The private PreviewRangeSlider and its androidx.compose.ui.tooling.preview import
  • Empty consumer-rules.pro / proguard-rules.pro and the library AndroidManifest.xml