Electron nasuprot NW.js

Usporedite Electron i NW.js u pogledu arhitekture, performansi, sigurnosti i raširenosti. Saznajte zašto je Electron postao popularniji izbor za razvoj aplikacija za stolna računala.

20. listopada 2026.

Quang Lam · Founder & CEO

Electron nasuprot NW.js

Electron i NW.js dva su etablirana razvojna okvira za izradu višeplatformskih aplikacija za računala pomoću web-tehnologija. Oba objedinjuju Chromium i Node.js, omogućujući razvojnim programerima izradu aplikacija pomoću HTML-a, CSS-a, JavaScripta i poznatih frontend razvojnih okvira kao što su React, Vue i Angular.

NW.js zapravo je stariji razvojni okvir. Izvorno poznat kao node-webkit, projekt je započeo 2011., a javno je bio dostupan do 2012. Electron je uslijedio 2013., a prvotno ga je razvio GitHub za svoj uređivač koda Atom. Iako se pojavio kasnije, Electron je s vremenom postao šire prihvaćen razvojni okvir za aplikacije za računala u širokoj upotrebi.

Danas Electron pokreće velike aplikacije kao što su Visual Studio Code, Slack, Discord, Notion i Figma. Prednost mu je i sudjelovanje velikih tehnoloških tvrtki te upravljanje putem zaklade OpenJS Foundation. U WebCatalogu odabrali smo Electron kao temelj svojih višeplatformskih aplikacija za računala.

NW.js, s druge strane, znatno je manje zastupljen među velikim aplikacijama za produktivnost i poslovanje. Njegova kontinuirana upotreba posebno je vidljiva u industriji videoigara, uključujući neovisne igre i naslove izrađene pomoću alata RPG Maker.

Kako se, dakle, ta dva razvojna okvira uspoređuju i koji bi razvojni programeri trebali odabrati?

Electron i NW.js ukratko

Oba razvojna okvira omogućuju izradu aplikacija za računala pomoću web-tehnologija, ali različito pristupaju arhitekturi aplikacije, integraciji s izvornim funkcijama sustava i sigurnosti.

ZnačajkaElectronNW.js
Prvo predstavljanje2013.2011.–2012.
Izvorni razvojni timGitHubIntel Open Source Technology Center
Upravljanje i ekosustavOpenJS Foundation, uz velike korporativne doprinositeljeOdržava ga zajednica, a potječe iz Intela
Mehanizam preglednikaChromiumChromium
Izvršno okruženje za JavaScriptNode.jsNode.js
Računalne platformemacOS, Windows, LinuxmacOS, Windows, Linux
ArhitekturaGlavni proces i procesi za prikazArhitektura Chromiuma s izravnom integracijom Node.js-a
Pristup Node.js-uGlavni proces i kontrolirana integracija u procese za prikazIzravan pristup iz aplikacijskih stranica koje ispunjavaju uvjete
Veličina aplikacijeRelativno velikaRelativno velika
PerformanseOvise o aplikacijiOvise o aplikaciji
SigurnostIzolirano okruženje, izolacija konteksta, IPCPodesiv pristup Node.js-u i izolacija okvira
PrihvaćenostŠiroko se upotrebljava u aplikacijama za računala u širokoj upotrebiManji ekosustav, značajna upotreba u igrama
Podrška za mobilne uređajeNema službene podrškeNema službene podrške

Najvažnije razlike nisu u performansama ni veličini aplikacije. Oba razvojna okvira uključuju Chromium i Node.js, pa su njihovi zahtjevi za resursima uglavnom usporedivi. Glavne razlike odnose se na arhitekturu, sigurnosne granice, razvojne alate i podršku ekosustava.

Povijest: NW.js pojavio se prvi, ali Electron postao je popularniji

NW.js bio je jedan od prvih projekata koji je pokazao da razvojni programeri mogu kombinirati Node.js s tehnologijama preglednika kako bi izrađivali aplikacije za računala. Izvorno nazvan node-webkit, nastao je u Intelovu centru Open Source Technology Center, a razvoj je započeo 2011., dok su javna izdanja postala dostupna do 2012.

Njegova središnja zamisao bila je jednostavna: omogućiti JavaScriptu koji se izvršava u okruženju sličnom pregledniku izravan pristup modulima Node.js-a. Time je postalo moguće razvijati aplikacije za računala pomoću poznatih web-tehnologija, bez izrade tradicionalnog izvornog sučelja.

