I've been building consumer apps professionally since 2013 on iOS, Android, Windows Phone and the web. I also spent a few years designing and implementing UI frameworks. I've had to deal with all of the problems listed in Dan's article (with and without frameworks). Over the years, I have grown convinced that designing and implementing UI by hand simply doesn't scale. There are too many things to consider, too many d…
How does that scale? It's more than just 'branding' or pretty colours. What about actual featureS? There's the standard say there's the standard 'airline' app, that handles booking flights and then the lifetime of managing that booking. Reserving a seat and so on. Airlines build the data and the APIs, OS vendors (?) build the frontends. Then Singapore Air or whoever comes out with a new product/service - you can book…
The Elements of UI Engineering
61–70 of 84 posts
Re: The Elements of UI Engineering
#62Earlier quoted context omitted.
I think the reduction of the cognitive load of entropy was what propelled React (and specifically its innovation of the Virtual DOM) to be the most widely-used front-end framework. Being able to write a function transforming state to a description of the view, without having to worry about getting from whatever the view currently looks like to what you want it to look like, is a huge advantage. It can certainly still…
> innovation of the Virtual DOM Virtual DOM is rather a desperate move - to support components life time constructor/destructor events componentWill/DidMount / Unmount. What if you will be able to define in standard HTML/CSS something like this (as it is supported natively in Sciter) // css div.mycomponent { behavior: MyComponent url(components.js); } // script in components.js class MyComponent : Element { function…
But it is still far away from standardization.
Re: The Elements of UI Engineering
#63Earlier quoted context omitted.
You're being toxic by calling people "cowards" for simply using a package instead of writing it themselves which reduces the amount of code they need to directly maintain. Displays a complete misunderstanding of the tradeoffs involved as well as being rude. And what's funny is that if you hadn't been a jerk the original point of Frameworks and NPM Packages for everything is a good point and probably would have been w…
Thank you for having the balls to respond. I could have tap danced around that by using a bunch of words like: demonstrating a proportional degree of insecurity to the depth of requirements presented across the breadth of considerations required by this responsibility . I found the word coward to be more honest and fitting, though. Ultimately, the rampant insecurity isn't a technology problem. It is a personality con…
Re: The Elements of UI Engineering
#64Earlier quoted context omitted.
> innovation of the Virtual DOM Virtual DOM is rather a desperate move - to support components life time constructor/destructor events componentWill/DidMount / Unmount. What if you will be able to define in standard HTML/CSS something like this (as it is supported natively in Sciter) // css div.mycomponent { behavior: MyComponent url(components.js); } // script in components.js class MyComponent : Element { function…
If I am not mistaken, Houdini will allow similar features. But it is still far away from standardization.
Sciter uses this feature almost 10 years.
All these 10 years we have libraries of reusable components and so no need for React.
Same is about flexbox and grid: https://terrainformatica.com/2018/12/11/10-years-of-flexboxi...
Re: The Elements of UI Engineering
#65Earlier quoted context omitted.
There's no reason for route transition to be a special case of state transition. Here are some examples of state transitions that can be augmented with animations: - reorder items in a lost - add/remove an item from a list - expand/collapse an element - hover/press/disable a button - show a popup - show an inline error message - open a drop down menu - open/close a burger menu - change the burger menu button to a bac…
Interesting! Are there any resources or books that you might share that delve into this kind of reasoning towards UI engineering?
For now, it's just a bunch of things I figured out along the way.
Re: The Elements of UI Engineering
#66Earlier quoted context omitted.
Thank you for having the balls to respond. I could have tap danced around that by using a bunch of words like: demonstrating a proportional degree of insecurity to the depth of requirements presented across the breadth of considerations required by this responsibility . I found the word coward to be more honest and fitting, though. Ultimately, the rampant insecurity isn't a technology problem. It is a personality con…
Why is it people think being "honest and transparent" means being rude and mean? Tact is also a useful skill.
Tact isn’t a form of antidepressant. Tact is the means to account for the intention of offense without regard for actual offense. Overly sensitive people may never see that distinction.
People who figure these things out early tend to live happier and more fulfilled lives.
Re: The Elements of UI Engineering
#67Earlier quoted context omitted.
That's exactly how some of the newer libraries in React ecosystem work btw. For example, Downshift is that "DYI Autocomplete" — it handles a11y and mechanics but you can compose any kind of behavior and styling out of its primitives. https://github.com/paypal/downshift I'm glad to see this trend.
I've used Downshift before and while I like the idea, what I am suggesting is broader in scope. A set of primitives such as Overlay, Rectangle, Circle, List, Row, Column, etc that still allow you to apply styling but overall they sit at a lower level of abstraction than ready-made components, even ones based on something like Downshift. The more I think about this the more I feel like I'm describing exactly how "Qt Q…
Re: The Elements of UI Engineering
#68Earlier quoted context omitted.
Absolutely. https://en.wikipedia.org/wiki/Invented_here The name of the game is failure aversion. Frameworks and NPM packages for everything. When I interview JavaScript or UI developers this is my first discriminator. Why write original code or reinvent the wheel when somebody else has your simple solution behind 50mb of external code that you didn't write? If you are that fearful coward who believes in not writing…
It's important to understand the root of the arguments for and against both "not invented here" and "invented here". Both can be considered a poor mindset because it's thinking in absolutes. Certainly, everyone can agree there is no need to "write original code" for every problem you encounter. If there are libraries behind which there are teams of strong engineers (React, Angular), who work specifically on that prob…
Re: The Elements of UI Engineering
#69Earlier quoted context omitted.
If I am not mistaken, Houdini will allow similar features. But it is still far away from standardization.
> still far away from standardization. Sciter uses this feature almost 10 years. All these 10 years we have libraries of reusable components and so no need for React. Same is about flexbox and grid: https://terrainformatica.com/2018/12/11/10-years-of-flexboxi...
Re: The Elements of UI Engineering
#70Earlier quoted context omitted.
> still far away from standardization. Sciter uses this feature almost 10 years. All these 10 years we have libraries of reusable components and so no need for React. Same is about flexbox and grid: https://terrainformatica.com/2018/12/11/10-years-of-flexboxi...
Well, native has it even longer (WPF behaviors and grid), but I have to put up with Web for most of my projects.