So conceptually speaking, this would have just turned into a desktop app you can modify on the go, and typical hot module reloading, you can build your desktop app. But desktop app is not just being able to use the browser that it comes with, and having your web app there. It's also about being able to use the native OS system. Like you want to modify the window, like custom title, resizing some events. You want to modify the tray. You want to be able to modify the window, you want to modify the tray or the dock and interact with that, or all these different types of events, and also, like, native dialogues, all the kind of stuff that you use to make a desktop app.
And we do have, like, here's a bit of an example. You can just create a browser window, add a binding. So bindings let you call functions from the Deno side in the browser, and so you can just set up a function to just do whatever you need to do that the browser does not have access to. And then this confirm, for example, just creates a native popup. Now, these are stuff that we currently support, but we're going to support more. Native dialogues, notifications, system tray, so you can interact fully with the system tray.
Everything is supported on most of the operating systems, so it works on Linux and Windows. There's some limitations on Linux still that we're figuring out. Again, very experimental. The dock or the task bar, menus, so that, and also the windows, input events, and, again, we are adding more stuff. This is just, like, the first pass that we implemented. Yeah. Bindings are not IPC like in Electron or Tauri, where basically backend talks via a cross-process serialization, socket, and serializers. We actually are in the same process, so this gives some benefits that we can transfer data between the browser and, you know, very efficiently, very fast, and we support, like, under the hood as far as I remember, Electron only supports strings and does its own serialization.
Comments