Release 0.4
β Stateless widgets, component trait, responsive views, WebGL support, and more!
#1328
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR marks the end of the
0.4.0
milestone and the launch of a new release πNew features
Stateless widgets (Stateless widgetsΒ #1284)
A brand new widget API that removes the need to keep track of internal widget state. No more
button::State
in your application!Component
trait (iced_lazy
andComponent
traitΒ #1131)A new trait to implement custom widgets with internal mutable state while using composition and The Elm Architecture.
Responsive
widget (Responsive
widgetΒ #1193)A widget that is aware of its dimensions and can be used to easily build responsive user interfaces.
Experimental WebGL support (Experimental WebGL wgpu backend supportΒ #1096)
Applications can now be rendered into an HTML
canvas
when targeting Wasm by leveraging the WebGL support inwgpu
. Thanks to @pacmancoder and @kaimast!Support for Raspberry Pis and older devices (feat: add support to ARM devices (and older hardware)Β #1160)
The compatibility of our OpenGL renderer has been improved and should run on any hardware that supports OpenGL 2.1+ or OpenGL ES 2.0+. Additionally, we started maintaining Docker images for
aarch64
andarmv7
to easily cross-compileiced
applications and target Raspberry Pis. Thanks to @derezzedex!Simpler
Renderer
APIs (Reduce the surface of theRenderer
APIsΒ #1110)The surface of the
Renderer
APIs of the library has been considerably reduced. Instead of aRenderer
trait per widget, now there are only 3 traits that are reused by all the widgets.Showcase
During this last year, many awesome applications have been created with iced! As I do in every release, I would like to highlight some of the coolest ones:
And there are more! Check out our Project Showcase.
Community
Since the last release, we have also started setting up the foundations for our open-source community.
We created a GitHub organization to centralize all of the core pieces of the project and adopt other important parts of the ecosystem that can be officially maintained by the community. So far, we have adopted two crates:
iced_audio
, useful widgets for audio applications such as VST / LV2 plugins.iced_aw
, additional widgets for the library.We also migrated from our old Zulip instance to a new Discord server, where we hold meetings regularly to review and coordinate work. These meetings have been quite successful so far! Feel free to join them!
Finally, we are actively working on proper learning material and documentation. In that direction, we have an official learning guide and a new website in the works.
Thank you! π
Finally, I want to give my thanks to everyone that has contributed to this release:
Default
trait forpure::State
(ImplementDefault
forpure::State
Β #1298).PickList
by scrolling (add scrolling to pick_listsΒ #872).PickList
widget (Add Placeholders to PickListΒ #888).Svg
widget (Use ceil on svg dimensions, fix svg memory usage ref #841Β #952).iced_wgpu
.iced_glow
(Fix window holes behind transparent objectsΒ #1021).ContentFit
support for theImage
andSvg
widgets (ContentFit support for imagesΒ #1219).select_all
method totext_input::State
(Addedselect_all
method toTextInput
.Β #776).image::Handle
fromiced_native
and lowered the trait bound oftext::Renderer::Font
(Decoupleimage::Handle
fromiced_native
and lower trait bound ontext::Renderer::Font
Β #1155).Application::run
to return on native platforms (Application::run returns on native platformsΒ #1112).iced_wgpu
by using the preferred texture format of the window surface (wgpu: Use the preferred texture format of the surfaceΒ #978).iced_wgpu
panicking when aSwapChain
frame is outdated (Don't panic when wgpu swapchain frame is outdatedΒ #667), andRule
widget (tweak default rule styleΒ #994).pure
version of theTooltip
widget (Implemented Tooltip as PureΒ #1315).PickList
to respect custom fonts (pick_list: fix layouting not respecting fontsΒ #886), andimage::Viewer
widget (image viewer: Only calculate viewport based width/length for Length::Unit|ShrinkΒ #885).PaneGrid
(PaneGrid Events in Title Bar AreaΒ #892), andPaneGrid
(Pane Grid Title Bar OverlayΒ #920).TextInput
widget (Fix issue with text selection in text_input widgetΒ #1098).Component
widget (Fix component overlay positionΒ #1205).WGPU_BACKEND
environment variable (Add a primary backend that can be setΒ #876).canvas::Program
(Fix typo in documentation ofcanvas::Program
Β #927).wgpu
to0.8
(Upgrade wgpuΒ #830).Sandbox
applications to quit gracefully (Allow Sandbox applications to exit.Β #1175).integration_opengl
example (Fix memory leak in opengl integration exampleΒ #1181).text_color
to theStyle
of aCheckbox
(Add checkbox text_color stylingΒ #1116).winit
to0.25
(Bump winit to 0.25Β #919),hash_layout
implementation of theContainer
widget (Include alignment in the container layout hashΒ #1140).Toggler
widget (ImplementToggler
widget for iced_nativeΒ #535).iced-rs
organization (Change GitHub namespace to new org to prevent link-rotΒ #1168).todos
example in CI for macOS builds (Open the todos example via double-click on MacOSΒ #956), andoverlay
calls not being forwarded when usingElement::map
(Forward overlay() calls in iced_pure::element::MapΒ #1294).Element::explain
(Fix color issue with Debugger::explain implementation for RendererΒ #1109).Button
(Disabled button docs and consistent behaviorΒ #646).Widget::height
implementation of theComponent
widget (FixWidget::height
forComponent
Β #1149),Widget::overlay
forComponent
(Implementoverlay
forComponent
Β #1154),Responsive
widget (Fix: overlay layout forResponsive
Β #1262),Component
in a pureResponsive
widget (Allow use ofpure::Component
withinpure::Responsive
Β #1319).ferris.png
in thetour
example (Fix path to ferris.pngΒ #1157).blit
shader iniced_wgpu
(Fix blit shader constants visibilityΒ #1084).wgpu
to0.9
(Updatewgpu
to0.9
Β #925),wgpu
to0.10
(wgpu: Update to 0.10Β #1000), andwgpu
to0.11
(Update wgpu to 0.11Β #1081).iced_wgpu
(Experimental WebGL wgpu backend supportΒ #1096).String
allocation in some examples (Remove unnecessary String allocationΒ #1106).README
of theintegration_opengl
example.qr_code
feature in docs.rs (Enable qr_code feature on docs.rsΒ #815).twox-hash
dependency (Disable default features in twox-hash dependency.Β #1117)Hidden
variant towindow::Mode
(add window visibilityΒ #825),Moved
variant towindow::Event
(Add window::Event::MovedΒ #965),PaneGrid
title bar not closing when dragging a pane (fix: allow titlebar overlays to close when dragging paneΒ #971),Fill
variant forAlignment
(Add Align::Fill variantΒ #1044),Slider
messages (Don't rebroadcast redundant slider messagesΒ #1114),Canvas
widget (Add line dash APIΒ #1225), andPickList
(FixPickList
text wrappingΒ #1318).scissor_rect
iniced_wgpu
being too large in some circumstances (Prevent scissor_rect region to be larger than the target texture in wgpu::Backend::flushΒ #818), andEnter
key forTextInput
(Make TextInput emit a Submit message when the key NumpadEnter is pressedΒ #1150).Slider
(Slider fixΒ #1286).window::Setting
to toggle drag and drop on Windows (Allow disabling drag and drop on windowsΒ #893).README
with the new Discord server (Replace Zulip with Discord in READMEΒ #1151).iced_glow
for multi-windowed applications (Fix glow and multiple windows usageΒ #980).Scrollable
programmatically (Add methods to controlScrollable
programmaticallyΒ #607),iced_wgpu
(This commit optimizes the algorithm used to convert rgba pixels into bgra pixels for SVG's.Β #875).text_color
andfont
methods toRadio
andCheckbox
(Added text color and font options for native radio and checkboxΒ #831).I am very grateful for all your contributions. Thank you! π