Live data from Hacker News

Pangolin desktop environment for Fuchsia and Linux written in Flutter

github.com

131–140 of 141 posts

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#131
post #15

Demo: https://web.dahliaos.io/#home The UI is still quite slow. Hard to get excited about Flutter.

I agree. Every Flutter app I've ever used has been noticeably janky. The absolute worst is the UI for the Google Home Hub which runs at about three frames per second and is incredibly unresponsive to touch and button input. It's as frustrating to use as the touchscreen navigation system displays in old cars, the ones with resistive touchscreens. I like a lot of things about Flutter, but how did they develop a complet…

It may have something to do with the fact that Flutter state management of the UI requires the UI to repaint completely whenever there is a change.

This makes no sense whatsoever because it goes exactly in the opposite direction of optimised graphics programming - where the ideal was to repaint the smallest portion of the screen as possible for any change.

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#132

Earlier quoted context omitted.

I agree. Every Flutter app I've ever used has been noticeably janky. The absolute worst is the UI for the Google Home Hub which runs at about three frames per second and is incredibly unresponsive to touch and button input. It's as frustrating to use as the touchscreen navigation system displays in old cars, the ones with resistive touchscreens. I like a lot of things about Flutter, but how did they develop a complet…

It may have something to do with the fact that Flutter state management of the UI requires the UI to repaint completely whenever there is a change. This makes no sense whatsoever because it goes exactly in the opposite direction of optimised graphics programming - where the ideal was to repaint the smallest portion of the screen as possible for any change.

No, that's not right. Optimizing repaint rectangles is kind of a corner case these days. It's a nice feature to have in some cases for reducing battery usage, but if you're relying on it to hit 60 FPS then you are certain to fail because there are always cases where you do have to repaint the whole screen. If you can't do that at 60 FPS you're already screwed.

Games redraw everything every frame, and yet good games have much better performance than UI toolkits generally.

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#133

Earlier quoted context omitted.

It could be confused with Ubuntu Precise Pangolin, if people search "Pangolin Ubuntu"

As well as System76's Pangolin laptop, which also runs Ubuntu.

pangolin originated before system76 brought out the laptop

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#134

Earlier quoted context omitted.

It may have something to do with the fact that Flutter state management of the UI requires the UI to repaint completely whenever there is a change. This makes no sense whatsoever because it goes exactly in the opposite direction of optimised graphics programming - where the ideal was to repaint the smallest portion of the screen as possible for any change.

No, that's not right. Optimizing repaint rectangles is kind of a corner case these days. It's a nice feature to have in some cases for reducing battery usage, but if you're relying on it to hit 60 FPS then you are certain to fail because there are always cases where you do have to repaint the whole screen. If you can't do that at 60 FPS you're already screwed. Games redraw everything every frame, and yet good games h…

Just curious but isn't the whole point of using techniques such as double buffering meant to reduce the time it takes to make an update to the screen? wouldn't that actually enable higher FPS? Why would you draw an entire screen when you could repaint just a small portion of it?

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#135

Earlier quoted context omitted.

For a feature you use once every other week/month I don't see it as a resignation. Don't see the point from a UI perspective to show me everything, including features I may never ever use, each time I want to access features used on a more frequent basis.

Don't you think you would use them more if they weren't hidden behind a menu within a menu behind a tiny button that's almost impossible to click because it's so small?

Doubt that, I know they exist.

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#136

Earlier quoted context omitted.

I don't really understand why you would want to click to have focus on a window.

Isn't that how focusing windows on Windows works? As far as I know, it doesn't have focus-follows-mouse.

I don't know I don't use it.

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#137
post #96

Earlier quoted context omitted.

The lack of scrollbars on desktop is a modern trend that annoys me Desktops aren't short of width, so why try and hide the scrollbars all the time, but programs seem happy to pack everything into navigation bars at the top where height is limited.

The functionnality of a scrollbar is provided by the touchpad, mouse with wheels , pageUp/Down and search tools so I have never missed it.

It's also a visual indicator of where you are on the page. How far through you are, and how much is "left" to go.

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#138

Earlier quoted context omitted.

No, that's not right. Optimizing repaint rectangles is kind of a corner case these days. It's a nice feature to have in some cases for reducing battery usage, but if you're relying on it to hit 60 FPS then you are certain to fail because there are always cases where you do have to repaint the whole screen. If you can't do that at 60 FPS you're already screwed. Games redraw everything every frame, and yet good games h…

Just curious but isn't the whole point of using techniques such as double buffering meant to reduce the time it takes to make an update to the screen? wouldn't that actually enable higher FPS? Why would you draw an entire screen when you could repaint just a small portion of it?

Double buffering prevents the user from seeing a half painted buffer. Instead of having the application draw directly to the screen buffer, the application draws to an offscreen buffer and the buffers are swapped only after drawing is finished. It's orthogonal to whether you do full or partial updates. (Although if you do partial updates then you're not really swapping the whole buffer, you have to do a blit to present instead and that can actually be less efficient than swapping if the swap path is really swapping, say if you're in fullscreen exclusive mode or if hardware overlays are in use). And it can only ever increase the time it takes updates to reach the screen, not decrease it, since it adds an extra step (swapping) compared to drawing directly on the front buffer.

Why would you draw the entire screen? Well, it instantly eliminates a whole class of bugs where partial updates don't match full updates. It eliminates a ton of really complex code you'd otherwise have to write to track the on-screen size of arbitrary changes separately from painting them, and skip things outside the dirty rectangle while painting. And it doesn't change your worst case performance, which is what you care about when trying to hit a fixed frame rate. Actually the worst case performance should be slightly better because you're not wasting time tracking changes when you have to paint the whole screen anyway.

So the question really is, why would you bother to implement partial updates? The only real reason would be to save power in scenarios where only a small part of the screen is changing. Which is important but not that related to responsiveness or animation smoothness, which again are about worst-case performance.

Even if you do want partial updates you may be better off simply special casing a few common things like blinking cursors or video playback than implementing a fully general change tracking solution.

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#139

Man, the HN crowd is tough. Folks here don't seem to like anything other than Win95 UI. I personally found the UI to be very slick and pretty. It seems very similar to Win11 and looks rather pretty. Would love to give it a try.

Seems like around Windows 95 was the last time designers put a thought to designing for usability and around the actual constraints in the medium. Most modern UIs seem to focus almost entirely on clean aesthetics, usually mindlessly drawing on conventions that serve limitations that exist in mobile, such as being really conservative about using screen space. I think desktop Firefox is an excellent example of this. A…

The “Hamburger” button or “≡” represents a list of options, which is what a menu is.

Re: Pangolin desktop environment for Fuchsia and Linux written in Flutter

#140

Earlier quoted context omitted.

I think to say that its entire existence is a conspiracy to replace the web is a bit much, and I'm sure that the engineers creating it have good intentions. But that doesn't mean Google, the business, doesn't see the value to its bottom line. Google is and will always be an advertising company. Flutter may make UI development less painful for developers, but it takes control out of the users' hands. The web is great,…

Certainly Google sees value in Flutter, otherwise we wouldn’t fund it to the tune of 100+ engineers. But our motivations are less malevolent than you might assume. Here is our strategy doc, which we publish in the open (not many products can say that, I think): https://medium.com/flutter/flutter-in-2022-strategy-and-road...

Again, lipstick on a pig.
Post reply on HN