What is the reality of writing an app in HaxeUI and delivering for both web and desktop?

I’m investigating the age-old question of what tech to use to develop a UI app without being limited to a single destination platform. In particular, I care about being able to deploy something to the web and for desktop, and I’m wondering about the realities of doing this in HaxeUI.

I like the look of the language, and so in that sense, I’d much prefer Haxe to something like flutter. But I’m well aware that delivering to both web and desktop tends to be full of gotchas, even with a tech that can compile to both.

So, I’m looking for some realistic descriptions of what it’s like to develop in Haxe for multiple, and highly different, UI platforms.

1 Like

Hi, sorry, I thought i replied to this :slight_smile:

So, if you are targeting native (haxeui-hxwidgets) and web (say haxeui-html5) then there are certainly limitations, mainly on the native side. You cant be so “creative” with native toolkits since the OS simply wont allow certain levels of customization. Obviously on the web (or actually any of the composite haxeui backends) you can customize till your heart is content. Another option for targeting desktop would be to use haxeui-html5 and electron (if you dont mind the weight). I use haxeui for a number of production apps, but obviously, im the author so im biased :slight_smile:

Im not really sure if that helps… … …

Cheers,
Ian

(sorry for the super late reply!)

Hello! I’m in the same situation as OP; Looking to expand my toolset.

I create cross-platform apps; I target mobile and desktop mostly, with web as a last platform. I prefer to not use Electron if possible. The apps I do require performance (they display graphically-intensive things).

I’m very interested in Haxe, and in the feasability of using HaxeUI to deliver cross-platform applications.

I don’t think your answer responds to those concerns; I understand of course native UIs won’t be as customizable as web widgets, but that doesn’t really tell me how hard or difficult the experience of exporting would be; how flexible the native layouts are; if performance is good on mobile; etc.

To give an idea of what I’m looking for, I’ll list here some of the toolkits I use, and their pros and cons:

  • GTK/QT: large, well supported, but unyieldy, have to write a lot of platform-specific code, horrible to use
  • React Native/Svelte Native/X-Native: very flexible, but uses JS, which is ok-ish, but not great if you need performance (I do). On the Desktop, you have to use Electron, which similarly is really cool but kind of a perf hit.
  • Flutter: amazing DX, but it’s a pile of hacks. Leaving your project for 2 months, you will have to update 5 different tookits, each individually, and when things break it’s really hard to understand why because of all the layers of abstraction. Many addons only work on some platforms too.
  • Godot: Excellent DX, stellar export experience (it Just Works:tm:) but it doesn’t look native at all, and performance is also not great out of the box (it’s a small cpp project, so it’s fairly simple to optimize, but still).

My guess is that HaxeUI and Haxe would be sort of like Flutter: first steps seem amazing, but the mountain of abstractions gives way over a project’s lifetime, and bugs get very difficult to track. Does that sound like a fair assessment?

I suppose out of that list, flutter would be the closest, yeah. Im not sure the “but the mountain of abstractions gives way over a project’s lifetime” though, i mean, im biased of course though :slight_smile:

Cheers,
Ian