Was ist neutralino.js?
Diese Technologie ist ein ziemlich interessantes Analogon zum derzeit etablierten Electron und NodeWebkit . Wie unterscheidet es sich von den oben genannten technologischen Lösungen? Wenn Sie den Aussagen in der offiziellen Dokumentation glauben, ist die Architektur der Anwendungskonstruktion selbst hervorragend, sodass Sie plattformĂŒbergreifende Anwendungen auf Webtechnologien mit einer ausreichend geringen GröĂe des endgĂŒltigen Builds erstellen können.
Wie lÀuft die Installation?
Basierend auf der offiziellen Dokumentation können wir zwei Optionen fĂŒr die Installation und Verwendung der beschriebenen Technologie bei der Entwicklung unserer eigenen plattformĂŒbergreifenden Anwendungen fĂŒr Webtechnologien unterscheiden.- Laden Sie das fertige tragbare SDK herunter .
- Verwendung einer speziellen CLI-Schnittstelle unter dem Namen neu-cli.
In diesem Artikel werden wir genau die 2. Installationsoption betrachten, da meiner Meinung nach die gegebene Lösung sowohl in architektonischer als auch in praktischer Hinsicht die ganzheitlichste ist.
$ ~ npm install -g @neutralinojs/neu
$ ~ yarn global add @neutralinojs/neu
Hinweis fĂŒr Benutzer von * nix-Systemen, webkit2gtk. Neutralino.js.
$ ~ sudo pacman -S webkit2gtk
$ ~ sudo apt-get install libwebkit2gtk
Wichtige architektonische Merkmale
Diese Technologie wird auf der Grundlage der Client-Server-Architektur implementiert und zeichnet sich auch durch die Verwendung eines eher nicht trivialen Build-Systems aus, das auf vorbereiteten BinĂ€rdateien fĂŒr jedes Betriebssystem basiert.Vielleicht ist es auch erwĂ€hnenswert, dass es verschiedene Varianten des Startens und Debuggens von Software gibt, nĂ€mlich:- Cloud - gekennzeichnet durch die FĂ€higkeit, jedes Softwareprodukt zu verbinden, unter BerĂŒcksichtigung der Beliebtheit des dafĂŒr verwendeten Ports.
- Browser - gekennzeichnet durch das automatische Ăffnen des Hauptbrowsers auf dem Computer des Benutzers. Ein Tokensystem wird verwendet.
- Fenster ist die Hauptmethode zum Verteilen Ihrer Software. Wie in der vorherigen Version wird ein Tokensystem verwendet, das in Ihr HTML-Dokument eingebettet ist.
Ordner und Dateisystem
âââ app
| âââ assets
| | âââ app.css
| | âââ app.js
| | âââ neutralino.js
| âââ index.html
| âââ settings.json
âââ neutralino-win.exe
âââ neutralino-linux
âââ neutralino-mac
âââ storage
- app/assets â , Neutralino.js , . , app.css app.js.
- index.html â .
- settings.json â , .
- appname-linux â Linux.
- appname-win.exe â Windows.
- appname-mac â macOS.
- storage â JSON , .
. API-
- Settings â , «settings.json».
- File System â . , , .
- OS â . ,
- Computer â . .
- Storage â JSON- «storage».
- Debug â . .
- App â . exit.
Die Entwickler dieser Technologie versuchen, eine minimalistische Umgebung fĂŒr Ihre endgĂŒltige Anwendung einzuhalten, und daraus ergeben sich einige interessante Fehler und Probleme.Erstens gibt es eine ziemlich stark eingeschrĂ€nkte FunktionalitĂ€t. Was passiert, wenn es fehlt? Genau. Sie mĂŒssen eine völlig andere technologische Lösung verwenden.Zweitens gibt es in der offiziellen Dokumentation keine Interaktion zwischen dem Render- und dem Serverprozess. In diesem Fall haben Sie nur eine Option zur Lösung Ihres Problems - das Anzeigen von Quellcodes von Entwicklern.Drittens entspricht das verwendete Assembly-System keinem minimalistischen Datensatz, da Sie fĂŒr die Softwareverteilung beide Dateien gleichzeitig fĂŒr das * nix-System und fĂŒr Windows verteilen mĂŒssen.Viertens endet der deklarierte Minimalismus des endgĂŒltigen Builds mit der Zusammenstellung einer Testreact-Anwendung. Der endgĂŒltige Bau geht um 180-190 MiB.Fazit
Die in diesem Artikel beschriebene Technologie ist eine interessante Architekturlösung zum Schreiben von Desktop-Anwendungen, die auf Webtechnologien basieren, aber gleichzeitig ein sehr grobes Produkt, das zu diesem Zeitpunkt nicht nur Electron, sondern auch NodeWebkit einfach keinen angemessenen Wettbewerb bieten kann .Meiner Meinung nach liegt dieses Problem gerade in den verwendeten architektonischen Lösungen und der unzureichenden Dokumentation der Technologie selbst. Vielleicht sollten Sie die FunktionalitĂ€t der endgĂŒltigen Anwendung erweitern? Und wird ein solcher Minimalismus zu einem bestimmten Zeitpunkt benötigt? Immerhin ist der Gewinn von 20-30 MiB fĂŒr RAM im Vergleich zur heutigen Hardware recht gering.