Skip to content

Comment on Puny GUI – A tiny cross platform GUI Kit in Janet

Comments

I disagree with the author, it's really easy to test the examples of Nuklear.

I made applications with Nuklear that runs on Android, iOS, macOS, Windows and share the same main C code. For me, it's a dream come true if you create a cross-platform application that needs a simple GUI.

Dear ImGui is also fantastic and more complete than Nuklear.

What I like a lot with Nukear and Dear Imgui is that you have a GUI that is GPU accelerated and so can be updated at 60 FPS without burning resources.

I hope the applications you made with Nuklear and Dear ImGui were only for fun, and not important for someone's job, education, or other essential tasks, because those toolkits have zero accessibility, e.g. for blind people with screen readers, as well as people with other disabilities (e.g. those who require voice or other alternative input methods).

For a fun way to say it, I work in the Rock and Roll business, seriously entertainment.

You are right accessibility is not supported by those 2 frameworks and that's an issue.

One of the applications I wrote simulate a LED protocol and so you just need to launch it and then use it over the network from a server.

https://www.youtube.com/watch?v=v6i-5tD8y40

Ah, cool. I would be more concerned if you were developing an application that was actually used by the musicians. I find it ironic that "blind musician" is such a stereotype, but many applications and plugins targeted at musicians are inaccessible.

You're still going to be updating at 60 FPS which will absolutely murder your battery on a mobile device.

These are meant for use in games that already do this. They are not suitable for building regular apps.

They are perfectly suitable for regular app. You don't need to update them at 60fps, you have the entire control of the rendering state, so you could decide to update the gui whenever it is needed and not at a constant fps.

The common solution is to only update rendering when input happens, and otherwise sleep. That's fairly common for ImGui applications outside games (in games it doesn't make sense of course, since those usually render each frame anyway).

You can update when you want and only on changes if it works better for your case.

I think Nuklear had an option for dynamic update rate. Not sure though

I made applications with Nuklear that runs on Android, iOS, macOS, Windows and share the same main C code.

How do you even compile C code for Android / PlayStore?

I use Visual Studio on Windows with Android (NDK) integration.

Debugging is working smoothly, I was surprised how good the experience was.

My setup is that Window run in a VM (Parallels) from macOS.

I can then open the iOS code from XCode and the Android from Visual studio and switch very quickly between the targets.

In that way, I always commit versions that I already tested and debugged on all the targets I need to support.

https://developer.android.com/ndk

Android NDK

The Android NDK is a toolset that lets you implement parts of your app in native code, using languages such as C and C++. For certain types of apps, this can help you reuse code libraries written in those languages.

Interesting. I was under the impression that all apps on Android would run inside a Java sandbox, but apparently this is not the case. However, now I'm wondering how safe it is to run apps that might contain native code.

You use the Android Native Development Kit (NDK) https://developer.android.com/ndk

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.