Electron se pojavio 2013. pod nazivom Atom Shell. GitHub ga je razvio kao temelj Atoma, svojeg uređivača koda, koji je ušao u javnu beta-fazu 2014. Electron je zamišljen kao alternativa tada dostupnim razvojnim okvirima za aplikacije za računala temeljenima na webu, uključujući node-webkit i Chromium Embedded Framework.

Iako su oba razvojna okvira imala cilj približiti razvoj aplikacija za računala web-programerima, Electron je prihvatio drukčiju arhitekturu koja je funkcionalnosti na razini aplikacije odvojila od web-sadržaja. Taj je pristup postajao sve privlačniji kako su razvojni programeri počeli izrađivati složenije aplikacije.

Electron su potom počeli prihvaćati startupi i velike tehnološke tvrtke. GitHub, Slack, Microsoft i druge organizacije pridonijeli su njegovu razvoju i ekosustavu. Godine 2019. Electron se pridružio zakladi OpenJS Foundation, prešavši iz vlasništva GitHuba pod okrilje neutralne zaklade za otvoreni kod.

Danas Electron djeluje prema uspostavljenom modelu upravljanja s radnim skupinama koje pokrivaju sigurnost, izdanja, API-je, nadogradnje Chromiuma i Node.js-a te druga područja. Inženjeri povezani s organizacijama kao što su Microsoft i Slack sudjelovali su u njegovu održavanju i upravljanju.

NW.js također ima korporativno podrijetlo jer je nastao u Intelu. Međutim, njegov je današnji ekosustav manji i nema jednako široko vidljivo sudjelovanje velikih tvrtki koje razvijaju softver za računala.

Ta povijest pokazuje važnu razliku: biti prvi ne jamči dugoročnu dominaciju. NW.js pomogao je uspostaviti koncept izrade aplikacija za računala pomoću Chromiuma i Node.js-a, ali Electron je privukao širi ekosustav razvojnih programera, održavatelja i komercijalnih korisnika.

Više informacija potražite u retrospektivi deset godina Electrona, članku o pridruživanju Electrona zakladi OpenJS Foundation i povijesti projekta node-webkit.

Arhitektura: glavni procesi nasuprot izravnoj integraciji Node.js-a

Electron upotrebljava višeprocesnu arhitekturu naslijeđenu od Chromiuma. Svaka aplikacija izrađena u Electronu ima glavni proces odgovoran za upravljanje prozorima, događajima životnog ciklusa aplikacije, integracijama s operacijskim sustavom i privilegiranim funkcionalnostima. Web-sadržaj izvršava se u zasebnim procesima za prikaz, koji s glavnim procesom komuniciraju putem međuprocesne komunikacije (IPC).

Time se stvara razlika između aplikacijske logike i koda korisničkog sučelja. Proces za prikaz obično se ponaša kao uobičajeno okruženje preglednika, dok glavni proces obrađuje operacije koje zahtijevaju pristup Node.js-u ili izvornim API-jima sustava. Electron također nudi skripte za predučitavanje i API contextBridge, koji razvojnim programerima omogućuju izlaganje odabranih funkcionalnosti procesu za prikaz bez davanja neograničenog pristupa Node.js-u.

NW.js ima drukčiji pristup. Osmišljen je kako bi funkcionalnosti Node.js-a bile dostupne izravno unutar web-aplikacija. Na aplikacijskoj stranici koja ispunjava uvjete razvojni programeri mogu pristupati modulima Node.js-a pomoću poznatih JavaScript API-ja, bez uspostavljanja zasebnog IPC sučelja za svaku operaciju.

Primjerice, lokalno zapakirana aplikacija izrađena u NW.js-u može upotrebljavati Node.js izravno iz skripte koja se izvršava na njezinoj stranici:

const fs = require('node:fs');

const content = fs.readFileSync('notes.txt', 'utf8');
document.body.textContent = content;

Ta je jednostavnost jedna od ključnih prednosti NW.js-a. Razvojni programeri mogu kombinirati API-je preglednika i funkcionalnosti Node.js-a bez nužnog odvajanja koda u zasebne aplikacijske slojeve. NW.js također podržava zasebne JavaScript kontekste i način rada s mješovitim kontekstom, pružajući fleksibilnost u međudjelovanju funkcionalnosti preglednika i Node.js-a.

