Hacker News new | ask | show | jobs
by Arch-TK 41 days ago
Interactive UI design tools are cool when you're not a programmer, an inexperienced programmer, or lack the imagination necessary to create new abstractions.

UI preview tools are incredibly useful, hot reloading when doing UI work is, again, incredibly useful.

What nobody needs in their life is to meticulously hand place elements and align them only for the auto-resizing logic to fuck things up.

You want good abstractions which let you easily and quickly define UI elements and to define new composable widgets. So that you can declare in your code details of how things should be aligned with respect to each other, and leave final layout to more code which, if you are lucky, you might not even need to write.

For an example, check out jetpack compose. It's not completely flawless, but it truly isn't bad.

1 comments

Yeah this is the kind of programmer’s thinking that led to complexity that is present by default and sometimes not warranted.

> meticulously hand place elements and align them

You don’t need as much meticulousness as you imagine. Have you tried placing some text boxes in Keynote or PowerPoint and hand aligning them?

> for the auto-resizing logic to fuck things up.

Auto-resizing is often unnecessary during rapid prototyping. Even in prod, even if you are developing internal apps in an enterprise environment, it’s still not necessary. Make your window non-resizable if you are targeting native, and set a fixed viewport <meta> for web apps.

> define new composable widgets

The kind of people who are enjoying VB6 don’t need new widgets let alone composable widgets. Just use whatever widgets that are builtin.

Basically your entire comment is describing the kind of complexity that I said was not always necessary.

You don't need to be meticulous if you want your software to look like a 5 year old drew it, which maybe you don't care about.

But even so, hand placing 20 labels, editing them to say the right thing, then hand placing the entries, making sure the tab order is correct, you don't want to be doing that by hand. And it gets worse if you need to edit this in the future.

I am not saying this because I think it sounds stupid, I am saying this because I spent 4 years at an organization where this was the only method to do things and I _know_ for a fact that it is stupid and tedious. Given that we had the list of fields, if the language wasn't hot garbage, and the organization wasn't stuck in the past, we could have made it so 99% of fields on 99% of forms could have been placed automatically and cleanly saving literally months of development time in total.

We needed a complex UI for something which could not be done natively using this technology and I proved this to be true when I made a data driven UI in a fraction of the time it was taking to iterate on the legacy version which had 1/10 of the features.