Repository navigation
v0.1.0
First public release.
Added
- Inferred graph. A KSP processor reads the graph out of ordinary Kotlin:
implementing a project interface is the binding, constructor parameters are the
edges. No annotations on your classes. - Decisions as code.
@Root/@Bind/@Scopedon a per-moduleGraphRules.kt
holder, written as compile-checked class references.SOURCEretention and
compileOnly, so none of it can reach an APK.@Freshlives on the class. - Singleton by default. Everything in the graph is one shared instance;
"activity"and"fragment"scopes follow the Android lifecycle, and custom
scopes are opened and closed by hand. - Compile-time validation. Missing bindings, ambiguity, duplicates, cycles and
scope violations are build errors carrying the file and line of both sides. - Graph arguments. A leaf nothing provides becomes a parameter of the
generatedGraph.start(…); the parameter name is the identity, replacing
qualifiers and@Providesmodules. - ViewModels and Compose. Generated per-ViewModel adapters, rotation-retained
by androidx, with unprovidable constructor parameters becoming adapter
parameters — no assisted-injection concept. Compose getsremember…forms and
injected<T>(). - The board. A host-side infinite canvas of the graph, started by every debug
build, animating each rebuild and offering decision cards that write
GraphRules.ktfor you. Optionally augmented with live runtime state pulled
from a device overadb. - One Gradle plugin.
id("com.kitedi")applies KSP, wires every Kite
dependency and configures the processor.
Known limitations
Set<I>collects implementations per module; cross-module contributions are not
supported yet.- A graph argument's identity is its parameter name, so unrelated leaves sharing a
name unify. - The board's live runtime needs
adb; there is no Wi-Fi mode.
Artifacts: com.kitedi on Maven Central. Documentation: https://kitedi.com