Electron općenito potiče jasnije razdvajanje. Za čitanje datoteke iz procesa za prikaz tipična sigurna aplikacija izrađena u Electronu izložila bi ograničenu operaciju putem skripte za predučitavanje, a pristup datotečnom sustavu obradila u glavnom procesu.

Takav pristup zahtijeva dodatan kod, ali jasnije određuje granicu između privilegiranih funkcionalnosti aplikacije i web-sadržaja. Kod složenih aplikacija to razdvajanje može olakšati održavanje i razumijevanje sigurnosnih odgovornosti.

Nijedna arhitektura nije univerzalno bolja. NW.js može djelovati jednostavnije za manje aplikacije ili projekte kojima koristi izravna integracija Node.js-a. Electron pruža strukturu koja može biti posebno korisna kako aplikacija postaje složenija.

Performanse, potrošnja memorije i veličina aplikacije

Budući da i Electron i NW.js uključuju Chromium i Node.js, nijedan razvojni okvir nema urođenu arhitekturnu prednost usporedivu s razlikom u veličini između Electrona i Taurija.

Čak i jednostavna aplikacija izrađena bilo kojim od tih razvojnih okvira mora se distribuirati s poprilično velikim izvršnim okruženjem. Oba razvojna okvira mogu stvoriti i više procesa Chromiuma, što povećava potrošnju memorije, ali pomaže izolirati radna opterećenja i poboljšati odziv.

Izravna integracija Node.js-a i okruženja preglednika u NW.js-u može smanjiti potrebu za IPC-om pri određenim operacijama. Ovisno o konfiguraciji konteksta, JavaScript kod može izravno komunicirati s funkcionalnostima Node.js-a, što pojednostavnjuje neke operacije i potencijalno smanjuje komunikacijsko opterećenje.

Electron odvaja privilegirane operacije od koda procesa za prikaz, što uvodi IPC pri prelasku granica procesa. Međutim, to ne znači da je Electron sam po sebi sporiji. Dodatno opterećenje može biti zanemarivo pri uobičajenim interakcijama s korisničkim sučeljem, a razdvajanje može pomoći da se zahtjevni pozadinski zadaci ne izvršavaju u procesu za prikaz.

U praksi performanse aplikacije uvelike ovise o tome kako razvojni programeri upotrebljavaju Chromium, upravljaju pozadinskim procesima, implementiraju prikaz i obrađuju stanje aplikacije.

Za smislenu usporedbu razvojni programeri trebali bi procijeniti:

  • Vrijeme pokretanja: koliko brzo aplikacija postaje spremna za interakciju.
  • Potrošnju memorije: potrošnju u mirovanju i pri realističnim radnim opterećenjima.
  • Potrošnju procesora: potrošnju resursa tijekom prikazivanja i pozadinskih operacija.
  • Veličinu aplikacije: veličinu preuzimanja i potrebnog prostora za pohranu nakon instalacije.
  • Odziv: koliko dobro sučelje radi tijekom zadataka koji intenzivno troše resurse.

Nijedan razvojni okvir ne bi se trebao smatrati nedvojbeno bržim bez mjerenja na reprezentativnoj aplikaciji. Razlike u verzijama Chromiuma, konfiguracijama izgradnje, izvornim modulima i arhitekturi aplikacije mogu utjecati na rezultate usporednih testova.

Za razvojne programere koji prvenstveno žele smanjiti veličinu aplikacije, prelazak s Electrona na NW.js vjerojatno neće donijeti dramatične uštede kakve se povezuju s prelaskom na razvojni okvir koji upotrebljava sistemsku komponentu za prikaz weba.

Sigurnost: različiti pristupi pristupu izvornim funkcijama sustava

Sigurnost je jedna od najvažnijih razlika između Electrona i NW.js-a, osobito za aplikacije koje prikazuju udaljene web-stranice ili drugi nepouzdani sadržaj.

Electron pruža nekoliko sigurnosnih mehanizama, uključujući Chromiumovo izolirano okruženje, izolaciju konteksta i mogućnost onemogućavanja integracije Node.js-a u procesima za prikaz. Suvremene verzije Electrona prema zadanim postavkama omogućuju važne zaštite, a sigurnosna dokumentacija projekta snažno preporučuje odvajanje privilegiranih izvornih API-ja sustava od udaljenog sadržaja.

