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

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 rust-based, security-first, open-source application construction framework built on the philosophy of shipping better projects without compromising on our climate goals. This talk will introduce key components and benchmarks of the stable release of the fully-audited framework. Further it will discuss its future as a means of not only delivering desktop and mobile apps, but also its mission of backfitting servo in order to make a fully fledged all-platform webview provider. Finally, we will present our award for "2022's most secure modern web-framework" in the context of webview-based Tauri apps.
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
Have you ever considered that when we encounter terms like observability and reliability, our initial instinct is usually to attribute them solely to SRE concerns? Yet, upon closer examination, one may realize that actually implementing observability is, in essence, more aligned with the domain of developers. After all, developers are the ones who directly implement the actual logic into our existing codebase, and who better to understand and debug their code than the developers themselves? Through this session, we will emphasize on understanding the importance of observability specifically from a developer's perspective. Let's explore some best practices that help us effectively debug the performance of our Node application and how the inclusion of open source frameworks like OpenTelemetry could be beneficial to us.