Почему нативные приложения всё ещё важны в 2026 году
В 2026 году границы между «веб-приложением» и «десктопным приложением» стали ещё более размытыми. С такими фреймворками, как Electron, Tauri и Progressive Web Apps (PWA), разработчик может отправить одну кодовую базу на macOS, Windows и Linux. Это заманчиво. Это эффективно. И для многих сценариев использования (как Slack или Notion) этого вполне достаточно.
Однако «достаточно» — это не «отлично».
В HarborDB мы осознанно выбрали создание 100% нативного приложения для macOS с использованием Swift, SwiftUI и AppKit. Мы не выбрали простой путь обёртывания React-приложения в контейнер Chromium. Мы выбрали путь мастерства. Вот почему мы считаем, что нативные приложения всё ещё важны — и почему они всегда будут важны.
1. Налог на ресурсы (ОЗУ и батарея)
Самая очевидная разница — это эффективность.
Архитектура Electron/Web
Приложение Electron — это, по сути, выделенный экземпляр Google Chrome, работающий локально.
- Базовое потребление ОЗУ: ~150 МБ только для отрисовки «Hello World».
- ЦПУ: JavaScript однопоточный и JIT-компилируемый.
- Батарея: Chrome печально известен своим потреблением батареи. Каждая вкладка (или представление приложения) — это отдельный процесс.
Нативная архитектура (Swift)
Нативное приложение компилируется в бинарный машинный код (ARM64 для Apple Silicon).
- Базовое потребление ОЗУ: ~15-30 МБ.
- ЦПУ: Прямой доступ к API Metal и многопоточность через Grand Central Dispatch.
- Батарея: macOS активно оптимизирует нативные приложения, эффективно приостанавливая фоновые действия.
Для инструмента базы данных, который вы можете держать открытым весь день вместе с Xcode, Docker и Chrome, мы не хотели быть причиной, по которой ваш MacBook включает вентиляторы.
2. Доступность — не опциональна
Доступность (a11y) часто является второстепенной задачей в веб-разработке, требующей ручного добавления ARIA-атрибутов и тщательного тестирования.
В нативной экосистеме Apple стандартные элементы управления (кнопки, списки, текстовые поля) поставляются со встроенной поддержкой VoiceOver.
- Семантическая структура: ОС понимает иерархию ваших представлений.
- Навигация: Навигация с клавиатуры автоматически следует системным стандартам.
- Контраст и динамический тип: Нативные приложения сразу уважают настройки размера шрифта пользователя по всей системе.
Создавая нативное приложение, HarborDB сразу готов к использованию разработчиками с нарушениями зрения, без необходимости «перереализовывать» доступность.
3. Глубокая интеграция с системой
Нативное приложение не просто живёт на вашем компьютере; оно живёт с ним.
Меню Сервисы
Выберите текст в любом приложении → Правая кнопка мыши → Сервисы → «Запрос в HarborDB». Это тривиально в AppKit, невозможно в веб-приложении.
Ярлыки и автоматизация
HarborDB предоставляет определения интентов в приложение Ярлыки. Вы можете создать рабочий процесс:
- «Получить последнюю резервную копию из S3»
- «Разархивировать»
- «Импортировать в HarborDB»
- «Выполнить запрос» Всё автоматизировано, всё нативно.
Spotlight
Нативные приложения могут индексировать своё содержимое. Вы можете искать «Схема UserTable» в Spotlight и сразу перейти к определению этой таблицы в HarborDB.
4. «Зловещая долина» пользовательского интерфейса
Веб-приложения могут имитировать нативный интерфейс, но часто попадают в «Зловещую долину» — что-то кажется слегка неправильным.
- Физика прокрутки: iOS и macOS имеют очень специфичные кривые инерционной прокрутки («отскок»). Веб-реализации часто пытаются эмулировать это с помощью JavaScript, но это редко ощущается идеально.
- Управление окнами: Нативные приложения обрабатывают несколько окон, вкладок и разделённых представлений стандартным способом.
- Сочетания клавиш: Cmd+запятая для настроек. Cmd+H для скрытия. Стандартные сочетания клавиш для редактирования текста (Option+влево/вправо). Это мышечная память для пользователей Mac.
5. Безопасность и песочница
Нативные приложения, распространяемые через Mac App Store, работают в строго контролируемой песочнице.
- Они не могут читать произвольные файлы без вашего разрешения (Powerbox).
- Они не могут захватывать ваш экран или нажатия клавиш без явного согласия системы.
- Они имеют код-подпись и заверены Apple.
Веб-приложения обычно работают с меньшими ограничениями или, наоборот, застряли в песочнице браузера, которая полностью ограничивает доступ к файловой системе (требуя обёртки Electron, которая затем часто запрашивает слишком много разрешений).
6. Опыт разработчика (SwiftUI)
С точки зрения разработчика, SwiftUI созрел. Создание производительного списка из 100 000 элементов в веб-доме сложно (виртуальная прокрутка, переиспользование). В SwiftUI:
List(items) { item in
ItemRow(item: item)
}
Система обрабатывает виртуализацию, управление памятью и производительность прокрутки. Мы можем тратить время на создание функций, а не на борьбу с движком рендеринга.
Заключение
Мы не говорим, что веб-приложения плохи. Для совместных инструментов, таких как Figma, веб — идеальная платформа. Но для высокопроизводительного служебного инструмента, такого как клиент базы данных — где вы работаете с миллионами строк, сложными запросами и локальными файлами — сырая мощность и интеграция нативного приложения обычно побеждают.
HarborDB — это наше любовное письмо к Mac. Он уважает вашу батарею, вашу память и ваш рабочий процесс. Вот почему нативные приложения всё ещё важны.