NW.js omogućuje izravniji pristup Node.js-u s aplikacijskih stranica koje ispunjavaju uvjete, što može pojednostavniti razvoj, ali zahtijeva i pažljivo razmatranje sadržaja koji dobiva te ovlasti.

NW.js razlikuje obične okvire i okvire s omogućenim Node.js-om. Podržava i postavke poput node-remote kojima se kontrolira koji udaljeni URL-ovi mogu pristupati funkcionalnostima Node.js-a. Njegova komponenta webview može prikazivati gostujući sadržaj u zasebnom procesu, bez automatskog davanja ovlasti aplikacije.

Sigurnosni aspektElectronNW.js
Privilegirani pristup Node.js-uPrvenstveno glavni proces i kontrolirani mostoviDostupan izravno u aplikacijskim kontekstima koji ispunjavaju uvjete
Izolacija udaljenog sadržajaProcesi za prikaz i web-sadržaj u izoliranom okruženjuObični okviri i izolirane webview komponente
Izlaganje izvornih API-ja sustavaIPC i contextBridgeNode konteksti i podesiv pristup
Chromiumovo izolirano okruženjePodržano uz sigurne zadane postavkeOvisi o vrsti okvira i konfiguraciji
Odgovornost razvojnog programeraProvjera IPC-a, navigacije, dopuštenja i izloženih API-jaKontrola privilegiranih okvira, pristupa Node.js-u i udaljenog sadržaja

Ni Electron ni NW.js ne bi se trebali automatski smatrati sigurnim preglednikom opće namjene. Aplikacije koje prikazuju proizvoljne web-stranice trećih strana zahtijevaju dodatne sigurnosne kontrole, bez obzira na razvojni okvir.

Za aplikacije razvijene isključivo oko pouzdanog lokalnog sadržaja izravna integracija NW.js-a može biti praktična. Za aplikacije koje trebaju snažno razdvajanje privilegiranog koda i nepouzdanog web-sadržaja arhitektura Electrona može učiniti te granice jasnijima.

U konačnici, sigurnost ovisi o dizajnu aplikacije, konfiguraciji, upravljanju ovisnostima i brzini kojom razvojni programeri primjenjuju sigurnosna ažuriranja.

Prihvaćenost: Electron dominira među aplikacijama za računala u širokoj upotrebi

Jedna od najznačajnijih razlika između Electrona i NW.js-a njihova je prihvaćenost među razvojnim programerima softvera za računala.

Unatoč tome što je mlađi projekt, Electron se etablirao kao široko prihvaćen razvojni okvir za produkcijske aplikacije za računala. Upotrebljava se za razvojne alate, komunikacijske platforme, softver za produktivnost, dizajnerske aplikacije i poslovne alate.

Neki poznati primjeri uključuju:

TvrtkaAplikacija izrađena u Electronu
MicrosoftVisual Studio Code
SalesforceSlack
DiscordDiscord
NotionNotion
FigmaFigma
GitHubGitHub Desktop
SignalSignal Desktop
PostmanPostman

Ti proizvodi pokazuju da Electron može podržati napredne aplikacije za računala kojima se koriste milijuni ljudi. Njegova prihvaćenost pridonijela je i opsežnom ekosustavu biblioteka, dokumentacije, alata za otklanjanje pogrešaka i rješenja za pakiranje.

Sudjelovanje tvrtki još je jedna prednost. Electron je izvorno razvio GitHub, a kasnije je privukao doprinose inženjera iz velikih tehnoloških tvrtki. Upravljanje putem zaklade OpenJS Foundation osigurava organizacijsku strukturu za suradnju, održavanje sigurnosti, upravljanje izdanjima i dugoročni razvoj.

To ne znači da svaka tvrtka koja upotrebljava Electron izravno pridonosi razvojnom okviru, niti jamči da će Electron uvijek biti bolje održavan. Međutim, široko upotrebljavan razvojni okvir s raznolikom skupinom komercijalnih dionika može imati koristi od zajedničkih inženjerskih ulaganja i iskustva iz stvarne produkcijske upotrebe.

NW.js ima drukčiji profil prihvaćenosti. Iako se upotrebljava za izradu aplikacija za računala, relativno malo istaknutih suvremenih aplikacija za produktivnost ili poslovanje javno navodi NW.js kao svoj razvojni okvir. Mnoge aplikacije koje se tradicionalno spominju u pregledima primjera upotrebe NW.js-a stariji su projekti, pa su takvi popisi manje korisni za procjenu njegove trenutačne prihvaćenosti.

