Nova verzija platforme Electron 5.0.0 već je među nama, qPruža samodostatan okvir za razvoj višekorisničkih aplikacija, koristeći komponente Chromium, V8 i Node.js.
Ova značajna promjena u broju verzije posljedica je ažuriranja baze koda Chromium 73, na platformu Node.js 12 i JavaScript motor V8 7.3. Ranije očekivana obustava podrške za 32-bitne Linux sisteme za sada je odgođena, a verzija 5.0 je takođe dostupna u 32-bitnim verzijama.
O Electronu
Za one koji još uvijek ne znaju Electron, to bi trebali znati ovaj okvir omogućava stvaranje bilo koje grafičke aplikacije koja koristi tehnologije pretraživača, čija je logika definirana u JavaScript-u, HTML-u i CSS-u, a funkcionalnost se može proširiti kroz prateći sistem.
Programeri imaju pristup modulima Node.js, kao i naprednom API-ju za generiranje izvornih dijaloga, integriranje aplikacija, stvaranje kontekstnih izbornika, integracija sa sistemom za prikaz obavijesti, manipuliranje prozorima i interakciju s Chromium podsistemima.
Za razliku od web aplikacija, programi zasnovani na Electronu isporučuju se kao zasebne izvršne datoteke koje nisu povezane s pretraživačem.
U ovom slučaju, programer ne mora brinuti o prenošenju aplikacije za razne platforme, Electron će pružiti mogućnost kompajliranja za sve sisteme kompatibilne s Chromiumom.
Electron takođe nudi alate za organizaciju automatske isporuke i instalacije ispravki (ispravke se mogu isporučiti sa zasebnog servera ili direktno sa GitHub-a).
Od programa stvorenih na bazi platforme Electron možemo spomenuti Atom editor, klijent e-pošte nylas, alati za rad GitKraken, sistem za vizualizaciju i analizu upita Wagon SQL, WordPress Desktop sistem za bloganje, klijent WebTorrent radna površina BitTorrent.
A takođe i zvanični klijenti usluga kao što su Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code i Discord.
Šta je novo u programu Electron 5.0.0?
Kao što je spomenuto na početku, ovo novo izdanje Electron 5.0.0 i dalje podržava 32-bitne sisteme koja je prethodno najavila ukidanje iz prošlih verzija (možete pročitati članak o tome Na sledećem linku).
Dok u ovom izdanju programeri su proglasili zastarjelim i uklonit će se u sljedećoj verziji: mksnapshot izvršne datoteke za arm i arm64, ServiceWorker u WebContents, pozivi na webFrame.setIsolated *, mogućnost direktnog pozivanja modula electron.screen, child_process, fs, os i path (sada morate nazvati daljinskim putem pomoću kontrolera u izoliranom web sadržaju).
Što se tiče noviteta Electrona 5.0.0 možemo istaći dodana je varijabla okoline "ELECTRON_DISABLE_SANDBOX" da onemogući izolaciju pješčanika, na primjer, ako se aplikacija već izvodi u spremniku zasnovanom na Docker-u;
Za dodatnu sigurnost postavke nodeIntegration i webviewTag su po defaultu onemogućene.
API provjere pravopisa prebačen je u neblokirajući način rada, u kojem se rezultat provjere vraća u asinkronom načinu.
U pakiranim aplikacijama omogućen je dodatak zadanog izbornika aplikacija, čak i ako aplikacija izričito ne definira ovaj izbornik ili dodaje rukovatelj događajima zatvaranja prozora.
API nastavlja prevoditi asinkrone upravljače koji su prethodno koristili pozive povratnog poziva u obrazac zasnovan na mehanizmu Promise.
Isto tako Podrška za Promise dodana je u API za kolačiće i u aplikaciju getFileIcon, ContentTracing metode. [GetCategories | startRecording | stopRecording], debugger.sendCommand, shell.openExternal, webContents. [loadFile | loadURL | zoomLevel | zoomFactor] i win.capturePage.
Ostale promjene
Od ostalih glavnih promjena u ovom izdanju su:
- Mogućnost dobivanja informacija o sistemskim bojama na macOS-u pomoću systemPreferences.getAccentColor, systemPreferences.getColor i systemPreferences.getSystemColor.
- Funkcija process.getProcessMemoryInfo, koja pruža statistiku o potrošnji memorije u trenutnom procesu.
- U "udaljenom" modulu, koji predstavlja IPC mehanizam za interakciju između trenutnog procesa crtanja stranice i glavnog procesa, dodane su dodatne funkcije za filtriranje vanjskih zahtjeva za potpunu kontrolu nad pristupom IPC-u.
- Dodata je podrška za filtre za remote.getBuiltin, remote.getCurrentWindow, remote.getCurrentWebContents i webview.getWebContents.
- Dodata je mogućnost upravljanja višestrukim instancama BrowserViews iz jednog objekta BrowserWindow.