:D
It might be developer fantasy but half of the giants in the mobile market really did take off this way:
* xiaomi with their miui skin/custom ROM - "bringing iOS like polish to Android" back then
* oneplus with their initial devices with cyanogenmod - clean aosp interface without any bloat and lots of features.
In fact, when my brother was buying phones for my mom (neither of them were really that technically inclined), he bought a Motorola mostly because "it doesn't have all those ads like redmi at the same price"
I think the main difference due to weight boils down to you riding in one gear lower when not using assistance.
On flat roads, I usually ride on 3rd or 4th gear (out of 7), now i ride in 2nd or 3rd.
But where i ride, the road isn't even and has a lot of steep slopes. There I'm on 1st gear all the time anyway and the assistance i get totally saves my knees, and ensures I'm not all sweaty when i reach my destination. Even compared to the light weight regular bicycles i rode before, this is better.
It's not about what gets redrawn but also how much of the UI state is still retained (by the GPU). Imagine having to reupload all the textures, meshes to the GPU every frame.
Something like a lot of text ? Probably easier to redraw everything in immediate mode.
Something like a lot of images just moving, scaling, around? Easier to retain that state in GPU and just update a few values here and there...
> The more dynamic/animated an UI is, the less there's a difference between a retained- and immediate-mode API, since the UI needs to be redrawn each frame anyway. Immediate mode UIs might even be more efficient for highly dynamic UIs because they skip a lot of internal state update code - like creating/destroying/showing/hiding/moving widget objects).
That depends on the kind of animations - typically for user interfaces, it's just moving, scaling, playing with opacity etc.. that's just updating the matrices once.
So you describe the scene graph once (this rectangle here, upload that texture there, this border there) using DOM, QML etc..., and then just update the item properties on it.
As far as the end user/application developer is concerned , this is retained mode. As far as the GPU is considered it can be redrawing the whole UI every frame..
That really depends on the kind of user interface no?
If you just have a lot of text and a few rectangles and no animation, immediate mode would work well...
But if you have a lot of images, animation etc ... You'd anyway have to track all the textures uploaded to the GPU to not reupload them. Might as well retain as much of the state as possible? (Eg. QtQuick)
This project is an enhanced reader for Ycombinator Hacker News: https://news.ycombinator.com/.
The interface also allow to comment, post and interact with the original HN platform. Credentials are stored locally and are never sent to any server, you can check the source code here: https://github.com/GabrielePicco/hacker-news-rich.
For suggestions and features requests you can write me here: gabrielepicco.github.io