To ne znači da je NW.js napušten ili da se ne upotrebljava. I dalje dobiva izdanja koja uključuju ažurirane verzije Chromiuma i Node.js-a. Međutim, njegov vidljivi ekosustav u području softvera za računala u širokoj upotrebi znatno je manji od Electronova.

Za razvojne programere koji biraju razvojni okvir za novu komercijalnu aplikaciju ta je razlika važna. Veći ekosustav općenito olakšava pronalaženje postojećih rješenja, zapošljavanje razvojnih programera s relevantnim iskustvom i rješavanje problema u produkciji.

Popularnost Electrona ne čini ga tehnički nadmoćnim u svakom pogledu, ali njegova šira prihvaćenost i sudjelovanje tvrtki praktične su prednosti koje ne treba zanemariti.

Više primjera možete istražiti u službenom pregledu aplikacija izrađenih u Electronu.

Gdje je NW.js i dalje popularan: neovisne igre

Iako NW.js nije široko zastupljen među velikim suvremenim aplikacijama za produktivnost, i dalje je značajno prisutan u razvoju igara, osobito među neovisnim razvojnim programerima.

Jedan je razlog njegova integracija s alatima za razvoj igara kao što je RPG Maker MV. Igre izrađene u RPG Makeru MV mogu upotrebljavati NW.js kao izvršno okruženje na računalima, što omogućuje pokretanje igara temeljenih na HTML5 i JavaScript tehnologijama kao samostalnih aplikacija.

To znači da razvojni programeri mogu upotrebljavati NW.js neizravno, putem svojeg pogona za igre, umjesto da ga odaberu kao razvojni okvir opće namjene za računala.

Postoje i neovisni dokazi da se NW.js i dalje pojavljuje u novoobjavljenim igrama. SteamDB prati igre koje upotrebljavaju NW.js automatskim pregledom tehnoloških potpisa u njihovim distribuiranim datotekama. Njegova baza podataka uključuje igre objavljene 2025. i 2026., što pruža dokaz kontinuirane upotrebe umjesto potpunog oslanjanja na potencijalno zastarjele preglede aplikacija.

Primjeri povezani s NW.js-om uključuju:

IgraŽanrIzdanje na Steamu
Look OutsideHoror RPGožujak 2025.
OMORIRPGprosinac 2020.
CrossCodeAkcijski RPGrujan 2018.
Fear & HungerHoror RPGprosinac 2018.
IbHoror avanturatravanj 2022.
Saihate StationAvanturaožujak 2025.
Sheepy: A Short AdventurePlatformska igraveljača 2024.

Izvor: SteamDB-ovo prepoznavanje tehnologije NW.js.

SteamDB automatski prepoznaje tehnologije iz datoteka igara, pa pojedinačna prepoznavanja mogu sadržavati pogreške ili predstavljati uključenu ovisnost, a ne izvršno okruženje koje je razvojni programer namjerno odabrao. Prisutnost NW.js-a također ne utvrđuje koju verziju razvojnog okvira igra upotrebljava ni održava li je njezin razvojni programer aktivno.

Ipak, ti primjeri pokazuju da NW.js ostaje dio suvremenog ekosustava razvoja igara.

To stvara zanimljivu razliku između dvaju razvojnih okvira. Electron je vrlo vidljiv među aplikacijama za računala u širokoj upotrebi, osobito alatima za produktivnost i razvoj. NW.js je u tim kategorijama manje prisutan, ali se i dalje pojavljuje u neovisno razvijenim igrama.

Za razvojne programere koji izrađuju poslovni softver, komunikacijske alate ili složene aplikacije za produktivnost Electronov ekosustav može biti relevantniji. Za razvojne programere koji rade s RPG Makerom ili održavaju igre temeljene na NW.js-u stariji razvojni okvir ostaje etabliran i praktičan izbor.

Razvojno iskustvo, alati i dugoročno održavanje

Oba razvojna okvira podržavaju suvremene frontend tehnologije i pakete Node.js-a, što ih čini pristupačnima razvojnim programerima upoznatima s web-razvojem. Međutim, Electron ima znatno veći ekosustav usmjeren na softver opće namjene za računala.

