Electron 11.0 z obsługą Apple Silicon
Electron jest platformą open source do tworzenia natywnych aplikacji przy użyciu HTML, CSS i JavaScript. Od sierpnia, po wydaniu frameworka Electron 10, trwały prace nad kolejną wersją. Tydzień temu zespół Electron wydał nowe główne wydanie swojego frameworka – Electron 11.0. Zaktualizowano w nim wersje Chromium, Node i jego silnika JS. Ponadto nowością jest obsługa sprzętu Apple Silicon (darwin arm64). Twórcy oficjalnie zakończyli także wsparcie dla wersji Electron 8.xy.
Najważniejsze zmiany w Electron 11.0
Jednak najważniejszą zmianą w aktualizacji jest usunięcie z BrowserView właściwości id. Ma to znaczący wpływ na Electron.NET. Z wydania usunięto także eksperymentalne interfejsy API BrowserView.{destroy, fromId, fromWebContents, getAllViews}.
Następną rzeczą są aktualizacje do najnowszych wersji. Framework korzysta teraz z Chrome w wersji 87, Node 12.18.3, a także z silnika Node – V8 w wersji 8.7.
Obsługa Apple Silicon
Apple ogłosił 10 listopada nowe chipy M1, dołączone do ich nadchodzącego sprzętu. Od tej aktualizacji Electron będzie dostarczał oddzielne wersje dla komputerów Mac z procesorami Intel (x64) i nowego sprzętu Apple M1 (arm64).
Już w wersji beta znalazły się pierwsze kompilacje, które miały działać na urządzeniach Apple Silicon. Oficjalne wydanie frameworka wspiera już uruchamianie aplikacji Electron na Silicon. Dostarczono teraz kolejne dwie kompilacje – darwin-arm64 i mas-arm64. Są one odpowiednikami wcześniejszych artefaktów darwin-x64 i mas-x64. W związku z tym twórcy Electrona zmienili budowę pakietów electron-packager, electron-rebuild i electron-forge. Obsługują one architekturę arm64.
Twórcy zalecają także programistom rezygnację z technologii Rosetta firmy Apple. Electron, razem z silnikiem V8 korzysta z kompilacji Just-In-Time dla JS. Rosetta także uruchamia tę kompilację. Dlatego też, przez podwójne uruchamianie JIT, wydajność aplikacji znacznie się obniży.
Dodatki w Electron 11
Dodano także kilka nowości do Electron 11. Przede wszystkim nowe system-context-menu, które pozwala na zastępowanie menu kontekstowego systemu. Kolejnym dodatkiem jest webContents.forcefullyCrashRenderer(), który wymusza zakończenie procesu renderowania. Dzięki temu jest szansa odzyskania zawieszonego mechanizmu renderowania. Do BrowserWindows dodano nową opcję visualEffectState, która pozwala na dostosowanie stanu efektu jaskrawości w macOS. Kolejnym dodatkiem jest element worldSafeExecuteJavaScript. Zapewnia on, że wartości zwracane z webFrame.executeJavaScript, są bezpieczne, jeśli włączona jest izolacja kontekstu.
Ulepszenia Electron 11.0
Jednym z najważniejszych ulepszeń w tym wydaniu jest zmienione API app.getLoginItemSettings() i app.setLoginItemSettings(). Z kolei, gdy jest włączona kategoria śledzenia disabled-by-default-v8.cpu_profiler, to próbki procesora będą pobierane z procesu głównego oraz z modułu renderującego.
Podsumowanie
Electron 11.0 można zainstalować za pomocą npm przez npm install electron@latest lub pobrać ze strony z wydaniami. Więcej informacji o zmianach w wydaniu znajduje się w uwagach do wydania.
Źródła: Electron Blog, InfoQ,