desktop-app
Десктопные приложения: Electron/Tauri, упаковка, автообновление, нативные API
SKILL.mdskills/desktop-app/SKILL.md
GitHubDesktop 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)
- Иконки и метаданные приложения
- Проверь размер и подпись билда
Правила
- Держи renderer «веб-части» отдельно от нативного кода.
- Минимизируй поверхность атаки (contextIsolation, принцип наименьших прав).
- Тестируй на реальных ОС, а не только в dev-режиме.
- Планируй автообновление с самого начала.