NW.js nudi relativno jednostavan razvojni model. Jednostavna aplikacija može se definirati manifestom package.json i ulaznom HTML datotekom. Razvojni programeri mogu pristupati modulima Node.js-a izravno s aplikacijskih stranica koje ispunjavaju uvjete i upotrebljavati API-je NW.js-a za upravljanje prozorima, izbornicima, ikonama u području obavijesti i drugim funkcionalnostima za računala.

Electron obično zahtijeva više početne strukture. Razvojni programeri izrađuju ulaznu točku glavnog procesa, konfiguriraju prozore aplikacije i upravljaju komunikacijom između glavnog procesa i procesa za prikaz. To se kod malih aplikacija može činiti složenijim, ali također potiče razvojne programere da funkcionalnosti aplikacije organiziraju u zasebne slojeve.

Electron ima koristi od etabliranih alata kao što su Electron Forge i electron-builder, koji pružaju rješenja za pakiranje, potpisivanje, distribuciju i ažuriranje aplikacija. Njegova široka prihvaćenost također znači da razvojni programeri mogu pronaći više primjera i rasprava zajednice o naprednim problemima razvoja aplikacija za računala.

NW.js pruža alate za pakiranje kao što je nw-builder i podržava ručno pakiranje. Također izlaže API-je izvedene iz Chromiumove arhitekture aplikacija i proširenja, što može biti privlačno projektima koji već upotrebljavaju te API-je.

Oba razvojna okvira zahtijevaju da razvojni programeri rješavaju razlike među operacijskim sustavima, potpisivanje koda, kompatibilnost izvornih modula i ažuriranja aplikacija. Nijedan ne uklanja složenost distribucije produkcijskog softvera za računala.

Veličina i sastav ekosustava postaju posebno važni za dugoročno održavanje. Timovima koji izrađuju komercijalne aplikacije mogu trebati rješenja za potpisivanje koda, automatska ažuriranja, izvješćivanje o rušenjima, pristupačnost, integracije s izvornim funkcijama sustava i pogreške specifične za pojedine platforme.

Šira prihvaćenost Electrona među velikim softverskim tvrtkama olakšava pronalaženje ustaljenih praksi i ponovno upotrebljivih rješenja za mnoge od tih zahtjeva. NW.js i dalje je sposoban razvojni okvir, ali razvojni programeri mogu naići na manje primjera ili održavanih integracija za specijalizirane funkcionalnosti za računala.

Za projekt za koji se očekuje da će se održavati mnogo godina zrelost ekosustava i kontinuirana ulaganja zaslužuju jednaku pozornost kao API-ji razvojnog okvira ili rezultati usporednih testova.

Zašto u WebCatalogu biramo Electron

U WebCatalogu odabrali smo Electron jer njegova arhitektura dobro odgovara zahtjevima naših proizvoda. WebCatalog korisnicima omogućuje pretvaranje web-stranica u aplikacije za računala, neovisno upravljanje višestrukim računima i organiziranje aplikacija na macOS-u, Windowsu i Linuxu.

Za razliku od razvojnih programera koji izrađuju uobičajenu aplikaciju za računala s frontendom nad kojim imaju potpunu kontrolu, mi moramo podržavati web-stranice koje su izradile tisuće različitih razvojnih programera. Te se web-stranice mogu oslanjati na različite sustave autentifikacije, mehanizme pohrane, API-je preglednika, medijske mogućnosti i složene JavaScript aplikacije.

I Electron i NW.js upotrebljavaju Chromium, pa nude slične prednosti u kompatibilnosti mehanizma preglednika. Za nas je razlika u tome koliko kontrole razvojni okvir pruža nad prozorima aplikacije, sesijama preglednika, navigacijom, dopuštenjima i razdvajanjem privilegiranog aplikacijskog koda od udaljenog sadržaja.

Electron pruža zreo skup API-ja za te zahtjeve. Njegova sučelja BrowserWindow, webContents i session omogućuju nam upravljanje ponašanjem preglednika na relativno niskoj razini. Trajne particije sesija posebno su važne jer korisnicima omogućuju da ostanu prijavljeni na više računa na istoj web-stranici bez dijeljenja kolačića i drugih podataka sesije među tim računima.

NW.js također podržava ugrađene webview komponente, upravljanje kolačićima i particije pohrane, pa te mogućnosti nisu isključive za Electron. Međutim, Electronov namjenski aplikacijski proces i dobro etablirani API-ji za upravljanje preglednikom pružaju arhitekturu koja dobro odgovara našim potrebama.

