A Tour of Iced 0.10

แชร์
ฝัง

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

  • @danielyrovas
    @danielyrovas 9 หลายเดือนก่อน +48

    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  9 หลายเดือนก่อน +15

      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 9 หลายเดือนก่อน +4

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

    • @tui3264
      @tui3264 9 หลายเดือนก่อน +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 9 หลายเดือนก่อน

      ​@@tui3264can I get a link

    • @verified_tinker1818
      @verified_tinker1818 9 หลายเดือนก่อน

      @@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 9 หลายเดือนก่อน +50

    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 9 หลายเดือนก่อน +12

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

    • @avsaase
      @avsaase 9 หลายเดือนก่อน

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

    • @JosephDalrymple
      @JosephDalrymple 9 หลายเดือนก่อน

      @@hermannpaschulke1583 *_Finally!_*

    • @stephendaedalus7841
      @stephendaedalus7841 6 หลายเดือนก่อน +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 9 หลายเดือนก่อน +6

    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  9 หลายเดือนก่อน +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 9 หลายเดือนก่อน

      @@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  9 หลายเดือนก่อน +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.

  • @joelmontesdeoca6572
    @joelmontesdeoca6572 9 หลายเดือนก่อน +1

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

  • @NickyTheRook
    @NickyTheRook 9 หลายเดือนก่อน +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.

  • @gridlocdev2023
    @gridlocdev2023 7 หลายเดือนก่อน +5

    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  7 หลายเดือนก่อน +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 3 หลายเดือนก่อน +1

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

  • @theohallenius8882
    @theohallenius8882 8 หลายเดือนก่อน +2

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

  • @KonstantinScheglov
    @KonstantinScheglov 8 หลายเดือนก่อน +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.

  • @kc3vv
    @kc3vv 9 หลายเดือนก่อน +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 9 หลายเดือนก่อน +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

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

    very nice demonstration!

  • @el_carbonara
    @el_carbonara 9 หลายเดือนก่อน +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  9 หลายเดือนก่อน +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.

  • @Lord2225
    @Lord2225 8 หลายเดือนก่อน

    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)

  • @one.----
    @one.---- 9 หลายเดือนก่อน

    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  9 หลายเดือนก่อน +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.---- 9 หลายเดือนก่อน

      @@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  9 หลายเดือนก่อน +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.

  • @0runny
    @0runny 9 หลายเดือนก่อน +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  9 หลายเดือนก่อน +2

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

  • @MisererePart
    @MisererePart 9 หลายเดือนก่อน +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 8 หลายเดือนก่อน

      The way of theming things is horrible I agree

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

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

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

    Great video, just what i was looking for?

  • @mikkelens
    @mikkelens 9 หลายเดือนก่อน +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 9 หลายเดือนก่อน +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 9 หลายเดือนก่อน

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

    • @RogerValor
      @RogerValor 9 หลายเดือนก่อน

      @@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 9 หลายเดือนก่อน

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

  • @flyingsquirrel3271
    @flyingsquirrel3271 8 หลายเดือนก่อน +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  8 หลายเดือนก่อน +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 8 หลายเดือนก่อน +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.

  • @damnhatesyou
    @damnhatesyou 9 หลายเดือนก่อน

    Isn’t this system 76 is using for the new cosmic desktop?

  • @lapissea1190
    @lapissea1190 9 หลายเดือนก่อน +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 7 หลายเดือนก่อน +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.

  • @edhahaz
    @edhahaz 9 หลายเดือนก่อน

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

  • @FineWine-v4.0
    @FineWine-v4.0 9 หลายเดือนก่อน

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

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

      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.

  • @user-qr4jf4tv2x
    @user-qr4jf4tv2x 8 หลายเดือนก่อน

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

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

    Is ICED running a JS engine under the hood?

    • @chrisbiscardi
      @chrisbiscardi  7 หลายเดือนก่อน +1

      Not that I know of. Were you expecting one?

    • @Vancha112
      @Vancha112 6 หลายเดือนก่อน

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

  • @some1and297
    @some1and297 9 หลายเดือนก่อน

    Why would you even need type safety for GUI design?

    • @chrisbiscardi
      @chrisbiscardi  9 หลายเดือนก่อน +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 9 หลายเดือนก่อน +4

      Why wouldn't you

    • @Qrzychu92
      @Qrzychu92 9 หลายเดือนก่อน +1

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