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