Подготовлен (https://electronjs.org/blog/electron-5-0) релиз платформы Electron 5.0.0 (https://electronjs.org), которая предоставляет самодостаточный фреймворк для разработки многоплатформенных пользовательских приложений, использующий в качестве основы компоненты Chromium, V8 и Node.js. Значительное изменение номера версии связано с обновлением до кодовой базы Chromium 73 (https://www.opennet.ru/opennews/art.shtml?num=50308), платформы Node.js 12 (https://www.opennet.ru/opennews/art.shtml?num=50562) и JavaScript-движка V8 7.3. Ранее ожидавшееся (https://www.opennet.ru/opennews/art.shtml?num=50249) прекращение поддержки 32-разрядных систем Linux пока отложено и выпуск
5.0 в том числе доступен в 32-разрядных сборках.
Среди изменений (https://github.com/electron/electron/releases/tag/v5.0.0) в API, специфичных для Electron:
- Продолжен перевод асинхронных обработчиков в API, ранее использующих callback-вызовы, в форму на основе механизма Promise (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...). Поддержка 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 также предоставляет средства (http://electron.atom.io/docs/api/auto-updater/) для организации автоматической доставки и установки обновлений (обновления можно доставлять как с отдельного сервера, так и напрямую с GitHub).
Из программ, построенных на базе платформы Electron можно отметить редактор Atom (https://atom.io/), почтовый клиент Nylas (https://nylas.com/), инструментарий для работы с Git GitKraken (https://www.gitkraken.com/), система анализа и визуализации SQL-запросов Wagon (https://www.wagonhq.com/), система ведения блогов WordPress Desktop, BitTorrent-клиент WebTorrent Desktop (https://webtorrent.io/desktop), а также официальные клиенты к таким сервисам, как Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code и Discord. Всего в каталоге программ Electron представлено (https://electronjs.org/apps) 730 приложений. Для упрощения разработки новых приложений подготовлен набор типовых демонстрационных приложений (https://github.com/electron/electron-api-demos), включающих примеры кода для решения различных задач.
URL: https://electronjs.org/blog/electron-5-0
Новость: https://www.opennet.ru/opennews/art.shtml?num=50571