Got any clue of a VERY light-weight haxe/Flash UI library?

I’m trying to stay away from OpenFL as compilation times are rather long (10 seconds for an empty application). If I use just Haxe compiler targeting Flash, it’s done in 1.5 seconds. So I’m looking for something like minimal comps, ported for Haxe. If you’re wondering why I’m using Flash: it’s the only debuggable easy-to-put-together UI tool in IntelliJ. Well, that’s until I realized it’s not so easy to put together after all :slight_smile: (OpenFL being slow).

Doesn’t really answer your question directly, but you could try speeding up compile times with a compilation server. Not sure if there’s built-in support for that in the IntelliJ plugin, but you could always just start one from the command line and add the --connect arg to your build arguments.

NME tends to be a bit faster to compile than OpenFL, mostly due to having less Haxe sources I guess.

I have few questions:

  • What do you want create? I’m asking because it seems you have either very specific needs or don’t know what’s out there already. We support many targets/platforms so to give valuable answers, please provide more info.
  • For example; why does it need to be easy debuggable using IntelliJ specifically? Did you consider other IDE’s?
  • Are you looking for debugging tools or ui library?
  • Chrome devtools are also very good nowadays if you target JS.
  • You could look at Heaps.io if you want alternative for openFL.
  • If you just want to create ui, why not HTML?

So I’m looking for something like minimal comps

I have externs for quicksettings GitHub - markknol/hx-quicksettings: Haxe extern classes for https://github.com/bit101/quicksettings but this works in JS target only

I would also go with HTML for the UI. No need for any framework, and will be very fast to compile.

@mark.knol I’m working on a (mostly) text-based game with JS as a target, probably some UI library for the HTML frontend and NodeJS for backend. I haven’t considered other IDEs yet, no, as IJ seems to do the trick. I’m looking for UI library because I IJ has all the debug tools I need. Chrome tools I don’t like as per the topic I linked below where I already complained about this :). I agree they’ve made progress but they’re no match for an IDE. Not HTML because of the debug reason (can’t debug with IJ).

@Leo yeah but IntelliJ can’t debug JS, as per my other topic :slight_smile: Temporarily use another target than JS in order to debug Haxe in IntelliJ - Opinions / Ideas?

Anyway, I found this: GitHub - MatthijsKamstra/haXe-NME-UI: Skinnable UI Components for haXe NME

It’s ANCIENT but with some updating the Haxe code I made it work. Will probably fork & upload when I finish fixing all the super-outdated Haxe.

I’m good now :). I have a simple UI to debug all my game logic against. When I’m done, I’ll simply switch the UI for the HTML one.

On another, sort of funny note, while doing research today I tried OpenFL and it almost destroyed my entire C drive :D. I was lucky I had a program running in a folder with the letter P. It stopped the rogue deletion process before it got to Program Files, otherwise I’d be installing Windows now. I reported the issue to OpenFL but I don’t think it’s them, but rather a weird set of factors. Here’s the topic if you want to have a laugh. One of the weirdest things that happened to me in 20 years of software engineering.

Hi, I’m the IntelliJ-Haxe plugin maintainer. I don’t really want to derail this topic, so I’ll go sign up for OpenFL’s community discourse and reply there…

-Eric

1 Like

It’s always good to check the haxelib. I’m noticing a few candidates for you there.

I have a few links to share:
HaxeUI
Mint
Feathers
Jive
Stablex
HaxePunk GUI
Flixel UI
TinyUI
SimpleGUI

And @ncannasse announced UIKit yesterday. Edit: It’s called DOMKit and repo is here.

1 Like

Hey @Confidant :). As I said, I don’t want to use OpenFL, and some of these use it. Some of them are not for Flash :). My “requirements” put me in a difficult position. Anyway, I’m good now. Used an ancient and very crude library based on minimal comps :slight_smile:. At least it’s fast. Anyway, I’ll switch over to other technologies once I’m done with an early game prototype (if everything looks well with the prototype)

Yeah, I wanted to post the complete collection for future forum-goers searching for UI, and just in case you change your requirements. Have fun!

1 Like

Hi @Kyliathy,

In my opinion, you’re over-complicating. If it’s js project, then I’d just use vscode to debug it (considering you don’t like Chrome tools) and use one of the many js UI libs or just plain HTML/CSS. I respect your choice and this topic has some value in listing some cross-platform UI libs, but business-wise, I think you’re bikeshedding :slight_smile:

