[HN Gopher] Wails: Build beautiful cross-platform applications u... ___________________________________________________________________ Wails: Build beautiful cross-platform applications using Go Author : sph Score : 55 points Date : 2022-07-13 10:38 UTC (3 days ago) (HTM) web link (wails.io) (TXT) w3m dump (wails.io) | iasay wrote: | _> It does not embed a browser, so it is resource efficient. | Instead, it uses the native rendering engine for the platform. On | Windows, this is the new Microsoft Webview2 library, built on | Chromium._ | | How does this make it magically resource efficient? It's still | another Chrome tab running some inevitable pile of inefficient | excrement that burns watts. It's just not shipping it with the | package. Disk and bandwidth is cheap compared to watts and | latency which is the biggest problem with any web based | technology. | | I just want my native apps back (and no I don't want wx/Qt/Gtk!) | doodlesdev wrote: | If you're using Linux GNOME then GTK IS native, same thing for | KDE and QT. wxWidgets uses native system components on all | operating systems (and provides both GTK and QT backends for | Linux). I agree that applications that are made for a single | operating system are generally more appropriate because they | feel better, but I don't feel it's realistic to expect from any | company developing software simply because there's so many | permutations of different systems to support. If you're | developing for Windows for instance then "native" depends on | the operating system version (win32 > uwp > winui3). | | Also using the system webview (compared to loading a whole | dedicated browser just for the application) in my experience is | better when it comes to application bloat in the runtime, Tauri | for instance achieves half of the memory usage that a Electron | application needs and it's also possible to reduce CPU usage | significantly by offloading any computations to the Rust | backend. | | I'm not saying I'm satisfied with the situation, just that I | don't expect that anyone cares enough for truly native | applications to become relevant again. | howeyc wrote: | I don't get these projects. If you're going to write an html/js | app, why not just launch the web browser against the local url of | your app? | 0x20cowboy wrote: | Using the the apps I have built in this style as an example | (not this library in particular though) - starting a whole | browser comes with a lot of baggage you may not need - plug-ins | as a small example. It's easier to target 3 OSs than some | random permutation. | | Also, doing it this way, you can extend the Javascript to add | custom callback functions - if that is something you need. | | Also, it's all in one process so there is less fiddly bits | (request / response and all that) | | You do bring up a good point though, and I hadn't thought of | the PWA angle. It would be an easy way to add a cli interface | (just curl I guess)... I might try that next time. | shroompasta wrote: | performance. | | some apps need native functionality, for example, instagram | needs access to your camera. | dainiusse wrote: | Why would you run visual studio code in your computer? | timeon wrote: | To use all the RAM. | solardev wrote: | That's what WebStorm is for. | stewbrew wrote: | This way you know exactly which browser people are using and | you don't have to deal with idiosyncrasies. | skyfalldev wrote: | Mostly because with Wails/Tauri/Electron, you get file system | access, native code etc. | howeyc wrote: | yeah, the exe running the server (Go in the current case) has | access to all that. | solardev wrote: | An embedded webview gives you more control over the browser | chrome (as in UI), extensions, cookies, etc. It also gives you | a shim into some filesystem/OS APIs that a regular sandboxed | browser page wouldn't have. It gives you a predictable HTML/JS | renderer that you control, instead of blindly hoping that your | user will happen to have a compatible browser. | | Still, webview UIs are a lazy alternative to actual native | apps. I don't like them either, but not every org can afford to | hire native devs and write 3x-4x the UI code. | giantrobot wrote: | > It also gives you a shim into some filesystem/OS APIs that | a regular sandboxed browser page wouldn't have. | | If you're just talking to a localhost server, it's got all | the local access it needs. The web UI doesn't have to do | anything besides control the native service running. I'd much | rather be able to ship a tiny binary and use the local | browser than pack around a whole browser just to access | otherwise restricted/sandboxed APIs. You can just drop a URL | shortcut on the desktop (or wherever) during installation. | stu2b50 wrote: | Because normal users expect a unified app experience and | launching a local server that opens a tab in the browser is not | an acceptable experience to them. | | There's also limitations with that, like the inability to use | the browser native file browser picker. | dewey wrote: | Because you might ship this to users and just having an app for | them to click on and open is a lot more user friendly than | telling people to type in some localhost URL or open browser | tabs with "cryptic" urls. | pjmlp wrote: | Just have the application start the browser like daemons used | to 20 years ago. | | Nowadays they can even send the PWA manifest to hide the | browser appearance. | dewey wrote: | Are we really arguing why someone might want to have a | "native" app instead of a browser window? There's many | reasons why someone might want to have that. | pjmlp wrote: | Yes we are, Web technologies belong in the browser. | | I wasn't impressed with MSHTML when it came up as Active | Desktop, nor I am impressed with anything that followed | suit. | dewey wrote: | > Web technologies belong in the browser | | That ship has sailed a long time ago. These days | sometimes whole operating systems are based on HTML based | interfaces (LGs TV OS would be one example). | pjmlp wrote: | WebOS applications don't ship a browser alongside them, | they use what is already installed. | | Doing Web development alongside native since Web exists, | hasn't made me like shipping browsers with applications | (or Web views) any better during the last 20 years. | solardev wrote: | This framework does this same thing: | | > It does not embed a browser, so it is resource | efficient. Instead, it uses the native rendering engine | for the platform. On Windows, this is the new Microsoft | Webview2 library, built on Chromium. | | https://wails.io/docs/introduction#native-elements | pjmlp wrote: | You missed my remark between parenthesis. | solardev wrote: | Not really sure what your point is. That these things are | unimpressive? Agreed. It's just one lazy approach to a | problem (multi-platform apps) that's not easy to solve. | Webviews are a cheap way to get there. | pjmlp wrote: | The way is to use the Web as is, and native for | everything else. | solardev wrote: | Yeah, if you have unlimited time and money. | ValentinTrinque wrote: | At vega, we are building a desktop application for our wallet | with wails 2.0 beta. | | You can have a look at | | https://github.com/vegaprotocol/vegawallet-desktop | | Wails works pretty well so far. The project is worth to use, even | on production. | | Sure it's not perfect but eh, it helped us to ship stuff. | | And the maintainers are very nice and welcoming. | dugmartin wrote: | I played with this a few days ago and it is still early days with | rough edges but at the same time encouraging. I used the latest | beta which supports Linux (the banner on the main site still says | just Mac and Windows but the blog announces Linux support). The | default app built after I increased the max file watcher system | parameter and the dev mode reloaded quickly on changes after | that. There was a flash of white as the app view loaded but I | remember early Electron apps doing the same. Kudos to the devs | for working on this - I'm hoping it brings some competition for | Electron as it matures. | blacklion wrote: | We don't need more beautiful apps. We need usable and consistent | apps. Typical beautiful app is barely-usable. | dosshell wrote: | It states you can use native components and that it uses webkit. | How does this work? I thought native components meant using the | OS gui like Win32/MFC etc. How does this work through webkit? | Does webkit have Win32 bindings? | solardev wrote: | Only a couple of elements are truly native: dialogs (like file | pickers) and menus (like the old-fashioned app kind, File, | Edit, etc.). See https://wails.io/docs/reference/runtime/dialog | and https://wails.io/docs/reference/runtime/menu/ | | Everything else is rendered in a DOM. | | And it doesn't always use WebKit; on Windows it would use | Microsoft WebView2, which uses Blink/Edge. | cyansmoker wrote: | A while ago, I had posted about an app I made, - using Wails, - | using Webview. | | You can compare both: https://github.com/fusion/pngsource | | Spoiler alert: it works, but... "meh." | orthoxerox wrote: | Wooby on Wails? | solardev wrote: | Lol, I imagined a series of mournful cries, like "Wail wail | waaaaaiiiiil, not yet anoooooother webview framework...." ___________________________________________________________________ (page generated 2022-07-16 23:00 UTC)