Un peu sur Neutralino.js

Qu'est-ce que neutralino.js?


Cette technologie est un analogue assez intéressant de l' Electron et du NodeWebkit actuellement établis . En quoi est-elle différente des solutions technologiques ci-dessus? Si vous croyez aux déclarations fournies dans la documentation officielle, l'architecture de la construction de l'application elle-même est excellente, ce qui vous permet de créer des applications multiplates-formes sur des technologies Web avec une taille assez petite de la version finale.

image

Comment se passe l'installation?


Sur la base de la documentation officielle, nous pouvons distinguer deux options pour installer et utiliser la technologie décrite dans le développement de nos propres applications Web multiplates-formes.

  1. Téléchargez le SDK portable fini .
  2. Utilisation d'une interface CLI spéciale sous le nom neu-cli.

Dans cet article, nous considérerons exactement la 2e option d'installation, car à mon avis subjectif, la solution donnée est la plus holistique à la fois en termes architecturaux et pratiques.

#  npm
$ ~ npm install -g @neutralinojs/neu

#  yarn
$ ~ yarn global add @neutralinojs/neu

Remarque pour les utilisateurs des systèmes * nix
, webkit2gtk. Neutralino.js.

#  Linux Arch   
$ ~ sudo pacman -S webkit2gtk

#  Debian   
$ ~ sudo apt-get install libwebkit2gtk


Caractéristiques architecturales clés


Cette technologie est mise en œuvre sur la base d'une architecture client-serveur et se caractérise également par l'utilisation d'un système de construction plutôt banal, basé sur des fichiers binaires pré-préparés pour chaque système d'exploitation.
Il convient également de noter qu'il existe plusieurs variantes de démarrage et de débogage des logiciels, à savoir:

  1. Cloud - caractérisé par la possibilité de connecter n'importe quel produit logiciel, en tenant compte de la popularité du port utilisé pour celui-ci.
  2. Navigateur - caractérisé par l'ouverture automatique du navigateur principal sur l'ordinateur de l'utilisateur. Un système de jetons est utilisé.
  3. La fenêtre est la principale méthode utilisée pour distribuer votre logiciel. Comme dans la version précédente, un système de jetons est utilisé, qui est intégré dans votre document html.

Dossier et système de fichiers


├── app
| ├── assets
| | ├── app.css
| | ├── app.js
| | └── neutralino.js
| ├── index.html
| └── settings.json
└── neutralino-win.exe
└── neutralino-linux
└── neutralino-mac
└── storage

  1. app/assets — , Neutralino.js , . , app.css app.js.
  2. index.html — .
  3. settings.json — , .
  4. appname-linux — Linux.
  5. appname-win.exe — Windows.
  6. appname-mac — macOS.
  7. storage — JSON , .

. API-


  1. Settings — , «settings.json».
  2. File System — . , , .
  3. OS — . ,
  4. Computer — . .
  5. Storage — JSON- «storage».
  6. Debug — . .
  7. App — . exit.


Les développeurs de cette technologie essaient d'adhérer à un environnement minimaliste pour votre application finale, et c'est à partir de là que quelques erreurs et problèmes plutôt intéressants s'ensuivent.

Premièrement, il existe une fonctionnalité assez limitée. Que se passera-t-il s'il manque? Exactement. Vous devrez utiliser une solution technologique complètement différente.
Deuxièmement, il n'y a pas d'interaction entre le processus de rendu et le serveur dans la documentation officielle. C'est dans ce cas que vous n'avez qu'une seule option pour résoudre votre problème: afficher les codes source des développeurs.

Troisièmement, le système d'assemblage utilisé ne correspond pas à un ensemble de données minimaliste, car pour la distribution de logiciels, vous devez distribuer simultanément les deux fichiers pour le système * nix et pour Windows.

Quatrièmement, le minimalisme déclaré de la version finale se termine par l'assemblage d'une application de test React. La construction finale tourne autour de 180-190 MiB.

Conclusion


La technologie décrite dans cet article est une solution architecturale intéressante pour l'écriture d'applications de bureau basées sur les technologies Web, mais en même temps un produit très brut, qui à ce stade n'est tout simplement pas en mesure de donner une concurrence décente non seulement à Electron, mais aussi à NodeWebkit .

À mon avis, ce problème réside précisément dans les solutions architecturales utilisées et la documentation inadéquate de la technologie elle-même. Vous devriez peut-être étendre les fonctionnalités de l'application finale? Et un tel minimalisme est-il nécessaire à un moment donné? Après tout, le gain de 20 à 30 Mo pour la RAM est assez faible par rapport aux normes du matériel d'aujourd'hui.

All Articles