3 ms·
Let's say you have a really complex UI. Would you really define your UI in code over XML or HTML
by 999900000999 5y ago
Let's say you have a really complex UI.
Would you really define your UI in code over XML or HTML
- setr 5y agoYes. The more complex and more dynamic the UI, the worse the separation gets. The worst of it being when you’re writing code to generate your XML/HTML, and probably introducing a third “templating” language to continue the pretense that HTML/XML is not just standard data structures defined in a different syntax. The purpose of XML/HTML is to make your GUI specification independent of the programming language itself, and independent of any particular library (anyone can spit out an HTML <button>… it’s quite difficult for C++ to construct a Java Button class). And there’s some notion that it’s easier for “non-programmers” to edit, without being bogged down programming language details (its “easier” to learn HTML than Java… and as programmers we eat the cost by now having to learn both)
- 999900000999 5y agoSo now I'm assuming, you're approach would be to just have classes for your custom UI elements. It might just be a Unity thing, but up until they released their XML UI tools, I could not build a decent UI for the life of me. Basic things like getting buttons to appear where I want them to are very hard without XML
- setr 5y agoIt’s ultimately the same; XML largely maps to a class with attributes (and an identifier/navigation through XPATH) fairly strictly. And it should largely take you the same amount of effort; Div ( button(…) ) And <Div> <button>…</button> </Div> is equivalent. Things like separating your definition from your styling isn’t a feature of HTML/CSS, it’s a feature of the API design — the API just happens to be encoded one way or the other. In-line callbacks vs a selector + callbacks is the same as well (you still need a way to navigate the hierarchy, but XPATH & co. makes just as much sense on an object tree as it does on XML — although with code, you could also just keep the pointer around) I don’t know unity’s API’s, but I’d bet that their GUI API doesn’t actually look much like their XML API; and that if they did, you’d have had just as much, or little, trouble picking it up.