4 ms·
> but why not make the UI native for each platform? As a developer I prefer web tech for UIs, because it's actually a nice toolkit to work with, and has great
by pornel 9y ago
> but why not make the UI native for each platform?
As a developer I prefer web tech for UIs, because it's actually a nice toolkit to work with, and has great tooling.
I can easily debug and live edit the UI with DevTools. OTOH in Xcode's constraint-based layout I struggle to even move buttons around (if I fail to update all constraints right, the whole layout collapses). On Windows I don't even know which of the many UI frameworks is the least deprecated this year.
- matthewmacleod 9y agoI can understand that, and certainly the web platform is much nicer than it used to be – especially when building for a constrained, known environment like Electron. Don't discount the native platforms though, which are still very powerful. Constraint-based layout can be frustrating at first, but I've found it's not noticeably more awkward than CSS after a little experience. Similarly, it's no worse figuring out how to build a native Windows GUI than it is figuring out what CSS or JS framework to use. Just a bit of research :)
- ken 9y ago> I struggle to even move buttons around (if I fail to update all constraints right, the whole layout collapses) I would say that accurately describes my experience with CSS. Any selector has the potential to mess up the entire page. With NSLayoutConstraints, not only does it match my mental model of how layout ought to work, but I know that in a properly-factored layout, constraints can only mess up their local section. Globals make debugging tough in any context, and I wouldn't blame the language simply for allowing their use.
- jakelazaroff 9y ago> Any selector has the potential to mess up the entire page. That's true, but the modern web stack has several solutions to this. If you don't mind "CSS-in-JS", I've been using the excellent styled-components [1] library for my company's React app. I believe Vuejs supports scoped styles out of the box [2]. And if you'd prefer to just write plain CSS, CSS modules [3] will mangle the classnames in your CSS files so you don't have to worry about collision. [1] https://www.styled-components.com/ https://www.styled-components.com/ [2] https://vue-loader.vuejs.org/en/features/scoped-css.html https://vue-loader.vuejs.org/en/features/scoped-css.html [3] https://github.com/css-modules/css-modules https://github.com/css-modules/css-modules
- ken 9y agoYep, and I consider this one of the main advantages of tools like SASS, even.
- girvo 9y agoSo your hypothetical native layout is properly factored, but the CSS one isn’t in this comparison?
- ken 9y agoNo. Even in perfectly factored CSS, one bad selector still can mess up the whole page, no? That's why all those nifty tools (mentioned in a sibling comment) exist.