A Tour of Iced 0.10

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 พ.ย. 2024

ความคิดเห็น •

  • @danielyrovas
    @danielyrovas ปีที่แล้ว +56

    The fact that pop os decided to use this for their upcoming cosmic desktop is the main reason I'd consider this over druid/xilem. It looks quite cool, although definitely not quite ready for prime time.

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +16

      yeah, pop's investment in the project is a major positive. I see Iced more as something that can be used today if it fits the project's needs while xilem/etc are more on the research project side for the moment.

    • @verified_tinker1818
      @verified_tinker1818 ปีที่แล้ว +5

      The fact that Druid is abandoned and Xilem is a barebones research project probably helps.

    • @tui3264
      @tui3264 ปีที่แล้ว +1

      floem looks better and has an actual project using it (lapce) and build on same stack but uses solidjs like signals using leptos signal lib I think

    • @FineWine-v4.0
      @FineWine-v4.0 ปีที่แล้ว

      ​@@tui3264can I get a link

    • @verified_tinker1818
      @verified_tinker1818 ปีที่แล้ว

      @@tui3264 I recently tried out Vizia, which has a combination of Iced's message-update-style mutation and Druid's lens-style data binding. It felt pretty good.

  • @arcaneminded
    @arcaneminded ปีที่แล้ว +55

    My opinion of Iced after following it for a few years is that it still needs to get multiline text and general formatting before it's worth looking at seriously.

    • @hermannpaschulke1583
      @hermannpaschulke1583 ปีที่แล้ว +12

      They have a new roadmap, iirc it's planned for the 0.11 release

    • @avsaase
      @avsaase ปีที่แล้ว

      ​@@hermannpaschulke1583I thought advanced text handling was added in this release (0.10)

    • @JosephDalrymple
      @JosephDalrymple ปีที่แล้ว

      @@hermannpaschulke1583 *_Finally!_*

    • @stephendaedalus7841
      @stephendaedalus7841 ปีที่แล้ว +5

      There is no 0.11 release, going straight to 0.12 from 0.10. Multi line support is available right now via the text-editor widget (PR #2123)

  • @RogerValor
    @RogerValor ปีที่แล้ว +7

    iced is like that one library i could not find much on, except the reddit posts by a few who swear on it, when i researched gui libraries (which probably lead to programmers are also human to include it in their rust sketch). thank you for taking a look on it.

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +6

      The experience building a small Iced app seems good, even if the documentation is majorly lacking right now. You definitely have to be willing to read code in the git repo, even if just the examples, and dive through the docs.rs page to work with it though.

    • @RogerValor
      @RogerValor ปีที่แล้ว

      @@chrisbiscardi to be fair, that was my experience with all gui libraries i looked at, but iced was especially undocumented :D I also agree to all your points, I hope one day you make a comparison between multiple and select the top 3 or sth :) atm. i personally can't decide which to take, so for now I play with leptos and egui, but I am really bad at guis, the best experience I had in my life was Qt.

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +2

      @@RogerValor leptos and egui are both solid choices. Personally I went with Leptos for a couple sites recently and its been working out well. I feel like leptos and egui have slightly different applications, with egui's domain being closer to something like bevy_inspector_egui. Rerun.io is using it for similar applications. and Leptos' domain being cross-platform desktop apps with Tauri (as an electron replacement) or websites on the internet.

  • @gridlocdev2023
    @gridlocdev2023 ปีที่แล้ว +7

    I'd love to see a video on Slint, which is another Rust-based GUI toolkit created by the guys behind QT. It's a very forward-looking framework, which delegates a QML-like DSL for describing the UI, and an FFI layer that can allow business logic to be programmed in any language that has bindings for it (Rust, C++, JavaScript).

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +4

      I could potentially do a video on slint, I've been following them since they were sixtyfps. The only issue is that I'd have to spend a bunch of time reading, digesting, and talking about their licensing and I don't really feel like doing that 😅 so every time the video comes up as an option I end up just pushing it off to work on something else.

    • @petter9078
      @petter9078 10 หลายเดือนก่อน +1

      @@chrisbiscardi Just wanted to say that a slint video would be great!

  • @kc3vv
    @kc3vv ปีที่แล้ว +6

    For desktop UI relm4 or gtk4 is also pretty nice. Also Slint should not be forgotten either (similar to QT and QML).

    • @wacesferpit
      @wacesferpit ปีที่แล้ว +1

      Slint is the one I'm most hyped about, I quite like the QML approach, but find the overall Qt ecosystem horrendous, specially how it solely works with C++ (yes there are bindings for other languages, but they're either abandoned or really half baked and not production ready), so something that takes that approach, but is made to work on better languages (also not just Rust, I like how they plan on having bindings for more languages) and has less baggage is really exciting

  • @KonstantinScheglov
    @KonstantinScheglov ปีที่แล้ว +1

    Somewhat similar to Flutter, when normal Dart language is used to build UIs, with `if` statements, etc.
    Of course Flutter has much more widgets, hot reload, etc.
    But I'm currently curious about Rust, nice to see that it gets UI frameworks too.

  • @joelmontesdeoca6572
    @joelmontesdeoca6572 ปีที่แล้ว +1

    Great video, would love to see more on Iced. 👍🏼👍🏼👍🏼

  • @NickyTheRook
    @NickyTheRook ปีที่แล้ว +2

    Nice one. I really really liked the webdev-callouts! There is so much I already take for granted by mostly building websites (like tabbing to other fields in a form, ...). The web is amazing.

  • @el_carbonara
    @el_carbonara ปีที่แล้ว +3

    a bloody hard framework to learn at the moment but I appreciate all the effort they're putting in, hopefully it sticks around long enough to fill in the guide and mature a bit more as what cryptowatch have done with it is impressive which is why I am motivated to keep plucking away at it. The widget library is a bit immature, there's only just been a table developed and the code to implement it is crazy hard so you're basically left waiting for the author of the library to get around to do it. Implementing themes is a PITA though and structuring elm apps is quite hard as it gets more complex. The debug layout feature is cool I never knew about it til now.

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +3

      very true. I think native cross-platform desktop applications are Hard Problems in general and prefer using web technology for projects I actually have to ship, specifically because dealing with available widgets or functionality like "multi-line text", etc is already there and ready to use.
      I'm hopeful for projects like Iced, etc, especially with the prominence of wgpu in the Rust ecosytem, but features like accessibility, keyboard access, etc are also really important to me.

  • @MisererePart
    @MisererePart ปีที่แล้ว +2

    After testing it, i was quite overwhelmed by the amount of search and code to change background of a button. Documentation and some macros would be welcomed for newcomers!

    • @wiiznokes2237
      @wiiznokes2237 ปีที่แล้ว

      The way of theming things is horrible I agree

  • @theohallenius8882
    @theohallenius8882 ปีที่แล้ว +2

    Cross-platform? Rust? No-web? Sign me up!

  • @BartBlackMagic
    @BartBlackMagic 2 หลายเดือนก่อน

    Could you show an example on how to show Bevy content into an Iced widget?

  • @bibliusz777
    @bibliusz777 7 หลายเดือนก่อน

    They sold me by modularity. I didn't know it is split into parts for end-users and GUI developers

  • @MiBox-jn6vx
    @MiBox-jn6vx หลายเดือนก่อน

    Hi! Can you do a "one year later" kind of video for iced?

  • @0runny
    @0runny ปีที่แล้ว +1

    Great video! Can you please make a video about egui, its a great immediate mode GUI library / framework - would like to hear your thoughts on it!

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +2

      I have an egui video already! -- th-cam.com/video/1zucERQjg0Q/w-d-xo.html

  • @flyingsquirrel3271
    @flyingsquirrel3271 ปีที่แล้ว +1

    That's a nice introduction to iced, but I was hoping to get some more information on iced 0.10 specifically. Everything shown in this video has been around for ages...

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +2

      ah, sorry you didn't get what you wanted out of it. I'll try to put a bit more focus on the changes when 0.11 comes out.

    • @flyingsquirrel3271
      @flyingsquirrel3271 ปีที่แล้ว +1

      @@chrisbiscardi It's still a good video though, so thanks! :) I think I just expected something different because of the version number in the title.

  • @Lord2225
    @Lord2225 ปีที่แล้ว

    The UI look quite good but I found iced to be very inflexible and to have some unsolved issuse especially with scrolling elements. ( I found bug in scroll that crashes app if scrolled too fast/in no scrollwheel increments)

  • @hartmut-a9dt
    @hartmut-a9dt 9 หลายเดือนก่อน

    very nice demonstration!

  • @mikkelens
    @mikkelens ปีที่แล้ว +1

    When people say something like "can use wasm but isn't built for the web", how much of a barrier is implied here? If I make a little application in Iced want to put it connected to my server on a website, is that then a massive hurdle but technically possible, or just a matter of managing backend connectivity?

    • @avsaase
      @avsaase ปีที่แล้ว +7

      When compiled to wasm and running in a browser it is rendered to a canvas, not html like with web frameworks. That means you won't have all the accessibility features you expect on the web and it won't look and feel like a regular web app.

    • @tonyhart2744
      @tonyhart2744 ปีที่แล้ว

      @@avsaase then its like flutter web, it can run sure but can you recommend it ??? nah

    • @RogerValor
      @RogerValor ปีที่แล้ว +1

      @@avsaase i wonder if we ever get the one gui library that manages to transpile into css/html OR turtle to the canvas (which implies it can render to a texture and run as a native app)

    • @verified_tinker1818
      @verified_tinker1818 ปีที่แล้ว

      @@avsaase Dunno, the docs say it uses the DOM.

  • @le0nz
    @le0nz ปีที่แล้ว

    Great video, just what i was looking for?

  • @edhahaz
    @edhahaz ปีที่แล้ว

    At least better than the atrocious gtk-rs that most swear it's a godsend

  • @one.----
    @one.---- ปีที่แล้ว

    Thanks appreciated this video quite a lot, been curious but haven't made the time to find all this myself. Would have for sure taken me longer than watching this video. You mentioned you'd have used tracing. Do you have an example video where you use it? Preferably also how you search and view the traces.

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +2

      That's definitely one of the reasons I make videos like this. Even though the information is technically available, it takes time to go through it all and not everyone has that "sit at computer and research" time but a lot of people have "play this while I cook", etc time.
      I use tracing in some videos, like th-cam.com/video/yzKOqLsdQqA/w-d-xo.html but I don't have a dedicated tracing video. I'm planning to make a tracing workshop on Rust Adventure at some point.

    • @one.----
      @one.---- ปีที่แล้ว

      @@chrisbiscardi 2 things. Do you have a mailing list I can subscribe to so I can know what's tracing workshop is available? Also I don't usually see your videos on this week in Rust. Would it be ok if I submit them or is there a reason you don't submit them?

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +1

      @@one.---- If you drop your email in the form at the top of the page on www.rustadventure.dev/ then you'll get email updates for the site.
      I always forget to submit my videos to TWIR, so would be appreciative of you submitting them if you want to see them there.

  • @lapissea1190
    @lapissea1190 ปีที่แล้ว +2

    No tab control is just an instant no for me. Accessibility is very important. Just try using the ui with just a mouse or just a keyboard and see how it goes. If the framework does not allow for both, it is not something that should be used in a serious manner

    • @peon17
      @peon17 ปีที่แล้ว +2

      There's an extended components library that contains tabs. I believe it's called iced-aw. Though, I agree that the base widgets do still live a little to be desired.

  • @user-qr4jf4tv2x
    @user-qr4jf4tv2x ปีที่แล้ว

    you should cover moonzoon i find it far easier to set up

  • @seanscon
    @seanscon ปีที่แล้ว

    Is ICED running a JS engine under the hood?

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +1

      Not that I know of. Were you expecting one?

    • @Vancha112
      @Vancha112 ปีที่แล้ว

      It uses wgpu for graphics, which relies on genering webassembly for web projects, and vulkan/dx for desktop. No js engine :)

  • @FineWine-v4.0
    @FineWine-v4.0 ปีที่แล้ว

    I seriously wished there was a way to use ICED for Android

    • @peon17
      @peon17 ปีที่แล้ว

      If you understand iced, then Compare should be easy enough to pick up for Android. I like iced previously *because* I come from a native Mobile background and have been using Compose for some time now.

  • @some1and297
    @some1and297 ปีที่แล้ว

    Why would you even need type safety for GUI design?

    • @chrisbiscardi
      @chrisbiscardi  ปีที่แล้ว +6

      The same reasons you'd want type safety anywhere really. Messages and state having well defined types might be more obvious, but components and widgets also require specific kinds of data to function properly. Types take a certain class of problems and move the time when the issue occurs from runtime to compile time, which makes it easier to detect and fix before shipping.

    • @FineWine-v4.0
      @FineWine-v4.0 ปีที่แล้ว +4

      Why wouldn't you

    • @Qrzychu92
      @Qrzychu92 ปีที่แล้ว +1

      well, for starters, when I get a button, I want to press '.' and see all possible options