Релиз Electron 5.0.0, платформы создания приложений на базе движка Chromium

Подготовлен релиз платформы Electron 5.0.0, которая предоставляет самодостаточный фреймворк для разработки многоплатформенных пользовательских приложений, использующий в качестве основы компоненты Chromium, V8 и Node.js. Значительное изменение номера версии связано с обновлением до кодовой базы Chromium 73, платформы Node.js 12 и JavaScript-движка V8 7.3. Ранее ожидавшееся прекращение поддержки 32-разрядных систем Linux пока отложено и выпуск 5.0 в том числе доступен в 32-разрядных сборках.

Среди изменений в API, специфичных для Electron:

  • Продолжен перевод асинхронных обработчиков в API, ранее использующих callback-вызовы, в форму на основе механизма Promise. Поддержка Promise добавлена в Cookies API и в методах app.getFileIcon, contentTracing.[getCategories| startRecording| stopRecording], debugger.sendCommand, shell.openExternal, webContents.[loadFile| loadURL| zoomLevel| zoomFactor] и win.capturePage;
  • Добавлена возможность получения информации о системных цветах в macOS, используя вызовы systemPreferences.getAccentColor, systemPreferences.getColor и systemPreferences.getSystemColor;
  • Добавлена функция process.getProcessMemoryInfo, предоставляющая статистику о потреблении памяти текущим процессом;
  • В модуль «remote», представляющий IPC-механизм для взаимодействия между процессом отрисовки текущей страницы и основным процессом, добавлены дополнительные возможности по фильтрации внешних запросов для получения полного контроля за обращением к IPC. Поддержка фильтров добавлена для вызовов remote.getBuiltin, remote.getCurrentWindow, remote.getCurrentWebContents и webview.getWebContents;
  • Добавлена возможность управления несколькими экземплярами BrowserViews из одного объекта BrowserWindow;
  • В упакованных в пакеты приложениях обеспечено добавление меню приложения по умолчанию, даже если приложение явно не определяет данное меню и не добавляет обработчик события закрытия окна;
  • Активирован по умолчанию смешанный режим работы sandbox-изоляции, при котором и процесс отрисовки запускается в sandbox;
  • Добавлена переменная окружения «ELECTRON_DISABLE_SANDBOX» для отключения sandbox-изоляции, например, если приложение и так запускается в контейнере на базе Docker;
  • Для повышения безопасности по умолчанию отключены настройки nodeIntegration и webviewTag;
  • API проверки орфографии (Spellchecker) переведён на неблокирующий режим работы, при котором результат проверки возвращается в асинхронном режиме;
  • Объявлены устаревшими и будут удалены в следующем выпуске: исполняемые файлы mksnapshot для arm и arm64, ServiceWorker в WebContents, вызовы webFrame.setIsolated*, возможность прямого вызова модулей electron.screen, child_process, fs, os и path (теперь нужно вызывать через remote.require с использованием обработчика в изолированном WebContents).

Напомним, что Electron позволяет создавать любые графические приложения с использованием браузерных технологий, логика работы которых определяется на JavaScript, HTML и CSS, а функциональность может быть расширена через систему дополнений. Разработчикам доступны модули Node.js, а также расширенный API для формирования нативных диалогов, интеграции приложений, создания контекстных меню, интеграции с системой вывода уведомлений, манипуляции окнами, взаимодействия с подсистемами Chromium.

В отличие от web-приложений, программы на базе Electron поставляются в виде самодостаточных исполняемых файлов, не привязанных к браузеру. При этом разработчику не нужно заботиться о портировании приложения для различных платформ, Electron обеспечит возможность сборки для всех систем, поддерживаемых в Chromium. Electron также предоставляет средства для организации автоматической доставки и установки обновлений (обновления можно доставлять как с отдельного сервера, так и напрямую с GitHub).

Из программ, построенных на базе платформы Electron можно отметить редактор Atom, почтовый клиент Nylas, инструментарий для работы с Git GitKraken, система анализа и визуализации SQL-запросов Wagon, система ведения блогов WordPress Desktop, BitTorrent-клиент WebTorrent Desktop, а также официальные клиенты к таким сервисам, как Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code и Discord. Всего в каталоге программ Electron представлено 730 приложений. Для упрощения разработки новых приложений подготовлен набор типовых демонстрационных приложений, включающих примеры кода для решения различных задач.

© OpenNet