1 Like

I will do exactly that. For now, I got something functional and suffered some lost hours getting here and now I can code for a while at this prototype before switching IDE, which would take hours of re-scaffolding my projects and so on.

Anyway, just to clarify, you mean VSCode can debug haxe code just as well as IntelliJ? Does it have conditional breakpoints, can it navigate all the haxe libraries I might have in my project? Just curious about its feature set :slight_smile:.

Also, LOL @ bikeshedding. Nice expression. You wouldn’t believe me if I told you I consider myself a product manager too right? :smiley:. Seriously though, I only wasted a couple of hours on this and it was PRECISELY so I can get to work AS SOON AS POSSIBLE. I got the prototype up & running and with full debug capabilities in an IDE I was accustomed to in a couple of hours, so it’s not that bad :slight_smile:

Anyway, just to clarify, you mean VSCode can debug haxe code just as well as IntelliJ? Does it have conditional breakpoints, can it navigate all the haxe libraries I might have in my project? Just curious about its feature set :slight_smile:.

What I mean is that vscode is a good IDE for debugging Javascript, and hence, Haxe-generated Javascript.

To be honest, I don’t know if vshaxe (the haxe extension) adds anything in relation to debugging. I also tried to have source maps in the debugger but for some reason it became complex and I gave up. Ever since I’ve adapted to just looking at the generated js and doing any quick translations to the Haxe myself (it helps that the generated code is quite clean!). I don’t even think about it anymore, it just works :wink:

In fact, if someone with vscode/vshaxe experience could chime in and let us know if it’s possible to debug Haxe-generated js in vscode with source-maps, it’d be great.

Also, LOL @ bikeshedding. Nice expression. You wouldn’t believe me if I told you I consider myself a product manager too right? :smiley:. Seriously though, I only wasted a couple of hours on this and it was PRECISELY so I can get to work AS SOON AS POSSIBLE. I got the prototype up & running and with full debug capabilities in an IDE I was accustomed to in a couple of hours, so it’s not that bad :slight_smile:

Good point.

I didn’t mean to be offensive or anything, btw. You know how it’s hard to convey emotions and express the right intentions through chat only. It was just a fun way of showing that sometimes we over-complicate, as engineers trying to create business value.

I’m passionate about this because I also tend to go deep down rabbit holes. It’s fine if you accept the time you are losing. You might even reframe it as some kind of learning investment – in the end, only you can decide if it’s worth it or not – but in the context of being a solopreneur (my case), it’s vital to have a more pragmatic results-oriented mindset and always simplify, fast.

1 Like

Completely on the same page @fullofcaffeine :). Thank you!

If you install Debugger for Chrome and/or Debugger for Firefox extensions, you can start a debugging session from within VSCode - including call stack, console, variables and breakpoints, by just pressing F5 (you have to setup a launch configuration on first press).
[edit]In case it’s unclear: you’re debugging Haxe code[/edit]

Note: launching with F5 does not automatically start a Webserver to serve your files.
So whatever URL you enter in your launch.json you need to make sure there is a fileserver running and serving your files. You can setup a local nginx or apache to serve files from your output folder, or you can use some more impromptu solutions like running php -S addr:port or something involving NodeJS.

1 Like

@ablum Thanks! Is there any special settings needed in the hxml / haxe source needed in order for this to work? Do you know if this is documented somewhere?

Even with the built-in Node debugger outside of a browser environment, source maps “just work” in my experience (without vshaxe having to do anything for it). Here’s an example.

it works as long as there is a source map, so -debug or -D js-source-map should be in your build command line / hxml…

I am not aware of (or can’t recall) any documentation describing the process. It wasn’t too hard to figure out. The trickiest bit was the “not launching a webserver” part. Once you solve that, you should be fine.

@ebishton:

Hi Eric,

could you please post a link to the openFl discussion, where you explain the details about the connection with the compilation server and the intelliJ plugIn?

I have the same questions about performance and openFl compilation.

But I did not find it the post, yet.

Kind regards
Arnim

@loxogon: You’re thinking of this article on the web site: Compiler-based Completion - IntelliJ-Haxe

Look at the bottom of the page for the discussion about why it can’t effectively be used with OpenFL.

That actually changed in recent OpenFL versions. :slight_smile: