Новая версия платформы Electron 5.0.0 уже у нас, qОн обеспечивает самодостаточную структуру для разработки многопользовательских приложений с использованием компонентов Chromium, V8 и Node.js.
Это значительное изменение номера версии связано с обновлением базы кода Chromium 73, на платформу Node.js 12 и движок JavaScript V8 7.3. Ожидаемая ранее приостановка поддержки 32-битных систем Linux была отложена, и версия 5.0 также доступна в 32-битных версиях.
Об электроне
Для тех, кто еще не знает электрон, они должны знать, что этот фреймворк позволяет создавать любые графические приложения с использованием браузерных технологий., логика которого определена в JavaScript, HTML и CSS, а функциональность может быть расширена с помощью сопутствующей системы.
Разработчики имеют доступ к модулям Node.js, а также к расширенному API. для создания собственных диалогов, интеграции приложений, создания контекстных меню, интеграции с системой для отображения уведомлений, управления окнами и взаимодействия с подсистемами Chromium.
В отличие от веб-приложений, программы на базе Electron поставляются в виде отдельных исполняемых файлов, не связанных с браузером.
В этом случае, разработчику не нужно беспокоиться о переносе приложения на различные платформы, Electron предоставит возможность компилировать для всех Chromium-совместимых систем.
Electron также предоставляет инструменты для организации автоматической доставки и установки обновлений (обновления могут доставляться с отдельного сервера или напрямую с GitHub).
Из программ, созданных на базе платформы Electron, можно выделить редактор Atom, почтовый клиент нилас, инструменты для работы с GitKraken, система визуализации и анализа запросов Wagon SQL, система ведения блогов WordPress Desktop, клиент WebTorrent Настольный BitTorrent.
А также официальные клиенты таких сервисов как Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code и Discord.
Что нового в Electron 5.0.0?
Как упоминалось в начале, этот новый выпуск Electron 5.0.0 продолжает поддерживать 32-битные системы который ранее был объявлен о прекращении выпуска с прошлых версий (вы можете прочитать статью об этом По следующей ссылке).
В то время как в этом выпуске разработчики объявили устаревшим и будет удален в следующей версии: Исполняемые файлы mksnapshot для arm и arm64, ServiceWorker в WebContents, вызовы webFrame.setIsolated *, возможность напрямую вызывать модули electronic.screen, child_process, fs, os и path (теперь вы должны вызывать удаленно с помощью контроллера в изолированном веб-контенте).
Из новинок Electron 5.0.0 можно выделить добавлена переменная окружения "ELECTRON_DISABLE_SANDBOX" для отключения изоляции песочницы, например, если приложение уже запущено в контейнере на основе Docker;
Для дополнительной безопасности параметры nodeIntegration и webviewTag по умолчанию отключены.
API проверки орфографии переведен в неблокирующий режим работы, при котором результат проверки возвращается в асинхронном режиме.
В упакованных приложениях предоставляется добавление меню приложения по умолчанию, даже если приложение не определяет это меню явно или не добавляет обработчик событий закрытия окна.
API продолжает переводить асинхронные обработчики, которые ранее использовали обратные вызовы, в форму, основанную на механизме Promise.
также Поддержка Promise была добавлена в API файлов cookie и в приложение 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, которая предоставляет статистику потребления памяти текущим процессом.
- В «удаленном» модуле, который представляет механизм IPC для взаимодействия между текущим процессом рисования страницы и основным процессом, были добавлены дополнительные функции для фильтрации внешних запросов для полного контроля над доступом к IPC.
- Добавлена поддержка фильтров для remote.getBuiltin, remote.getCurrentWindow, remote.getCurrentWebContents и webview.getWebContents.
- Добавлена возможность управлять несколькими экземплярами BrowserViews из одного объекта BrowserWindow.