desktop-app

Десктопные приложения: Electron/Tauri, упаковка, автообновление, нативные API

SKILL.md

GitHub

Desktop App

Гайд по разработке настольных приложений.

Выбор фреймворка

Фреймворк Размер Стек бэкенда Когда
Tauri ~10 МБ Rust Лёгкость, безопасность, производительность
Electron ~100+ МБ Node.js Зрелость, богатая экосистема
Flutter Desktop средний Dart Кроссплатформенный UI

Чек-лист

Инициализация

  • Scaffold: create-tauri-app / electron-forge / npx create-react-app+electron
  • Структура: main process / renderer / preload (Electron) или Rust core (Tauri)

Безопасность

  • contextIsolation: true, nodeIntegration: false (Electron)
  • IPC через preload bridge (без прямого доступа к Node из renderer)
  • Validate внешние URL, не грузить произвольный код
  • Кодовое подписание для продакшена

Нативные возможности

  • Файловая система через IPC/плагины (не в renderer)
  • Уведомления, трей, меню приложения
  • Автообновление (electron-updater / tauri updater)

Упаковка

  • Целевые платформы: Windows (.msi/.exe), macOS (.dmg), Linux (.deb/.AppImage)
  • Иконки и метаданные приложения
  • Проверь размер и подпись билда

Правила

  1. Держи renderer «веб-части» отдельно от нативного кода.
  2. Минимизируй поверхность атаки (contextIsolation, принцип наименьших прав).
  3. Тестируй на реальных ОС, а не только в dev-режиме.
  4. Планируй автообновление с самого начала.