Write once, run everywhere: building apps with Dioxus - Jonathan Kelley - RustNL 2023

Поділитися
Вставка
  • Опубліковано 24 січ 2025

КОМЕНТАРІ • 123

  • @Perspectologist
    @Perspectologist Рік тому +94

    This was a great presentation. I’m currently experimenting with Dioxus, and so far I’m very impressed.

    • @learningop810
      @learningop810 Рік тому +1

      so it has been 3 months. I m a bit confused between yew and dixous .What are your opinions

    • @Perspectologist
      @Perspectologist Рік тому

      @@learningop810 I got further with Dioxus than Yew, unfortunately I got pulled away from Rust to work on maintaining projects in other languages. I like the idea of Dioxus, but haven’t had enough time with it.

    • @thegrabbler622
      @thegrabbler622 Рік тому

      @@learningop810 not OP but I'd take a look at leptos, I've had a lot of fun with it so far

    • @thewilltejeda
      @thewilltejeda Рік тому

      ​@@learningop810what is up with these crate names lol

    • @rithvik_
      @rithvik_ 6 місяців тому

      @@learningop810 I personally feel dioxus is going to be big and is developing fast, the community is also active and it also has funding so altogether I feel it is a great choice

  • @RainbowPigeon15
    @RainbowPigeon15 9 місяців тому +6

    the recent updates made the code even simpler than what is presented. Pretty impressive library so far

  • @HyperFocusMarshmallow
    @HyperFocusMarshmallow Рік тому +35

    That live reloading at the end is awesome. I didn't get how it works at all but I guess I'll checkout the docs.

  • @damsektry6233
    @damsektry6233 Рік тому +8

    Really great presentation. I just embrace the rust world and I'm amazed every days

  • @rotteegher39
    @rotteegher39 10 місяців тому +3

    Absolutely Incredible!!!

  • @yos2413
    @yos2413 10 місяців тому +5

    I know dart/flutter and using rust with this approach solves A LOT of pain points I have with dart's bad language design decisions, right now this is my favorite rust front-end framework, good work!

    • @iceteazen
      @iceteazen 2 місяці тому

      the only problem i had with rust is it can't do hot reload if would be cool if the rust team support that feature in the future but to do that i think they had to fix the compilation speed. or the alternative i can think of hot reload maybe this is possible via cranelift

    • @eyz-4
      @eyz-4 23 дні тому +1

      @@iceteazen they added new hot reloading a few weeks ago. i saw it earlier today in their release notes.

  • @qm3ster
    @qm3ster Рік тому +24

    Really great ergonomics.
    But why VDOM and not signals in CURRENT_YEAR?

    • @charetjc
      @charetjc Рік тому +3

      Cause leptos exists?

    • @qm3ster
      @qm3ster Рік тому +7

      @@anonymousalexander6005 But the native UI APIs don't take a tree, they take imperative mutations, just like the DOM does. Why compute the list of mutations with VDOM diffing and not mapping signals?

    • @Th3HarzyGamePlays
      @Th3HarzyGamePlays Рік тому

      Dioxus has signals too

    • @popopooooooooooooooo
      @popopooooooooooooooo 9 місяців тому +2

      VDOM is very powerful. You may lose with vdom on one side, but end up winning on many others. You can think of vdom as an AST and all the benefits that this brings.

    • @eyz-4
      @eyz-4 8 місяців тому

      it's based on blockdom/million which without going into a deep explanation allows the vdom to be equally as fast as signals. take a look at js framework benchmark.

  • @ziis8285
    @ziis8285 6 місяців тому +2

    Amazing, i can't wait to fully learn how to program in Rust and use this.

  • @xorlop
    @xorlop 9 місяців тому +4

    I am trying dioxus sooooon

  • @ok-alarm
    @ok-alarm 11 місяців тому +2

    really easy to understand! nice!

  • @fabracht
    @fabracht Рік тому +10

    This is awesome work.

  • @steav677
    @steav677 Рік тому +2

    Great work!
    Super awesome rust could be used to this extent.

  • @FobosLee
    @FobosLee 3 місяці тому +1

    27:50 - wow! Terminal UI is awesome

  • @chaosprint
    @chaosprint 9 місяців тому +6

    Comparison with Tauri is skipped but I am curious on that.

  • @antoniong4380
    @antoniong4380 10 місяців тому +3

    If I had money and Dioxus was for-profit: "Shut up and take my money"
    That hot reloading is really amazing for a compiled language

  • @robertotomas
    @robertotomas Рік тому +9

    would love to see details on mobile setup (I can pitch in , though Im no veteran of mobile dev)

  • @methedudeful
    @methedudeful Рік тому +17

    I am seriously impressed with this library. I love the choice to emulate React. Why bend the developer community to our ideals? Instead we tool makers bend, so that developers feel comfortable and empowered to build products quickly.

  • @johnmckown1267
    @johnmckown1267 7 місяців тому

    The theme was used a lot when Java came out. I wrote a small pure Java app. I wrote it on Linux. The .jar file ran exactly the same on Windows and the IBM mainframe at work.

    • @ricardojlrufino
      @ricardojlrufino 7 місяців тому

      Java runs on ibm mainframe ?

    • @johnmckown1267
      @johnmckown1267 7 місяців тому

      @@ricardojlrufino sure does. I am fairly sure that it is now an integral part of installing z/OS. When I did it, it was an optional download.

  • @rollotomasi1832
    @rollotomasi1832 4 місяці тому

    As a react dev who learning rust, i think I'm in love 💘
    Brilliant! 💥

  •  Рік тому +2

    This looks really cool. I’ll definitely build something with it.

  • @salman8562
    @salman8562 Рік тому +4

    Great video, what is the theme that he is using in the Vscode? I kinda like it.

  • @AbanoubNashaat-f4e
    @AbanoubNashaat-f4e Рік тому +2

    lovely

  • @Malbocha
    @Malbocha Рік тому +3

    Anyone know the name of the VS Code theme?

  • @CodingHaribo
    @CodingHaribo Рік тому +5

    This is so Effin' amazing! I've looked into the library, and I must say the "fullstack" flavour, which is essentially, isomorphic server rendering and hydrating into web assembly is the bomb. 😍

  • @psi4j
    @psi4j Рік тому +3

    Brilliant.

  • @hendrykhoza4782
    @hendrykhoza4782 Рік тому +2

    wee need support for tailwind

  • @fire17102
    @fire17102 Рік тому +13

    What a great presentation!
    I think the cross platform app development is a much bigger pain point for the entire industry, not just Rust's. If Dioxus is any good please consider adding an API that can be called from other stacks, such as my python FastAPI/Flask backend. That would be amazing.
    Thanks a lot and all the best!

    • @PaulSebastianM
      @PaulSebastianM Рік тому

      Wut? 🧐 What do you mean?

    • @fire17102
      @fire17102 Рік тому

      @@PaulSebastianMlemme know which part wasn't clear enough... Seems like at least 10 ppl got with my take

    • @PaulSebastianM
      @PaulSebastianM Рік тому

      @@fire17102 if only downvotes worked...

  • @L0wPressure
    @L0wPressure Рік тому +7

    I don’t know, looks clean to me. Don’t see any problem with reacts approach.

  • @badc0der
    @badc0der 8 місяців тому +5

    Rust still needs time to find its way in UI development. Unfortunately none of the projects seem to be good enough for something more than a few buttons and input fields. I think, though, the process is natural for Rust. We'll get there and this work is fundamental to understanding what works and what doesn't. We have to try 99 times in order to get that 1 time right. We're still below 50 tries so quite a long way to go. Congratulations to RustNL for bringing this content to everyone!

  • @egorivanov489
    @egorivanov489 Рік тому

    Great video, great presentation. I hope switching to Dioxus from egui won't be painful. I used to use egui for building desktop apps but when it came to WASM, it was too painful. A big amount of errors, unstable work and lots of limits. But what I like in egui is a pretty big amount of Widgets that could be used. I haven't found it in Dioxus, maybe I should search better.
    IMHO Dioxus is better than egui if your target is WASM.

  • @jamiepond
    @jamiepond Рік тому +5

    fucking amazing

  • @deepakkamble3602
    @deepakkamble3602 Рік тому +1

    greatest thing i evered seen

  • @HelloThere-xs8ss
    @HelloThere-xs8ss Рік тому +4

    Tauri compile times kill me for some reason. Rust compilations do not take that long any other time

  • @hendrykhoza4782
    @hendrykhoza4782 Рік тому +1

    what theme is he using?

  • @PaulSebastianM
    @PaulSebastianM Рік тому

    33:19 that is what Blazor Server does.

  • @Originalimoc
    @Originalimoc Рік тому +3

    Closest competitor is probably Compose Multiplatform?

    • @valmirius
      @valmirius Рік тому +1

      Avalonia UI is probably the most comprehensive and well built cross platform GUI framework (with some tradeoffs) I've seen at the moment. They're still working on web though.
      Compose looks really good too

    • @julesoscar8921
      @julesoscar8921 Рік тому

      Compose is very bloated

  • @izwe794
    @izwe794 Рік тому +13

    i'd love to see one of these based on svelte

    • @MiiaoTheFC
      @MiiaoTheFC Рік тому +6

      Yeah, all those React-inspired things are obviously great work, but certainly not for me

    • @ironhammer4095
      @ironhammer4095 Рік тому +11

      @@MiiaoTheFC There's Leptos. It uses the Signals model similar to SolidJS. No Virtual DOM. It can do SSR too if you want.

    • @Th3HarzyGamePlays
      @Th3HarzyGamePlays Рік тому

      @@ironhammer4095 Dioxus has signals too

    • @comradepeter87
      @comradepeter87 Рік тому +1

      Svelte is like a new language that looks similar to JS, because they needed to extend JS' syntax. Don't proc-macros fulfill that need for Rust?

    • @MiiaoTheFC
      @MiiaoTheFC Рік тому

      @@comradepeter87 they sorta do, but we prefer not to change the syntax a lot

  • @Alex-hr2df
    @Alex-hr2df Рік тому +1

    What! Rust frontend framework?!

  • @hlavaatch
    @hlavaatch Рік тому +9

    Looked interesting, until I found out it just wraps Tauri

    • @comradepeter87
      @comradepeter87 Рік тому +5

      And why is that bad? Is it 'cause they made fun of Electron while using another (lightweight) Electron? Genuinely asking.

    • @null-dev
      @null-dev Місяць тому

      They have been working on a custom lightweight native renderer called "Blitz" that will be able to render a common subset of HTML and CSS. It's under heavy development, they just haven't really talked about it much publicaly.
      I really hope we end up with something like an open-source alternative to Sciter, with potentially better performance too.

  • @evenzero
    @evenzero Рік тому +1

    I had to try it out, nice but way early

  • @RoastLambShanks
    @RoastLambShanks Рік тому +1

    I didn't know there was a new season of Silicon Valley.

  • @sergey9679
    @sergey9679 Рік тому

    I hope Dioxus is gonna get more mature soon.

  • @Tigregalis
    @Tigregalis Рік тому +1

    36:20 I think Vue 3 did it first.

  • @hakn_d
    @hakn_d 9 місяців тому

    Hi there. For vello project, please dont make calculations for out of scene materials. Just let work physics you know.

  • @gjermundification
    @gjermundification Рік тому

    Decent and electron in the same sentence? What is he on? Swift and Rust are my 2 favourite languages. Swift can't do web? Kitura, Perfect, Smoke, and Vapor are all just an illusion? Yew, Cargo error messages, RataTUI, cargo, UIKit, and vapor are all amazing.

  • @daviidon
    @daviidon Рік тому

    Dart can call any language that can export a c abi

  • @randomtvninja
    @randomtvninja Рік тому +7

    Is it just me or does he give off Richard from silicon valley vibes..

  • @privettoli
    @privettoli Рік тому

    What happened to Qt and Delphi? 😂

  • @codeking4585
    @codeking4585 7 місяців тому

    He loves dancing

  • @devfagundes
    @devfagundes Рік тому

    I tried the "clicked" thing and didn't work for me.

    • @dirac7233
      @dirac7233 Рік тому +1

      It doesn't work for me either. It's certainly a little bug that will be fixed in the next patch.

    • @devfagundes
      @devfagundes Рік тому +3

      @@dirac7233 ​ @dirac7233 UA-cam deleted my comment. I found how to fix that. In depedencies instead of declaring dioxus = "0.3.2", replace the version "0.3.2" for the dioxus git repository adress. "/dioxuslabs/dioxus" it should work.

  • @ukyoize
    @ukyoize Рік тому

    What is this, Java?

  • @GUIGuyify
    @GUIGuyify Рік тому +2

    AvaloniaUI is good for cross platform desktop apps Windows Mac Linux… if you like C#

  • @dorktales254
    @dorktales254 8 місяців тому

    Write once, Run Everywhere? Where have I heard that before 😄

  • @FrankJonen
    @FrankJonen 5 місяців тому

    Everyone makes fun of Xcode but nothing changes. Just like with Electron and React.

  • @danh5637
    @danh5637 28 днів тому

    Why’s he dancing?

  • @thegeniusfool
    @thegeniusfool 2 місяці тому

    Why do people nowadays talk faster than they think, losing breath?
    Smart guy and cool technology so no need to stumble over words to squeeze in so much marketing rationale.

  • @avi7278
    @avi7278 Рік тому

    Actually no, if I don't want my button to look the same on every platform. I want my UI to adapt to the platform. On iOS I want my app to look like an iOS app with iOS buttons. Not a very strong start, young padawan.

  • @bezimienny5
    @bezimienny5 9 місяців тому +1

    What I actually like about Flutter is that I don't have to worry about a million ways to incorporate 30+ years worth of CSS legacy just to center a popup on screen. Unfortunately, this kills Dioxus for me as a Desktop framework, but I do still think it has a place as a fullstack web thing. Just not a fan of WebViews in native apps, sorry.

    • @nextlifeonearth
      @nextlifeonearth 9 місяців тому

      Mostly this yeah. Flutter has its own limits, being Dart only for one.
      Don't get me wrong, I am unconvinced that a language can be a blocker for any proper software engineer, learning a language is a fraction of the effort and time spent learning a framework.
      Issue arises with platform support when basically all libraries are written in languages like c and you have to write glue for these libraries or god forbid rewrite them in dart.
      Imagine it had an efficient c interface, any language could use it.

  • @meyou118
    @meyou118 Рік тому +16

    virtual dom == -1

  • @edhahaz
    @edhahaz Рік тому

    n+1

  • @claudiusraphael9423
    @claudiusraphael9423 Рік тому

    OWO

  • @LUKAS3675
    @LUKAS3675 Рік тому

    as a Flutter developer I see some hypocrisy here,
    mocking Flutter and proposing yet another web based multi platform,
    the idea of using flutter rendering with rust using a crate sounds like a better idea

    • @David-iq1kd
      @David-iq1kd Рік тому

      Similar to Clojure-Dart for example?

    • @julesoscar8921
      @julesoscar8921 Рік тому

      Macro works out of the box, with flutter_rust_bridge, you obviously need to install flutter and use dart

  • @yaminnather521
    @yaminnather521 8 місяців тому

    Everything looks good expect the HTML CSS adoption :). Prefer the way Flutter and Compose UI does layout and rendering.

  • @gatosssss1
    @gatosssss1 Рік тому +1

    Good video but why does he sound like he is about to shit himself?

    • @privettoli
      @privettoli Рік тому

      Lack of experience in public speaking

  • @vlad7269
    @vlad7269 Рік тому

    We need "cool" counter 😂

  • @todorelax1793
    @todorelax1793 7 місяців тому

    why so Nervious 🤣

  • @justanaveragebalkan
    @justanaveragebalkan Рік тому +4

    We already have cross platform app development, it's called flutter, we don't need this. Keep it for the operating systems please.

    • @NatteDweil
      @NatteDweil Рік тому +23

      There is always room for better. You could already develop cross platform apps in Java as well, with a cross platform UI even. Progress is usually a good thing.

    • @ryanleemartin7758
      @ryanleemartin7758 Рік тому +20

      It's ok, you don't have to use it.

    • @llothar68
      @llothar68 Рік тому +4

      The problem is that noe is working and never will. There is no write once run everywhere dream.

    • @chaoky
      @chaoky Рік тому +1

      @@llothar68 wdym react native and flutter are pretty close to write once run everywhere

    • @llothar68
      @llothar68 Рік тому +4

      @@chaoky For example on MacOS I want AppleScript support. I want Siri Integration, or at least Shortcuts. I want access file systems correctly (the whole privilege management things). All the continuous editing features on MacOS and windows. And I want to make it look and feel native. And especially I want to it to integrate new features as soon as possible.
      You are just ignorant. Everyone can show Buttons and a text input, but that's not enough.

  • @utubebroadcastme
    @utubebroadcastme Рік тому

    So instead of actually building a UI framework, you're just running CSS+HTML inside of rust ...
    hmm I don't know I have mixed feelings