Release 0.4 — Stateless widgets, component trait, responsive views, WebGL support, and more!#1328
Merged
Conversation
Contributor
|
Incredible release! Thank you for your work and congratulations! You should be very proud! |
Contributor
Contributor
|
What a great release! Thank you everyone for your work! 😃 |
Contributor
|
Big thank to all the contributors and a huge thank for the one and only @hecrj! Kudos for this release! 🏆 I really wasn't ready to see this release featuring my side-project Universal Android Debloater. Thank you! I also feel a bit illegitimate to appear in the contributors list simply because I implemented the |
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.0milestone 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::Statein your application!Componenttrait (iced_lazyandComponenttrait #1131)A new trait to implement custom widgets with internal mutable state while using composition and The Elm Architecture.
Responsivewidget (Responsivewidget #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
canvaswhen 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
aarch64andarmv7to easily cross-compileicedapplications and target Raspberry Pis. Thanks to @derezzedex!Simpler
RendererAPIs (Reduce the surface of theRendererAPIs #1110)The surface of the
RendererAPIs of the library has been considerably reduced. Instead of aRenderertrait 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:
Defaulttrait forpure::State(ImplementDefaultforpure::State#1298).PickListby scrolling (add scrolling to pick_lists #872).PickListwidget (Add Placeholders to PickList #888).Svgwidget (Use ceil on svg dimensions, fix svg memory usage ref #841 #952).iced_wgpu.iced_glow(Fix window holes behind transparent objects #1021).ContentFitsupport for theImageandSvgwidgets (ContentFit support for images #1219).select_allmethod totext_input::State(Addedselect_allmethod toTextInput. #776).image::Handlefromiced_nativeand lowered the trait bound oftext::Renderer::Font(Decoupleimage::Handlefromiced_nativeand lower trait bound ontext::Renderer::Font#1155).Application::runto return on native platforms (Application::run returns on native platforms #1112).iced_wgpuby using the preferred texture format of the window surface (wgpu: Use the preferred texture format of the surface #978).iced_wgpupanicking when aSwapChainframe is outdated (Don't panic when wgpu swapchain frame is outdated #667), andRulewidget (tweak default rule style #994).pureversion of theTooltipwidget (Implemented Tooltip as Pure #1315).PickListto respect custom fonts (pick_list: fix layouting not respecting fonts #886), andimage::Viewerwidget (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).TextInputwidget (Fix issue with text selection in text_input widget #1098).Componentwidget (Fix component overlay position #1205).WGPU_BACKENDenvironment variable (Add a primary backend that can be set #876).canvas::Program(Fix typo in documentation ofcanvas::Program#927).wgputo0.8(Upgrade wgpu #830).Sandboxapplications to quit gracefully (Allow Sandbox applications to exit. #1175).integration_openglexample (Fix memory leak in opengl integration example #1181).text_colorto theStyleof aCheckbox(Add checkbox text_color styling #1116).winitto0.25(Bump winit to 0.25 #919),hash_layoutimplementation of theContainerwidget (Include alignment in the container layout hash #1140).Togglerwidget (ImplementTogglerwidget for iced_native #535).iced-rsorganization (Change GitHub namespace to new org to prevent link-rot #1168).todosexample in CI for macOS builds (Open the todos example via double-click on MacOS #956), andoverlaycalls 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::heightimplementation of theComponentwidget (FixWidget::heightforComponent#1149),Widget::overlayforComponent(ImplementoverlayforComponent#1154),Responsivewidget (Fix: overlay layout forResponsive#1262),Componentin a pureResponsivewidget (Allow use ofpure::Componentwithinpure::Responsive#1319).ferris.pngin thetourexample (Fix path to ferris.png #1157).blitshader iniced_wgpu(Fix blit shader constants visibility #1084).wgputo0.9(Updatewgputo0.9#925),wgputo0.10(wgpu: Update to 0.10 #1000), andwgputo0.11(Update wgpu to 0.11 #1081).iced_wgpu(Experimental WebGL wgpu backend support #1096).Stringallocation in some examples (Remove unnecessary String allocation #1106).READMEof theintegration_openglexample.qr_codefeature in docs.rs (Enable qr_code feature on docs.rs #815).twox-hashdependency (Disable default features in twox-hash dependency. #1117)Hiddenvariant towindow::Mode(add window visibility #825),Movedvariant towindow::Event(Add window::Event::Moved #965),PaneGridtitle bar not closing when dragging a pane (fix: allow titlebar overlays to close when dragging pane #971),Fillvariant forAlignment(Add Align::Fill variant #1044),Slidermessages (Don't rebroadcast redundant slider messages #1114),Canvaswidget (Add line dash API #1225), andPickList(FixPickListtext wrapping #1318).scissor_rectiniced_wgpubeing too large in some circumstances (Prevent scissor_rect region to be larger than the target texture in wgpu::Backend::flush #818), andEnterkey forTextInput(Make TextInput emit a Submit message when the key NumpadEnter is pressed #1150).Slider(Slider fix #1286).window::Settingto toggle drag and drop on Windows (Allow disabling drag and drop on windows #893).READMEwith the new Discord server (Replace Zulip with Discord in README #1151).iced_glowfor multi-windowed applications (Fix glow and multiple windows usage #980).Scrollableprogrammatically (Add methods to controlScrollableprogrammatically #607),iced_wgpu(This commit optimizes the algorithm used to convert rgba pixels into bgra pixels for SVG's. #875).text_colorandfontmethods toRadioandCheckbox(Added text color and font options for native radio and checkbox #831).I am very grateful for all your contributions. Thank you! 🎉