Sigurnost je još jedan važan čimbenik. Budući da WebCatalog prikazuje web-stranice trećih strana nad kojima nemamo kontrolu, moramo pažljivo odvajati udaljeni sadržaj od privilegiranih funkcionalnosti aplikacije. Electronov procesni model, izolacija konteksta i IPC mehanizmi pomažu nam održavati to razdvajanje, iako i dalje moramo sami implementirati i održavati odgovarajuće sigurnosne kontrole.

Naposljetku, Electronov ekosustav čini višeplatformski razvoj i održavanje praktičnijima. Naše aplikacije moraju raditi na macOS-u, Windowsu i Linuxu, uz podršku za značajke specifične za platformu, pakiranje, potpisivanje i ažuriranja. Electronovi alati, dokumentacija i opsežna stvarna upotreba pružaju snažan temelj za taj rad.

Cijenimo i Electronov ekosustav dugoročnog razvoja. Sudjelovanje velikih tehnoloških tvrtki i upravljanje putem zaklade OpenJS Foundation ulijevaju nam veće povjerenje u dostupnost tehničkih resursa, održavanja sigurnosti i podrške zajednice kako se naši proizvodi razvijaju.

Svjesni smo nedostataka Electrona, osobito veličine aplikacija i zahtjeva za resursima. Umjesto zamjene razvojnog okvira nastavljamo istraživati načine smanjenja nepotrebnog opterećenja. Primjerice, implementirali smo APFS klonove kako bismo smanjili potrošnju prostora na disku za generirane Mac aplikacije.

Naša odluka ne temelji se na uvjerenju da NW.js ne može podržati napredan softver. Oba razvojna okvira nude dosljednost Chromiuma koju cijenimo. Za WebCatalog Electronova arhitektura, sigurnosne kontrole, šira prihvaćenost u softveru u širokoj upotrebi i etablirani inženjerski ekosustav čine ga prikladnijim izborom.

Gdje NW.js i dalje ima smisla

Iako Electron ima veći ekosustav, NW.js zadržava neke značajne prednosti koje bi razvojni programeri trebali razmotriti.

Njegova najprepoznatljivija značajka mogućnost je izravnog pristupa Node.js-u iz konteksta preglednika koji ispunjavaju uvjete. Za razvojne programere koji postojeću web-aplikaciju pretvaraju u aplikaciju za računala to može biti praktičan način uvođenja pristupa datotečnom sustavu, integracija s operacijskim sustavom i drugih izvornih funkcionalnosti bez projektiranja zasebnog komunikacijskog sloja.

NW.js može biti dobar izbor u sljedećim slučajevima:

  • Izrada igara postojećim skupom alata temeljenim na NW.js-u. Razvojni programeri koji upotrebljavaju RPG Maker MV ili održavaju projekte ovisne o NW.js-u mogu imati malo razloga za promjenu razvojnog okvira.
  • Poželjna je izravna integracija Node.js-a. Aplikaciji može koristiti izravan pristup funkcionalnostima Node.js-a unutar njezina pouzdanog sučelja.
  • Aplikacija je relativno jednostavna. Manjem projektu možda nije potrebno Electronovo jasnije razdvajanje logike glavnog procesa i procesa za prikaz.
  • Projekt već upotrebljava NW.js. Migracija na Electron može donijeti malo koristi ako je postojeća aplikacija stabilna i dobro održavana.
  • Važni su određeni Chromiumovi aplikacijski API-ji. NW.js pruža pristup podržanim Chrome API-jima koji mogu biti korisni za određene aplikacije.

NW.js također se i dalje aktivno održava. Njegova kontinuirana ažuriranja Chromiuma pokazuju da se nastavlja razvijati zajedno s platformom preglednika.

Za razvojne programere koji održavaju postojeću aplikaciju ili igru izrađenu u NW.js-u prelazak na Electron zahtijevao bi procjenu arhitekturnih razlika, promjena pakiranja i zahtjeva kompatibilnosti. Ako ne postoji jasna tehnička ili poslovna korist, zadržavanje postojećeg razvojnog okvira može biti praktičnije.

Electron ili NW.js: koji odabrati?

Oba razvojna okvira omogućuju izradu višeplatformskih aplikacija za računala. Za nove projekte izbor uvelike ovisi o tome kako razvojni programeri žele strukturirati svoj kod i koji ekosustav najbolje podržava njihove zahtjeve.

