On using Heaps (or SDL) for making non-game applications

after getting a bit more accustomed to game engines ‘n frameworks, i kinda feel like using these for making everything :smiley:, but, is that a bad idea?

i don’t know what the differences are between something that is meant for apps, such as Flutter, and the “low-level frameworks” such as Heaps (mid-level?), OpenFL/Lime, NME (dead?), Snow (rip :cry:), or just a SDL2 wrapper.

for example, let’s say i wanted to make an iOS text editor, but since i’ve got the power of a game engine, i then add all sorts of cool visual effects that require low-level api! :grin:

would something like Heaps really be an overkill (duplicate)?, as in literally kill the battery life, lol? I see Flutter uses a 2d graphics lib called Skia, and i assume Google just super-optimizes everything…

Or perhaps, the biggest problem in this case is mobile deployment? I’m not even sure of what the latest thread on it is… this one? …But at least on desktop ‘n web it’d surely be fine… right?

i think i can survive without native widgets ‘n hot re-loading…

anyway, just curious if anyone’s got a clue… as it would be totally awesome to use one framework to make anything! …only one framework to rule them all!.. :woman_mage:

…and not cave into Google’s version of Haxe, and be forced to learn and conform to yet another framework. :frowning:

update: note: quentin dreyer’s android template and ios template seems to be well-maintained with continuous build, and it’s around 3 years newer than the official repos

1 Like

Usually when you are doing native apps with text / buttons etc you want to keep the native feel of the phone/platform, so you need to use the platform native components and not some kind of abstract UI that doesn’t match the behavior users are used to.

1 Like

huh, non-native stuff doesn’t bother me so much…, it’s just… ugly, lol. But yeah, native feel seems like an eternal cross-platform problem. :cry:

i looked into this a bit more… It seems like Haxe UI can do native via wxWidgets (C++), but wxWidgets’s mobile target is… experimental, to be nice lol, and at the least out-dated and incomplete. However, if one doesn’t worry about native controls, Haxe UI even has a Heaps specific “back-end”(!!!) (repo link). That’s hype!! And it’s up-to-date!!! I personally am content and perfectly happy with that :slight_smile:, at least for the moment… it would even be easy to update the Heaps back-end!

if for some reason Haxe UI doesn’t cut it, then i guess i just gotta man up, and join the dear imgui trend-train. :cry: The only bindings i found for it is through the old snow-kit linc initiative, linc_imgui, and from the looks of it, it might just be easier to write in C++ than to deal with pointer bindings? :confused: Seems like a good time investment though… for the empowerment!, for the power of visualization!!, though, still ugly / non-native (and maybe cpu expensive?). …this might even be a better time investment over HIDE…? :thinking:

otherwise, for native, it seems best to go with one of the newer specialized native gui frameworks: Flutter (Skia, Dart), Avalonia (Skia, .NET), and Uno (~native primitive rendering, .NET). Skia’s ANGLE lib makes simple sense. The old gui frameworks, well, just seem old. :cry:

hmmm… the more i imagine this, i really think it’d be okay with just pure Heaps. Just create an Interactive object, set the event handler, can draw, animate, whatever…, and voila!: a custom gui widget thing! :slight_smile: …i just wouldn’t want to re-create the entire wheel tho. That’s gotta be boring :sob:. Thank goodness for Ian!

Ohhhhh the choices! Maybe my biggest problem with modular design: deciding which module to choose. Not a major problem tho. :relaxed:

i don’t know what the differences are between something that is meant for apps

…and just to follow-up ‘n conclude: i’ve come to learn that there really isn’t much difference in making a normal ui app and a game app, they both deal with io and rendering. It just seems ui is often drawn dynamically, like using Graphics, no bitmaps, probably to easily handle resizing… I guess it’s okay to just dynamically draw stuff every frame after all!? :woman_shrugging: loll

an interesting resource:
Sad state of cross platform GUI frameworks | RoyalSloth