The release of Electron platform version 28.0.0 has been published, which provides a self-sufficient framework for developing cross-platform desktop applications, utilizing components such as Chromium, V8, and Node.js. The significant version number change is linked to the update to Chromium 120 codebase, Node.js 18.18.2 platform, and JavaScript engine V8 12.0.
Among the changes in the new release:
- Support has been added for ESM (ECMAScript Modules) JavaScript modules created according to the ECMAScript 6 specification and utilized in browser web applications (previously, only Node.js-specific CommonJS modules were supported in Electron). ESM modules can be used both in Electron itself and in handlers based on the UtilityProcess API. Support for ESM modules has also been added to the Electron Forge application build and publishing toolkit.
- In the Linux platform, handling of the ELECTRON_OZONE_PLATFORM_HINT environment variable has been implemented, simplifying the inclusion of Wayland protocol support in Electron-based applications (allowing omission of the '--ozone-platform-hint' flag in .desktop files).
- The Display object has been enhanced with properties detected, maximumCursorSize, and nativeOrigin.
- The default setting for WebContents.backgroundThrottling has been changed to 'false', disabling frame rate limits when rendering content using the BrowserWindow object.
- The methods BrowserWindow.setTrafficLightPosition (use BrowserWindow.setWindowButtonPosition instead), BrowserWindow.getTrafficLightPosition (use BrowserWindow.getWindowButtonPosition instead), ipcRenderer.sendTo (use MessageChannel instead), and app.runningUnderRosettaTranslation (use app.runningUnderARM64Translation instead) have been removed. Support for scroll-touch-[begin|end|edge] events has been discontinued.
The Electron platform allows you to create any graphical applications using web technologies, with logic defined in JavaScript, HTML, and CSS, and functionality that can be extended through a plugin system. Developers have access to Node.js modules as well as an extended API for creating native dialogs, integrating applications, creating context menus, integrating with the notification output system, window manipulation, and interaction with Chromium subsystems.
Unlike web applications, Electron-based programs are delivered as self-contained executable files that are not browser-dependent. Additionally, developers do not need to worry about porting the application to different platforms; Electron provides the ability to build for all systems supported in Chromium. Electron also offers tools for automating the delivery and installation of updates (updates can be delivered either from a separate server, or directly from GitHub).
Notable applications based on the Electron platform include the Atom editor, Mailspring mail client, GitKraken for Git work, WordPress Desktop blogging system, WebTorrent Desktop BitTorrent client, as well as official clients for services such as Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code, and Discord. A total of 756 applications are represented in the Electron application catalog. To facilitate the development of new applications, a set of standard demo applications has been prepared, including code examples for solving various tasks.
Source: opennet.ru
