Skip to content
GearUI Kit

GearUI Kit

A Kotlin Multiplatform UI component library built on Kuikly. Write a screen once in commonMain; it renders natively on Android and iOS and through the DOM on the Web.

Maven CentralLicenseGitHub

At a glance ​

kotlin
commonMain.dependencies {
    implementation("com.gearui:gearui-kit:1.0.0-beta6")
}
  • 71 components in 6 categories — every one has a demo page in the sample app
  • Design tokens with teeth — colour, radius, elevation, spacing, border and icon size are named scales; CI rejects hardcoded literals in component code
  • Runtime included — App root wires theme, i18n, overlay host and a stabilised safe-area pipeline in one call
  • i18n built in — language packs resolved from a BCP 47 tag, domain-split so no class hits Android's DEX limits, and downstream libraries plug into the same pipeline
  • Android · iOS · Web · HarmonyOS — one commonMain; HarmonyOS builds through a parallel configuration and is not yet verified on a device

How it compares ​

Nobody has heard of GearUI Kit. Everybody has shipped with at least one of the columns to its right, so the honest way to say what this stack is good at is to put it beside them. Each row is a real difference. ✅ marks where this stack is clearly ahead; the last row is where it is clearly behind. The full comparison has the reasoning, the pain points each layer removes, the tooling story, and a source for every number.

GearUI Kit + KuiklyUI + KMPPlain KMP (Compose MP)FlutterReact Native
Rendering✅ Real native views, everywhereNative on Android; canvas on iOSIts own engine, canvas everywhereReal native views
Native controls — IME, autofill, accessibility, text selection✅ The system's ownReimplemented on iOSReimplemented; a native view must be embeddedThe system's own
Follows OS design updates (iOS 26)✅ The day the OS shipsWaits for a repaint on iOSWaits for the framework to repaintThe day the OS ships
Performance✅ First screen 122 ms vs native 125 ms · SDK 300 KB / 1.2 MB ¹SkikoEngine, MB-scaleJS engine + bundle
Platform debugging tools✅ Every view visible and attributable; on Android, the native ceilingVisible on Android, opaque on iOSOpaque FlutterView; DevTools onlyVisible; two stacks to correlate
LanguageKotlin, shared with the Android team and a JVM backendKotlinDartJS / TS
Default look✅ HeroUI Native floor + iOS 26 platform controls, 71 componentsMaterial 3Material; Cupertino is second-classNone
Design consistency✅ Tokens enforced by 22 CI checksNoneThemeable, not enforcedNone
HarmonyOS✅ First-class targetNoCommunity forkHuawei-maintained fork
Ecosystem and maturitySmall · beta6 (KuiklyUI runs Tencent products at 500 M DAU)MediumLarge · since 2017Very large · since 2015

¹ Tencent's own measurement on HarmonyOS, Huawei Mate 60, complex feed scenario — source. SDK sizes from the KuiklyUI README.

Screenshots ​

Captured from the sample app on an iPhone 17 Pro Max simulator (iOS 26.2). Language and theme are switched at runtime from the settings page; every component follows.

Component index, Chinese
Home · 中文
Component index, English
Home · English
Settings, light theme
Settings · light
Settings, dark theme
Settings · dark

Why it exists ​

Compose Multiplatform gives you one language for UI. It does not give you a component library that looks like a finished product on day one, or a design system that stays consistent once ten people are committing. GearUI Kit is the layer above the renderer: the components, the tokens, the runtime plumbing (overlays, safe area, keyboard, i18n) and the CI guardrails that keep all of it from drifting.

It is used in production by PrivChat's shared UI layer, which is where most of the components were shaped.

Where to go next ​

GearUI Kit is released under the Apache License 2.0.