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);