Open coolbluewater opened 6 months ago
@coolbluewater
I'm not quite sure what you mean by "custom-rendered widgets like Flutter". Could you provide more details?
By removing debug=true
and using the configuration below in Cargo.toml, the binary size is reduced to about 9.2MB on Ubuntu 20.04.
[profile.release]
opt-level = "z"
lto = true
strip = true # Automatically strip symbols from the binary.
This size is still large. We haven't deeply analyzed the binary size yet, but I think it's partly because we include all theme resources, like icons and fonts, in the binary. Some dependencies also have a large size. We hope to reduce the binary size by the time we release version 1.0, but it's not our main focus right now.
No, Ribir provides a painter for drawing 2D elements, but it doesn't expose the wgpu context to the user. Ribir is backend-agnostic for rendering. We might provide two ways to handle 3D elements in the future, but we don't have a timeline for this yet.
The term "Lists" is just a typo. All widgets are currently in a rough state, and we plan to polish them in version 0.4 or 0.5.
Thanks!
Is there a roadmap document? That and some better docs would really help. Many UI libraries don't put enough effort into a roadmap and documentation, that's a huge mistake IMO.
Debug
and strip the symbols, the size will be 9.2M, we do a very simple analysis before, resource and dependencies are the main reason if I not remember wrong. Yes, we need to finish it before 1.0, maybe in 0.6 or later, we will metrics fps, memory used, Binary size and so on, and trace by ci. We have a roadmap, just list we will do in the next one or two versions. See ./ROADMAP.md.
I totally agree with you, we need to improve the documentation, and we will forwoard a step in every version.
Interesting project. A few questions, would appreciate realistic answers, because other UI crate owners in my experience often respond with "everything is possible" which is not helpful,
1) Is the goal to have only (or primarily) custom-rendered widgets a la flutter? 2) The release build binary size of the storybook example is 19MB, which is super excessive. Why is this? 3) Can a user control custom render itself to wgpu? Can such a control receive input events and IME events? 4) Why is the list widget named
Lists
(plural)?Thanks!