Apple — SwiftUI
macOS, iPadOS, iOS, visionOS. Haxe → Swift via macro de codegen. Utilisée en interne pour clients/calendar-mac.
l'établi de la pavoiserie · libs publiées, maturités variables
L'Établi rassemble cinq bibliothèques Haxe : quatre cibles natives (sui Apple, aui Android, wui Windows, cui Terminal) et mui qui pose au-dessus une API « écris une fois, déploie partout ». La plus mature aujourd'hui est sui.
lapavoiserie/sui — la lib la plus mature
La lib lapavoiserie/sui compile du Haxe vers du Swift + SwiftUI natif via une macro de codegen. Elle est utilisée en interne pour le client macOS du calendrier de La Pavoiserie et pour un prototype de client mail.
Pas de VM. Pas de WebView. Le binaire qui sort est un .app Xcode standard.
Les autres libs natives (aui, wui, cui) suivent la même philosophie. La couche mui est là pour ceux qui veulent écrire une fois et déployer sur plusieurs cibles — au prix d'une API plus restreinte que celle d'une lib native.
import sui.View; import sui.State; class Counter extends View { var count = State.of(0); override function render() { return VStack([ Text("Tu as cliqué " + count.value + " fois"), Button("Cliquer", () -> count.set(count.value + 1)) ]); } }
Les cibles natives
Chaque lib parle directement le langage de l'OS cible : Swift pour Apple, Kotlin pour Android, WinRT/C++ pour Windows, séquences de contrôle pour le terminal. Pas de runtime intermédiaire.
macOS, iPadOS, iOS, visionOS. Haxe → Swift via macro de codegen. Utilisée en interne pour clients/calendar-mac.
Apps Android natives en Haxe via Jetpack Compose. Sortie : APK / AAB Gradle standard.
Apps Windows natives en Haxe via WinUI 3 (le framework UI moderne de Microsoft).
Framework TUI déclaratif, même philosophie que sui. Pour les outils CLI riches.
mui pose au-dessus des libs natives (sui, aui, wui, cui) une API commune. Cibles supportées : macOS, iOS, Windows, terminal. Le compromis : une API plus restreinte que celle des libs natives directes, pour gagner la portabilité.
Pourquoi SailfishOS, à terme
iOS et Android ne sont pas des plateformes neutres : elles tirent leur écosystème d'app stores américains qui décident qui publie quoi. SailfishOS, développé par Jolla en Finlande, est aujourd'hui l'une des options mobiles les plus indépendantes de Google et d'Apple.
Aucune lib de l'Établi ne cible SailfishOS aujourd'hui. C'est une cible visée à terme, pas une option disponible — voir la roadmap en bas.
Essayer lapavoiserie/sui aujourd'hui
# Installer Haxe et le runtime C++ $ brew install haxe $ haxelib install hxcpp # Récupérer lapavoiserie/sui $ haxelib git sui https://github.com/lapavoiserie/sui
brew install haxe)La doc autonome arrivera quand le package etabli unifié sortira. Pour l'instant, le meilleur exemple est le code source de clients/calendar-mac.
Sur la roadmap
Pour ces cibles, aucune lib n'existe à ce jour. Si l'une d'elles te concerne particulièrement, le mieux est d'écrire — on peut faire bouger les priorités.
Un atelier français de bibliothèques d'interface utilisateur en Haxe.