AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Build native Android apps in Haxe using Jetpack Compose
Translation pending
Developer toolsHaxe · KotlinGitHub @lapavoiserieOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Build native Android apps in Haxe. Your views are drawn by Jetpack Compose
with Material Design 3 — genuine Android applications, not a web view and not a
canvas.
Abridged from examples/counter.
Haxe compiles to a JVM jar, and Gradle builds the APK around it. body() runs
on the device and produces a view tree that a Compose renderer walks — so a
state write reaches the composables that read it, at Compose's own granularity.
An earlier design transpiled body() into Kotlin ahead of time. That transpiler
is decommissioned; the page
says what replaced it and why.Read the full README ↗Build native Android apps in Haxe. Your views are drawn by Jetpack Compose with Material Design 3 — genuine Android applications, not a web view and not a canvas.
import aui.App;
import aui.View;
import aui.ui.*;
class Counter extends App {
@:state var count:Int = 0;
public function new() {
super();
appName = "Counter";
packageName = "com.aui.counter";
}
override public function body():View {
return new VStack([
new Text("Counter").font(FontStyle.HeadlineLarge).bold(),
Text.withState("{count}").font(FontStyle.DisplayLarge),
new HStack(16, [
new Button("-", count_.dec()),
new Button("+", count_.inc())
])
]).padding();
}
}
Abridged from examples/counter.
Haxe compiles to a JVM jar, and Gradle builds the APK around it. body() runs
on the device and produces a view tree that a Compose renderer walks — so a
state write reaches the composables that read it, at Compose's own granularity.
An earlier design transpiled body() into Kotlin ahead of time. That transpiler
is decommissioned; the page
says what replaced it and why.
haxelib git aui https://github.com/lapavoiserie/aui
haxelib run aui init MyApp
cd MyApp && haxelib run aui run
Needs Haxe 4.3+, a JDK 17, and the Android SDK.
Android APIs beyond the view vocabulary live in
kui, keyed by operating system. A
capability reaching Android through aui carries a gradle payload — Kotlin
sources, Maven coordinates, manifest permissions — which aui renders into the
generated project, compiling the Kotlin where it lives rather than copying it.
aui is one backend of mui, which gives
an application one view vocabulary across six of them —
sui for Apple platforms,
wui for Windows,
cui for the terminal, and others. The
same body() runs on all of them.
https://lapavoiserie.github.io/aui/
MIT.