Skip to main content

Desktop applications

Overview

Desktop apps run on operating systems such as Windows, macOS, and Linux. They can be fully native, use cross-platform UI toolkits (e.g. Electron, Tauri, Qt), or target the .NET ecosystem. They often integrate deeply with the file system, menus, shortcuts, and multi-window workflows.

Key concepts

  • Native vs hybrid — Native UIs vs web tech in a shell (trade-offs: size, perf, dev speed).
  • Auto-update — Secure update channels and code signing.
  • Permissions — File access, microphone, screen capture—explicit user consent.
  • Packaging — Installers, notarization (macOS), MSIX/AppX (Windows).
  • Offline-first — Local data and sync when connectivity returns.

Architecture sketch

Sample: Electron main process pattern (minimal)

// main.js — opens a BrowserWindow (simplified)
const { app, BrowserWindow } = require('electron');

function createWindow() {
const win = new BrowserWindow({ width: 900, height: 600 });
win.loadFile('index.html');
}

app.whenReady().then(createWindow);

References