It is hard, and any misteps along the way can doom everything. A single bus without enough bandwidth, not reserving enough CPU time for UI code, to not ensuring end to end performance of the touch system, any mistake and the UI will be sub-par.
The UX also needs to be informed by the hardware capabilities. Even simple things like whitespace around elements being scrolled can reduce HW load.
Honestly the animations don't look too bad, their touch layer however, it looks rather questionable. Doing touch right is a difficult task, it has taken modern smartphone platforms years to get latency down to where it is just barely visible. Now days early gesture recognition involves some amount of ML training that will a touch gesture recognizer that runs on the device, the recognizer is customized per model of touch panel/sensors. (Alternatively, one piece chips that do all of this for you exist, popping out already recognized gestures, they may or may not give better results, I haven't poked around in this space for a few years.)
On top of that, the touch panel needs to be running at a high enough refresh rate, and the entire UI needs to prioritize touch events over almost everything else! Audio Output > Video Playback > Touch Events == UI Updates > Rest of the world
Last system I worked on, touch events could be delivered to the UI up until the moment painting started, painting was capped at ~20ms (IIRC), running at 30fps.
The worst edge case saw 2 frames of latency before the UI responded. Average was around 1 frame of latency.
The other thing I'd have recommended they do for a v1 product is v-sync at 30FPS, and base everything off of that. A smooth 30fps is better than dropping frames at 60fps.
Treat it like a video game, you have a CPU budget in which everything must get done. The rest of the system must be running at a low enough CPU load that the render target can be hit every single frame.
But again, this all has to be started at day 1.
Wrt scrolling-- could they queue the repaints until the scroll reaches its final destination?
I could live with a phone that reacts "instantly" and scrolls with the animation I expect while showing me transient "placeholder" content.
Giving instant feedback to users is crucial. The repaint of content can wait!
The pull down gesture in the video looks like it triggers on touch up. Reminds me of the first gesture handling system I ever wrote. :)
I gave up on it and let someone who knew what they were doing rewrite it from scratch!
On the technical side of things I wonder if the lag is due to the lack of hardware acceleration or if it's because of a very unoptimized early build. If it's the former it'll fix itself when they integrate the GPU, if it's the latter then it's slightly more worrying from a code quality perspective.
Beyond that the interface looks like pre-alpha status (most of the widgets look like placeholders, glitches everywhere etc...) and they want to ship that in 6 months? I hope that early PureOS adopters are ready for a very rough launch, this is going to be quite a ride...
Also, they have a lot of time. I have made a few UI's myself back in the DOS days, before they were always readily available. First I would make it work, then I would make it look good.
Consistent UI, consistent configuration schemes, working suspend-resume, reliable WiFi, reliable auto mount of USB storage, and easy file sharing over LAN for starters.
None of these things was I able to achieve on my ThinkPad even 3 years ago when I last gave Linux a try.
> Consistent UI, consistent configuration schemes
Have you used Windows?
> easy file sharing over LAN
Every install of Ubuntu for years has come with a "public" folder for easy LAN sharing (Samba). https://xkcd.com/949/
Linux has pretty good drivers at this point, and in my experience, often better and more complete than Windows.
Not saying you’re lying or incompetent or anything, but I do think you had a very atypical. Maybe you’re not familiar with Linux? Not trying to put you down, but maybe I find that Linux works Because I’ve been using it for over 15 years at this point.
The number of times I've had network manager simply refuse to connect after opening the laptop lid makes me think we're just living in parallel universes.
Behind what? I've been a daily linux user for the last decade or so, I've always felt the desktop experience was superior to to Windows and Mac. At least Gnome 2/3 has been.
Umm, what? Linux desktop is considered by far to be the most efficient and responsive desktop user interfaces there are. We have DEs that run on 10 year old hardware with no delay and even tilling window managers that are as efficient as you could ever get with todays hardware.
Sure they are not average Joe friendly but to attack it's efficiency and responsiveness is preposterous.
You really can' fault desktop linux at least performance-wise. I have ~3ms input latency in vim on xterm. Good luck beating that on windows, or even a mac.
The reason linux on desktop lags behind is simple - 99% of desktops and laptops come pre-installed with either windows or macos.
The lag in that video is about the same as my cheap Moto G phone. Doesn't bother me in the slightest. I just want a phone that I can trust isn't spying on me 24x7.