Vaš prioritetBolja polazna točkaZašto
Velike, složene aplikacije za računalaElectronEtablirana arhitektura i ekosustav
Softver za produktivnost ili poslovanje u širokoj upotrebiElectronZnatno šira prihvaćenost u tim kategorijama
Dugoročan ekosustav i sudjelovanje tvrtkiElectronOpenJS Foundation i veliki doprinositelji iz industrije
Igre izrađene pomoću RPG Makera MVNW.jsEtablirana integracija i skup alata
Izravan pristup Node.js-u s aplikacijskih stranicaNW.jsTemeljna arhitekturna značajka
Jasno razdvajanje korisničkog sučelja i privilegiranog kodaElectronModel glavnog procesa i procesa za prikaz te IPC
Opsežni alati za pakiranje i distribucijuElectronZreo ekosustav alata
Postojeća aplikacija izrađena u NW.js-uNW.jsIzbjegavanje nepotrebne migracije
Dosljednost Chromiuma na različitim računalnim platformamaBilo kojiOba uključuju Chromium
Minimalna veličina aplikacijeNijedan nema jasnu prednostOba uključuju Chromium i Node.js
Upravljanje sesijama preglednika i prozorimaElectronZreli, namjenski API-ji
Opsežni resursi i primjeri zajedniceElectronVeća prihvaćenost u širokoj upotrebi

Za većinu timova koji započinju razvoj opsežnije nove aplikacije za računala Electron je bolji zadani izbor. Njegova arhitektura, ekosustav, sigurnosne smjernice, sudjelovanje tvrtki i opsežna produkcijska upotreba čine ga praktičnim razvojnim okvirom za dugoročan razvoj.

NW.js i dalje vrijedi razmotriti za projekte kojima koristi izravna integracija Node.js-a, razvojne procese za igre koji već ovise o njemu ili postojeće baze koda u NW.js-u. Za određene slučajeve upotrebe može biti jednostavniji, a njegova osnova u Chromiumu pruža široku kompatibilnost s web-platformom.

Razvojni programeri također trebaju imati na umu da nijedan razvojni okvir nije osobito lagan. Ako su mala veličina aplikacije i niska osnovna potrošnja resursa glavni prioriteti, vrijedi razmotriti alternative kao što je Tauri.

Završna razmatranja

Electron i NW.js imaju više sličnosti nego razlika. Oba kombiniraju Chromium i Node.js kako bi razvojnim programerima omogućili izradu višeplatformskih aplikacija za računala pomoću poznatih web-tehnologija. Oba podržavaju suvremene JavaScript razvojne okvire, integraciju s izvornim funkcijama operacijskog sustava i napredna korisnička iskustva na računalima.

NW.js pojavio se prvi i predstavio svoj pristup kombiniranju Node.js-a s web-tehnologijama prije nego što je Electron postojao. Međutim, Electron je kasnije postao šire prihvaćen razvojni okvir za aplikacije za računala u širokoj upotrebi, zahvaljujući početnom ulaganju GitHuba, doprinosima velikih tehnoloških tvrtki i upravljanju putem zaklade OpenJS Foundation.

Njihovi obrasci prihvaćenosti primjetno se razlikuju. Electron pokreće popularne aplikacije za produktivnost, komunikaciju i razvoj kojima se koriste milijuni ljudi. NW.js manje je vidljiv na tom tržištu, ali i dalje je značajno prisutan u neovisnim igrama, uključujući naslove temeljene na RPG Makeru i nedavno objavljene igre.

U WebCatalogu biramo isti razvojni okvir kao i mnogi veliki razvojni timovi za softver za računala. Electron nam daje dosljednost Chromiuma, mogućnosti upravljanja preglednikom, sigurnosnu arhitekturu i višeplatformske alate potrebne za podršku velikom broju različitih web-aplikacija na macOS-u, Windowsu i Linuxu.

NW.js nije zastario, a njegova kontinuirana upotreba u razvoju igara pokazuje da ostaje koristan. No za razvojne programere koji započinju izradu nove aplikacije opće namjene za računala širi ekosustav Electrona, etablirani alati, sudjelovanje tvrtki i veća zajednica čine ga praktičnijim zadanim izborom.

U konačnici, bolji izbor ovisi o zahtjevima aplikacije, iskustvu razvojnog tima i dugoročnim troškovima održavanja softvera.

Povezani članci