Correction for the Custom Drag Areas: I'm showing the wrong permission in the Video, "startDragging" is also needed but it was not the permission that caused the trouble for me. The problem is that you also need "acceptFirstMouse" enabled for the window if you want to accept the first click on macOS. (v1: v1.tauri.app/v1/api/js/window/#acceptfirstmouse , v2: v2.tauri.app/reference/config/#acceptfirstmouse)
Hey tauri discord member and heavy tauri dev here. While yes the main state of tauri is to be a competitor to electron its goal has always been to be more of a react native/expo competitor.
Great details and I especially appreciate your referencing the reason the files size for Tauri is so much smaller and the issue(s) you can run into due to the default browser being used..
Awesome that you've shared your experience w/ Tauri! I tried it myself before the version 2 came out. I built a bulk X posts deletion application with it, that didn't even use X API. I used SvelteKit, Skeleton, and... Node w/ Puppeteer 👌 Like, it's still possible to use Node in a Tauri app backend w/ no Rust code involved! Just develop a sidecar. It can also be a .NET app instead, for example. The whole app was beautiful. Of course I abandoned that project 🤣 Building a language learning app in public now tho 😁
I hate the world we live in... We have powerful operating systems and could build powerful, lean, apps that actually integrate well into the desktop environment we use... But no, instead we just run everything inside a webbrowser. On older machines, you can really feel the overhead caused by Electron. Even though these machines are perfectly capable, still. I also really like when the applications that I use integrate well with my system and I tend to avoid applications that use technologies like Electron. We're heading the wrong way. All because of convenience and cost-cutting.
Somewhat relevant, I hate it when cross platform apps have their own file/folder picker because they couldn't be bothered to detect and integrate into the active OS or straight up don't prefer it. All of this new cross platform techs and user experience still takes a step back.
Thinking about this I honestly find it hilarious how even some of the major Code Editing Software is running in a Browser. I'm also not sure how well Jetbrains with Java based IDEs does, but maybe that's just trauma from running Eclipse on a school Computer. But if we assume Java to also not be a good option, then basically the only Code Editors that are made with good options would be Visual Studio and Sublime (And also Vim but as a Vim user I didn't wanna pull the "btw I use vim" bs) But this is why I love when I get options for different Clients, like Telegram with its various options. Which makes me hate that Discord doesn't allow third party clients
I’m really tired of talks like “I hate electron because it’s a browser”. It’s not a matter of what it is but how you use it. Look at VS Code, being electron based, it’s really hard to tell it apart from a native desktop app. What good of a native app like Jetbrains if it hogs system resources 10 times faster than a browser does?
@@igormoraru9514 I don't know what version of VSCode you're using. But it's definitely not looking uniform. Even more so if you're using another operating system besides Windows. It is no secret that the overhead caused by Electron is noticable. Up until last year I used a desktop from 2014ish, which was capable to do pretty much everything I needed. But launching applications that use tech like Electron launched noticably slower on that machine. I personally just love 100% native applications. Even if it's more work.
While I really like Wails, the cons of tauri mentioned in this video regarding browsers applies to wails as well. Both use webkit and friends. Well and any other framework that does not ship a chromium in the bundle will have the same cons.
@@stavroskois9656 I might've gotten ahead of myself in excitement. It looks like that particular function is on windows, and other operating systems do use WebKit and friends. I wonder if this will be expanded in v3.
I just made a markdown viewer using Tauri V2, the documentation mostly sucks, especially when it comes to setting permissions for plugins, but eventually I managed to build what I wanted to. Looking forward to build more apps!
As i see there is the github repository for electron "solidtime-desktop" app. But i cannot found repository for a tauri app. Can you please share a tauri repository also?
"There's no framework integration out of the box" I just checked the Electron website and on the home page, without switching to any page, under "Use the tools you love" it says "Choose to integrate your favorite libraries and frameworks from the front-end ecosystem". Am I missing something?
They are just saying that you can use any web framework because it is a chromium browser. But you have to set it up and configure it yourself (or use Forge)
@@bufferhead_ There is a electron-react-boilerplate which I used in last project. But boilerplates are bloated. So, I am using electron-forge in my current project.
It's kinda strange to see comparisons in ressource use between 'much more than is required for the task' and 'much more than is required for the task'.
@@SimonBuchanNz even that 100 MB is still being used, just not directly by the app's process, so it's more difficult to measure. the major difference is that you don't have to download it along with the app, but that's only because you already have it installed.
I remember when i tried to make an api request in electron. i couldnt do it in the renderering process, so i had to do it in the main process and transfer it over the ipc channel shit you explained. Apart from the imo weird way you implement this, i stumbled upon the issue that if I wanted to send a complex/nested (request) object though this ipc channel, the parser couldnt handle it and you get an error. so the api results i got, from my api wrapper library couldnt be passed directly and i had to inconveniently stripe what i need and make my own simple objects. Maybe there is an easier way and im completely bad (probably), but boy i dont miss tinkering in electron. Bless all devs that use electron.
Good video. I love Tauri and Wails, but for me the dealbreaker was on the graphics performance side. An application I was developing used canvas and only Electron was able to run it smoothly. The same for games (also wasm games).
I don't know why electron docs say that deeplinks don't work in dev mode. I have an electron-vite app and deeplinks work in dev mode just fine on macOS
Interesting for me it does not. I thought they might be able to do some internal stuff and forward the events as it opens some weird custom electron app when I try it but it never worked for me and the docs also say it shouldn’t work so… As for the AppImage, as far as I can tell it only works when using AppImageLauncher. I’m not quite sure it this is an appimage limitation in itself (it looks like it to me) but this is the only way I got it working, and also the reason that we currently do not distribute AppImage for the solidtime desktop app.
@@fundispense AppImages are simply portable executables, they do not install anything to the OS, so the app is not in the app menu list, the mime types and link handling info and all that is not known to the system. tools like AppImageLauncher can integrate them though. Consider flatpaks as a way to distribute your app, they are really nice for desktop integration and ease of use.
I can +1 the experience of @fundispense. Works in dev mode for me as well on Mac. Luckily I only need it in dev mode and not as bundled as I use it for a dev tool.
This video went 10 days ago, but you are saying that Edge uses blink... In what year are you leaving right now? Edge already couple of years uses Chromium and Tauri in that case will use Microsoft WebView2, which is specifically designed for that kind of apps. Info can be found in Tauri docs -> Core concepts -> process model
second time seeing a video from you (first being ffmpeg website redesign), and now I realized how your voice sounds very similar to ThatGuyGlen (maybe it's the tone?) and it's not escaping my mind haha
One more problem that I noticed is that it uses 100mb+ of memory even in "headless" mode (electron that is). And since a lot of apps use electron I've got a bunch of 100mb apps running in the background, that do not display anything and should be
Seeing how simple chat apps like MS Teams use half a Gig to more than a Gig of RAM, I'm all against ANY framework or engine or whatever, that ships its own browser engine or has any sort of a dependency on a browser. With such simple applications, I would expect the RAM usage to increase only then, WHEN more complex functions are actually needed (like screen sharing, being in a call etc.). But Electron Apps are all permanent Memory Hoggs! You might be able to stomach running one such EXTREMELY inefficient app, but now imagine you're running several of them. A browser, minimized several Electron Apps... that's it, the RAM is already crying while bleeding on the floor.
Yes, because everyone just craves to spend 6x more time and money implementing a separate for every fucking platform which use 5 different languages in total. Great solution.
10:59 CEF is in it's early stages? CEF predates tauri by years... I wonder how they will support CEF in tauri though. CEF is actively looking into so called shared installations and that project is indeed in it's early stages. CEF however can be titled ancient as it predates electron itself as well.
Their GitHub readme says that it's still a work in progress, not early stages. Just means it's still actively under development and that it may receive API changes, though CEF3 has been pretty stable for the last 4+ years I've been using it.
Tauri is nice buttttt it falls apart if the user is missing the backend webkit runtime (on linux forget it there is one for each distro with diff namesss) windows if the user hasnt got webview2 runtime it wont run. While yes i absolutely love the idea we need to account for that-
Tauri is neat at first, but then you have many OS and different OS versions, and some system files are different, meaning the program inside Tauri is rendered differently with different browser engines. Sometimes the program doesn't work at all because of these missing dependencies. All this makes experience with Tauri great at first when developing but worse later when the program gets distributed. Good idea I thought initially, was really happy with the program size. But eventually I cannot recommend Tauri. Electron is bloatware but it is robust reliable piece of software.
A tortoise and hare story chromium dependence is a development pox with early payoff. Thene electron doesn't even do the courtesy of letting clients share the same install base like dotnet so it's problems just compound.
Well, because they have to support Mac and Iphone, I guess. Since you can only build software for Apple product on an Apple product. That's pretty f*cked up.
@@ToanNguyen-ue8rw Yup, I do have to support apple phones for my app. For that, I spin up a mac VM once every trimester and weep for a day, but I'm not masochist enough to spend more time on that os than I have to.
It is the GTK counterpart of KHTML. KHTML is written in C++ but with the KPart (Qt) libraries, which means that KDE dependencies must be installed in Gnome (GTK) environments. To avoid these dependencies, they developed webkitgtk, which is entirely based on GTK libraries. The webkit engine (Safari use it) is a fork of KHTML.
Before watching: Electron is the best. It has the most efficient Javascript engine and is the only way to control things such as hardware acceleration, because Tauri has no way to control browser-specific features. Furthermore, the instability of using different browser engines on every OS (Tauri) is a big headache, especially since there are so many different engines with different bugs and debugging. Add to that the fact that Tauri still uses a huge chunk of RAM for its browser instance, but just managed by the OS instead, meaning that there are no memory benefits. Literally the only benefit is a smaller distributable size, but that's not really important for most people, when the tradeoff is having a less stable application due to Tauri. The tooling is also awful with Tauri, requiring manual builds on every target platform, no cross-compiler.
Finished watching the video now. Good to see you weren't another mindless Rust zealot and actually talked about the countless drawbacks of Tauri. One thing most people do wrong when they advocate for Tauri is the memory usage. They look at Task Manager, see the low RAM usage, and believe it's great. But Tauri actually uses a ton of RAM. It's just allocated in a separate process, such as an OS browser process. 😂
@@catto-from-heavenPerformance-wise, native apps are the best, but I haven't seen any cross-platform UI toolkits that I actually like, and the platform-specific toolkits require building the same app over and over again for different toolkits. Do you have any suggestions? I know about GTK (a total mess) and Qt (license issues and pretty nasty looking).
Got to admit, I love Electron! Coming from 25+ years of desktop dev experience, web has advanced UI with HTML/CSS so much, nothing comes close to it. Unless you are building small system utility, there is no reason not to use Electron, or Tauri (or any web to desktop app packaging tech)
As a web dev, html css is a horrible abstraction. You need complicated compilers, preprocessors, build toolchains and frameworks to make it usable. I much prefer the way flutter does things. Scales infinitely better than html/css and performs much better too. Nothing kills an app more than a laggy web based interface. I can pretty much tell just by using an app whether its native or made with web tech.
@@askeladden450 That's not an even comparison. If you want Flutter, you can use WebGPU to render fragment shaders, and use compute shaders to handle box layouts or physical animations. There are also ways of getting GPU accelerated CSS compositing layers for animation (see viewtransitions and the animation api). I hope you don't use consoles, or VR, because you would be perpetually surrounded by said web tech.
@@SeanJMay ok, and? Again, all that complexity just to replicate what you can do far more easily in flutter. At this point, just use native c++ or kotlin. Oh and nice you mentioned consoles. Just proves my example how badly some of these web interfaces perform. Remember how bad the webgl based ps4 ui performed? Atrocious. And steam big picture ui is just a colossal mess in terms of performance.
@@edwardo737 Doesn’t matter, just because most dev “need” to knows html,css,JavaScript to some degree doesn’t mean is a better tools. Most people eat junk food and drinks cola doesn’t mean its healthy food. HTML, CSS and JavaScript concepts is from 80, when most webpages just static text and “table”. Where webassembly and webgpu are the modern replacement more suitable for interactive app and graphics, 3D applications, and it can be written in several languages and compile to it.
Electron gets a lot of criticism for the memory/disk usage but personally I don't think it's much of an issue on modern computers, I for sure never minded the performance of electron-based apps. Just the fact that it makes it so easy to build out UIs which is usually a huge hassle on the desktop apps makes is a huge plus and that's probably why it got so popular. Still gotta give Tauri a try, I kinda want to learn Rust at the same though to make the most of it. Solidtime looks pretty cool by the way! I'm already dedicated to TogglTrack which I like a lot and seems to be doing all the same things, otherwise I'd give it a try 😉
I get that argument and I like Electron but the concept scales poorly. If every app was like an Electron app then the waste becomes offensive and shameful. Are modern computers meant to just deal with bloat? The hardware engineering makes incredible advances and all the software guys can think to accomplish with it is waste memory and cpu. It's disappointing isn't it?
Correction for the Custom Drag Areas: I'm showing the wrong permission in the Video, "startDragging" is also needed but it was not the permission that caused the trouble for me. The problem is that you also need "acceptFirstMouse" enabled for the window if you want to accept the first click on macOS. (v1: v1.tauri.app/v1/api/js/window/#acceptfirstmouse , v2: v2.tauri.app/reference/config/#acceptfirstmouse)
Hey tauri discord member and heavy tauri dev here. While yes the main state of tauri is to be a competitor to electron its goal has always been to be more of a react native/expo competitor.
Isn't the focus on mobile support in Tauri a fairly recent thing?
Why not focus on beating electron first ?
I mean people need a more performant replacement to electron more than a react native competitor
Hope you get there mate we really need react native alt
@@saadhabashneh5587 Because it already does that.
I remember tauri mobile is more like ionic?
Great details and I especially appreciate your referencing the reason the files size for Tauri is so much smaller and the issue(s) you can run into due to the default browser being used..
This is great. Create more videos like this please. I am currently using tauri for a project. The V2 Docs are way better IMO.
That's just foul😂😂😂
bro super cool video, really appreciate the details and effort put into this 🙌
Awesome that you've shared your experience w/ Tauri! I tried it myself before the version 2 came out.
I built a bulk X posts deletion application with it, that didn't even use X API. I used SvelteKit, Skeleton, and... Node w/ Puppeteer 👌
Like, it's still possible to use Node in a Tauri app backend w/ no Rust code involved! Just develop a sidecar. It can also be a .NET app instead, for example.
The whole app was beautiful. Of course I abandoned that project 🤣 Building a language learning app in public now tho 😁
Great video. I tried Tauri 2 for mobile development but stayed with capacitor because Tauri still needs to be a little bit more mature.
how to try mobile development using tauri ?
really great video; especially calling out challenges like devtools / debugging etc
I hate the world we live in...
We have powerful operating systems and could build powerful, lean, apps that actually integrate well into the desktop environment we use... But no, instead we just run everything inside a webbrowser.
On older machines, you can really feel the overhead caused by Electron. Even though these machines are perfectly capable, still.
I also really like when the applications that I use integrate well with my system and I tend to avoid applications that use technologies like Electron.
We're heading the wrong way. All because of convenience and cost-cutting.
Somewhat relevant, I hate it when cross platform apps have their own file/folder picker because they couldn't be bothered to detect and integrate into the active OS or straight up don't prefer it. All of this new cross platform techs and user experience still takes a step back.
@@successor0 This! On Linux, you can at least force most applications to use a specific picker.
Thinking about this I honestly find it hilarious how even some of the major Code Editing Software is running in a Browser. I'm also not sure how well Jetbrains with Java based IDEs does, but maybe that's just trauma from running Eclipse on a school Computer. But if we assume Java to also not be a good option, then basically the only Code Editors that are made with good options would be Visual Studio and Sublime (And also Vim but as a Vim user I didn't wanna pull the "btw I use vim" bs)
But this is why I love when I get options for different Clients, like Telegram with its various options. Which makes me hate that Discord doesn't allow third party clients
I’m really tired of talks like “I hate electron because it’s a browser”. It’s not a matter of what it is but how you use it. Look at VS Code, being electron based, it’s really hard to tell it apart from a native desktop app. What good of a native app like Jetbrains if it hogs system resources 10 times faster than a browser does?
@@igormoraru9514 I don't know what version of VSCode you're using. But it's definitely not looking uniform. Even more so if you're using another operating system besides Windows.
It is no secret that the overhead caused by Electron is noticable. Up until last year I used a desktop from 2014ish, which was capable to do pretty much everything I needed.
But launching applications that use tech like Electron launched noticably slower on that machine.
I personally just love 100% native applications. Even if it's more work.
Fantastic video! Loved it.
I learned a lot from your video, especially the bundle size part, which I find interesting.
a js framework without a create script is unbelievable in this day and age
lol
Now do Wails!
While I really like Wails, the cons of tauri mentioned in this video regarding browsers applies to wails as well.
Both use webkit and friends. Well and any other framework that does not ship a chromium in the bundle will have the same cons.
@stavroskois9656 except, Wails has the added benefit of allowing you to require the edge chromium bundle be installed alongside your application!
@@ShadowFita Huh did not know that! Does that work on all platforms?
@@stavroskois9656 I might've gotten ahead of myself in excitement. It looks like that particular function is on windows, and other operating systems do use WebKit and friends. I wonder if this will be expanded in v3.
This 🤝
I just made a markdown viewer using Tauri V2, the documentation mostly sucks, especially when it comes to setting permissions for plugins, but eventually I managed to build what I wanted to. Looking forward to build more apps!
Post your app in the Tauri discord showcase if you end up going with it
As i see there is the github repository for electron "solidtime-desktop" app.
But i cannot found repository for a tauri app. Can you please share a tauri repository also?
"There's no framework integration out of the box" I just checked the Electron website and on the home page, without switching to any page, under "Use the tools you love" it says "Choose to integrate your favorite libraries and frameworks from the front-end ecosystem". Am I missing something?
They are just saying that you can use any web framework because it is a chromium browser. But you have to set it up and configure it yourself (or use Forge)
@@bufferhead_ There is a electron-react-boilerplate which I used in last project. But boilerplates are bloated. So, I am using electron-forge in my current project.
It's kinda strange to see comparisons in ressource use between 'much more than is required for the task' and 'much more than is required for the task'.
100x worse is still better than 1000x worse.
@@SimonBuchanNz there's no order of magnitude difference here, it's still one browser vs another browser scenario
@@aidennwitz yeah, fair, it's only the backend that can drop v8, so still down 100MBish, but out of 400MB...
@@SimonBuchanNz even that 100 MB is still being used, just not directly by the app's process, so it's more difficult to measure. the major difference is that you don't have to download it along with the app, but that's only because you already have it installed.
@@aidennwitz I meant RAM usage, v8 floors at around 100mb depending on the build and version. Rust you can go as low as you like.
I remember when i tried to make an api request in electron. i couldnt do it in the renderering process, so i had to do it in the main process and transfer it over the ipc channel shit you explained. Apart from the imo weird way you implement this, i stumbled upon the issue that if I wanted to send a complex/nested (request) object though this ipc channel, the parser couldnt handle it and you get an error. so the api results i got, from my api wrapper library couldnt be passed directly and i had to inconveniently stripe what i need and make my own simple objects. Maybe there is an easier way and im completely bad (probably), but boy i dont miss tinkering in electron. Bless all devs that use electron.
Good video. I love Tauri and Wails, but for me the dealbreaker was on the graphics performance side. An application I was developing used canvas and only Electron was able to run it smoothly. The same for games (also wasm games).
You might want to see if Flutter does the job for you. It supports wasm and renders canvas by default on the web.
12+ JS dev here. Please go with Tauri all if you 🚀
Your videos are educative and amazing
I don't know why electron docs say that deeplinks don't work in dev mode. I have an electron-vite app and deeplinks work in dev mode just fine on macOS
On the other hand this shit doesn't work on linux AppImage production build and I can not figure out how to fix it
Interesting for me it does not. I thought they might be able to do some internal stuff and forward the events as it opens some weird custom electron app when I try it but it never worked for me and the docs also say it shouldn’t work so…
As for the AppImage, as far as I can tell it only works when using AppImageLauncher. I’m not quite sure it this is an appimage limitation in itself (it looks like it to me) but this is the only way I got it working, and also the reason that we currently do not distribute AppImage for the solidtime desktop app.
@@fundispense AppImages are simply portable executables, they do not install anything to the OS, so the app is not in the app menu list, the mime types and link handling info and all that is not known to the system. tools like AppImageLauncher can integrate them though.
Consider flatpaks as a way to distribute your app, they are really nice for desktop integration and ease of use.
I can +1 the experience of @fundispense. Works in dev mode for me as well on Mac. Luckily I only need it in dev mode and not as bundled as I use it for a dev tool.
@@fundispenseThere's no desktop file to launch the appimage that's why
CEF is used by MS Teams now. It massively improved Teams (its still shit thanks to MS).
Whatever MS touches, gets shittier somehow. Github excluded :)
Can u please make a Back-End Full Tutorial or Front-End
Can you also make a comparison with Go Wails?
Is there a tauri like desktop app framework with Golang?
Yes, there is Wails: wails.io/
Wails
This video went 10 days ago, but you are saying that Edge uses blink... In what year are you leaving right now? Edge already couple of years uses Chromium and Tauri in that case will use Microsoft WebView2, which is specifically designed for that kind of apps.
Info can be found in Tauri docs -> Core concepts -> process model
WebView2 is based on Chromium. Chromium uses Blink.
Thanks, saves me a lot of research
I used the Tauri to build a Vue app. It's really awesome.
C and Cline maybe the king of desktop apps. Doesn't need to rely on the whole mess of web techs.
how are some electron apps like obsidian so fast ?
Finally a good video that explains the reasons 👏👏👏
second time seeing a video from you (first being ffmpeg website redesign), and now I realized how your voice sounds very similar to ThatGuyGlen (maybe it's the tone?) and it's not escaping my mind haha
Good video I love Tauri
Huh? CEF is used in plenty of stable desktop apps. I wonder what would be the actual challenge of adding it to tauri
One more problem that I noticed is that it uses 100mb+ of memory even in "headless" mode (electron that is). And since a lot of apps use electron I've got a bunch of 100mb apps running in the background, that do not display anything and should be
Just download more ram bro
I either use pwwebview or neutralinojs + bun if different API are needed not built in neutralinojs.
Seeing how simple chat apps like MS Teams use half a Gig to more than a Gig of RAM, I'm all against ANY framework or engine or whatever, that ships its own browser engine or has any sort of a dependency on a browser.
With such simple applications, I would expect the RAM usage to increase only then, WHEN more complex functions are actually needed (like screen sharing, being in a call etc.). But Electron Apps are all permanent Memory Hoggs!
You might be able to stomach running one such EXTREMELY inefficient app, but now imagine you're running several of them. A browser, minimized several Electron Apps... that's it, the RAM is already crying while bleeding on the floor.
Yes, because everyone just craves to spend 6x more time and money implementing a separate for every fucking platform which use 5 different languages in total. Great solution.
Try iced-rs completely native
I need that developers video, as constant self motivation
You can in fact use electron as react out of the box.
Tauri/Wails vs Flutter for Desktop
Flutter anytime. It uses Skia under the hood, which is a native GUI library
Edit: Also, Dart doesn't need a WHOLE BROWSER and freaking Node.js to run
yess
very cool video, love it
Captions thinks Vite is spelled Tauri for some reason
The reason is me being an idiot while tidying up the captions. Should be fixed now, thx.
This great opportunity to get the results
How about C and CLi interface?
Great video!
have you tried capacitor?
I went with electron for my image browser app as well for the same reason.
how can you compare different technologies, and what has not been compared with the assembler?
such a good vid tbh
10:59 CEF is in it's early stages? CEF predates tauri by years... I wonder how they will support CEF in tauri though. CEF is actively looking into so called shared installations and that project is indeed in it's early stages. CEF however can be titled ancient as it predates electron itself as well.
Their own Github Readme states "CEF is still very much a work in progress", so that's where i took it from.
Their GitHub readme says that it's still a work in progress, not early stages. Just means it's still actively under development and that it may receive API changes, though CEF3 has been pretty stable for the last 4+ years I've been using it.
Please also compare React Native desktop app
Great video 👍
Tauri is great but if the backend can be written in a more simple language like Go it is perfect
Tauri is nice buttttt it falls apart if the user is missing the backend webkit runtime (on linux forget it there is one for each distro with diff namesss) windows if the user hasnt got webview2 runtime it wont run. While yes i absolutely love the idea we need to account for that-
Honestly in vscode for example, the text sometimes makes ghosts with my low budget nvidia card.
try disabling hardware acceleration
Buy new hardware. Also use vim lol
How can we create a bubble like the one on massager mobile app for chat using electron ?
I want to make it frameless, is that possible?
great video !!!
You can add custom protocols pretty easily on windows.
can you compare them with avalonia next?
Apple not only hates developers but their clients as well :D
Good one 👍
Tauri is neat at first, but then you have many OS and different OS versions, and some system files are different, meaning the program inside Tauri is rendered differently with different browser engines. Sometimes the program doesn't work at all because of these missing dependencies. All this makes experience with Tauri great at first when developing but worse later when the program gets distributed. Good idea I thought initially, was really happy with the program size. But eventually I cannot recommend Tauri. Electron is bloatware but it is robust reliable piece of software.
I would love to see you try Godot to make desktop apps!
8:52 On Windows Tauri uses WebView 2
no way i use solid time! loved the idea of it, but had some issues self hosting
A tortoise and hare story
chromium dependence is a development pox with early payoff.
Thene electron doesn't even do the courtesy of letting clients share the same install base like dotnet so it's problems just compound.
Try cordova next! I think it's really neat and it supports android!
Why no captions?
oh thanks for pointing it out, looks like something broke with the automatic captions on youtube's side, added them manually now.
makes me pretty happy I'm still not a Mac developer.
My first "desktop web app" was with Tauri, and I am never touching Electron
yes you are right electron sending and receiving events sucks.
3:00 : I must admit that in 2024 I don't understand developers that use apple devices ... that's literally paying more for less ^^'
Well, because they have to support Mac and Iphone, I guess. Since you can only build software for Apple product on an Apple product. That's pretty f*cked up.
@@ToanNguyen-ue8rw Yup, I do have to support apple phones for my app. For that, I spin up a mac VM once every trimester and weep for a day, but I'm not masochist enough to spend more time on that os than I have to.
still better than windows for programming and having a linux os on a day to day is tiresome
@@matthieu875 define better
Tauri is winning! 🦀
Lol, as a Linux user, wtf is webkitgtk?
It is the GTK counterpart of KHTML. KHTML is written in C++ but with the KPart (Qt) libraries, which means that KDE dependencies must be installed in Gnome (GTK) environments. To avoid these dependencies, they developed webkitgtk, which is entirely based on GTK libraries. The webkit engine (Safari use it) is a fork of KHTML.
god bless native UI frameworks
Before watching: Electron is the best. It has the most efficient Javascript engine and is the only way to control things such as hardware acceleration, because Tauri has no way to control browser-specific features. Furthermore, the instability of using different browser engines on every OS (Tauri) is a big headache, especially since there are so many different engines with different bugs and debugging. Add to that the fact that Tauri still uses a huge chunk of RAM for its browser instance, but just managed by the OS instead, meaning that there are no memory benefits. Literally the only benefit is a smaller distributable size, but that's not really important for most people, when the tradeoff is having a less stable application due to Tauri. The tooling is also awful with Tauri, requiring manual builds on every target platform, no cross-compiler.
Finished watching the video now. Good to see you weren't another mindless Rust zealot and actually talked about the countless drawbacks of Tauri.
One thing most people do wrong when they advocate for Tauri is the memory usage. They look at Task Manager, see the low RAM usage, and believe it's great. But Tauri actually uses a ton of RAM. It's just allocated in a separate process, such as an OS browser process. 😂
Exactly
Both suck. God bless native GUIs
@@catto-from-heavenPerformance-wise, native apps are the best, but I haven't seen any cross-platform UI toolkits that I actually like, and the platform-specific toolkits require building the same app over and over again for different toolkits. Do you have any suggestions?
I know about GTK (a total mess) and Qt (license issues and pretty nasty looking).
@@catto-from-heaven That's relative to what your goals are. But as any software besides doom they can be improved a lot.
Why was that Microsoft guy sweating like that?
Got to admit, I love Electron! Coming from 25+ years of desktop dev experience, web has advanced UI with HTML/CSS so much, nothing comes close to it. Unless you are building small system utility, there is no reason not to use Electron, or Tauri (or any web to desktop app packaging tech)
Advocating for running what could be called an entire OS for a simple desktop application is mind boggling.
@@EverRusting that's exactly my point, it's not for simple utilities, but for non-small applications.
As a web dev, html css is a horrible abstraction. You need complicated compilers, preprocessors, build toolchains and frameworks to make it usable. I much prefer the way flutter does things. Scales infinitely better than html/css and performs much better too. Nothing kills an app more than a laggy web based interface. I can pretty much tell just by using an app whether its native or made with web tech.
@@askeladden450 That's not an even comparison. If you want Flutter, you can use WebGPU to render fragment shaders, and use compute shaders to handle box layouts or physical animations.
There are also ways of getting GPU accelerated CSS compositing layers for animation (see viewtransitions and the animation api).
I hope you don't use consoles, or VR, because you would be perpetually surrounded by said web tech.
@@SeanJMay ok, and? Again, all that complexity just to replicate what you can do far more easily in flutter. At this point, just use native c++ or kotlin.
Oh and nice you mentioned consoles. Just proves my example how badly some of these web interfaces perform. Remember how bad the webgl based ps4 ui performed? Atrocious. And steam big picture ui is just a colossal mess in terms of performance.
Why not ditch tauri and electron all together, and use flutter instead. Single code base for all mobile, desktop platforms plus web 😄
Because it doesn’t use standard web tech, it uses Dart, which means you can’t build a flourishing community of plugin/extension creators.
@ That’s false bias people have, more ideological than technical merits.
@@sunflash9 no it’s a fact. Do more devs in the world know html css js or dart?
@@edwardo737 Doesn’t matter, just because most dev “need” to knows html,css,JavaScript to some degree doesn’t mean is a better tools. Most people eat junk food and drinks cola doesn’t mean its healthy food. HTML, CSS and JavaScript concepts is from 80, when most webpages just static text and “table”. Where webassembly and webgpu are the modern replacement more suitable for interactive app and graphics, 3D applications, and it can be written in several languages and compile to it.
RN for Mac and Windows?
it's just better
Buenas estrategias
This is an oversimplification, but...
If you don't need cross-platform support and you just want to build a Windows desktop app: pick Tauri.
tauri can break your javascript 😂 you have to make config file for what to support
That's the point, like deno
now do win32
Electron gets a lot of criticism for the memory/disk usage but personally I don't think it's much of an issue on modern computers, I for sure never minded the performance of electron-based apps. Just the fact that it makes it so easy to build out UIs which is usually a huge hassle on the desktop apps makes is a huge plus and that's probably why it got so popular. Still gotta give Tauri a try, I kinda want to learn Rust at the same though to make the most of it.
Solidtime looks pretty cool by the way! I'm already dedicated to TogglTrack which I like a lot and seems to be doing all the same things, otherwise I'd give it a try 😉
I get that argument and I like Electron but the concept scales poorly. If every app was like an Electron app then the waste becomes offensive and shameful. Are modern computers meant to just deal with bloat? The hardware engineering makes incredible advances and all the software guys can think to accomplish with it is waste memory and cpu. It's disappointing isn't it?
Please don't use electron. Please. Please. Please.
While I disagree Tauri is back-end, I very much enjoyed the video.
qt
Neither of these are REAL desktop apps though 😅
Please define what a "Real" Desktop App is?
@@dustsucker4704 his comment ends with a winking face...he's trolling/baiting.
@@dustsucker4704hes using the words "real desktop apps" as apps that are using native gui
@@dustsucker4704 not web apps in a cut down browser of some sort at least, native apps, you might not remember those...
They are fully functional desktop apps, just not NATIVE.
Good video I love Tauri