Beyond the Framework: Distributing Your Desktop App Like a Pro

Rate this content
Bookmark

Building apps using web technology is great; however, at times you may encounter limitations regardless of what framework you choose. During this workshop, we will talk about choosing a framework, common problems and how to overcome them.


Table of contents

- Introduction: The intertwined history of the Web and Apps

- So many desktop app technologies! How do I choose one?

- Common issues and how to think about apps

- Conclusion

This workshop has been presented at JSNation 2023, check out the latest edition of this JavaScript Conference.

FAQ

The Beyond the Framework workshop focuses on understanding what makes a desktop app, how to build one, and how to structure your code beyond just using a framework. It explores desktop app development in a broader context rather than focusing on specific frameworks.

Participants will learn how to choose a desktop app framework by considering factors such as core features, developer experience, learning resources, and operating system integration. The workshop will provide insights into the categories to consider when selecting a framework for developing desktop apps.

In desktop app development, the main thread handles the state and interacts with the operating system, performing privileged actions. The render thread, on the other hand, is responsible for rendering the user interface and handling user interactions. It's important to keep them separate to enhance performance and security.

The workshop covers the use of web technologies in desktop apps by explaining frameworks like Tauri, which allows developers to build secure and efficient desktop applications using web technologies. It discusses how these frameworks can be used to leverage existing web development skills for desktop app development.

Key considerations for packaging and distributing desktop apps include building the application into an executable, packaging it with necessary metadata, code signing to verify the developer's identity, and choosing the right distribution channels like app stores or direct downloads.

To develop a native-feeling UI in desktop apps, it's recommended to use operating system-specific guidelines and consider hiring a professional designer. Using virtual machines to test UI across different systems and platforms can also help in achieving a native look and feel.

Developers can improve the security of their desktop apps by ensuring that the render thread (front-end) is treated as unprivileged and by handling all sensitive operations and state management in the main thread (back-end), which acts as a secure intermediary for system interactions.

Jonas Kruckenberg
Jonas Kruckenberg
109 min
16 May, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Welcome to the Beyond the Framework workshop where we will discuss desktop apps and their development. We will focus on what makes a desktop app unique, how to choose a framework, and how to structure your code. The web and apps are intertwined, with a history dating back to the 1940s. When choosing a technology, consider core features and compatibility with existing frameworks like React and Svelte. Building an app is more complicated than a hello world app, and common issues in app development include understanding the main and render threads, synchronizing app state across windows, and separation of concerns. Tauri is a Rust crate that allows you to build your own desktop app, and it aims to make building Tauri apps accessible without the need to learn Rust. The main thread and render thread model is important in app development, and it allows for multi-threading in web browsers. The state is owned by the main thread and synchronized between all render threads. The concept of a native feeling UI is subjective and varies across operating systems. Packaging and distribution are essential for desktop apps, involving building, packaging, code signing, and distribution. The goal is to make building desktop apps as easy as deploying a website, and the Tauri working group is focused on improving the build process, user experience, and distribution of desktop apps.

1. Introduction to Beyond the Framework Workshop

Short description:

Welcome to the Beyond the Framework workshop where we will discuss desktop apps and their development. We will focus on what makes a desktop app unique, how to choose a framework, and how to structure your code. I am a member of the Towery Working Group and a DevRel at Kript Nebula. Towery is a framework for building desktop apps using web technology, and Kript Nebula is a company that helps take desktop apps to the next level. I also maintain open source libraries and tools in the Vite ecosystem and Rust crates.

Welcome. My workshop called Beyond the Framework, where we will be talking about desktop apps, but not focused on one specific framework. We will be taking things beyond the framework. We will be focusing on what makes a desktop app a desktop app, how to build one and what to focus on and not get hung up on the details. Because at the end of the day, a framework is just a tool.

So it's going to be the agenda for this workshop. Well, at first, I'm going to tell you a bit about the history of apps and the history of the web, because I feel like that's something that's very much overlooked. Then we're going to talk a bit about how you choose a framework, what things to look out for, and a few categories that we found helpful when choosing a framework. Then lastly, we're going to talk about how to think about apps, how to structure your code, how to work with desktop apps, and a few things that are different to your traditional website development, maybe, and stuff to look out for.

Who am I? Who's the guy talking to you? I am a member of the Towery Working Group, but I'm also a DevRel at Kript Nebula. And to explain that a bit more, Towery, if you're not familiar, it's a framework for building desktop apps using web technology. And we focus very much on small binaries, on secure apps, and on what I like to call choice, because Towery is a complete framework. That will make a bit more sense later when we jump into the exercises. And yeah, but I'm also a devrel at Kript Nebula. Kript Nebula is a company, as a company, we founded to really take things further and to help you, potentially, companies to take their desktop apps to the next level. And we do consulting, we do auditing, and we're also working on tools to improve the desktop app experience using web technology. I also maintain a couple open source libraries and tools and crates in the Vite ecosystem, for example, and then Rust crates. Because I started with JavaScript, I did that for a long time, but now, since about a year, I picked up Rust, and I really like it. And so if you look on Twitter, that has come up time and time again, people from the JavaScript being interested in Rust. If you are one of them and you want to talk to me about the problems you're facing, or you are unsure how to start, definitely reach out to me on Twitter or Mastodon. The handles are on screen right now. Cool. That's about me.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Tauri Foundations and Futures
JSNation 2022JSNation 2022
22 min
Tauri Foundations and Futures
Tauri is a tool built to improve the JS ecosystem, providing a lightweight alternative to Electron. It integrates the stack, focuses on security, and offers cross-platform compatibility. Security measures include a new iFrame interaction and a thorough audit. The importance of taking care of the planet and reducing app consumption is emphasized. Tauri's community, licensing, and future plans are discussed, as well as the challenges of web view support and the aim to create a consistent engine using Servo.
Observability Matters: Enhancing Performance of our Node Application with OpenTelemetry
Node Congress 2024Node Congress 2024
7 min
Observability Matters: Enhancing Performance of our Node Application with OpenTelemetry
Yash Rajavarma introduces observability and explains its importance for developers. He discusses how OpenTelemetry can empower Node.js applications by providing easy instrumentation and management of telemetry data. OpenTelemetry simplifies the implementation of observability and is designed to benefit developers.