Un poco sobre Neutralino.js

¿Qué es neutralino.js?


Esta tecnología es un análogo bastante interesante del Electron and NodeWebkit establecido actualmente . ¿Cómo es diferente de las soluciones tecnológicas anteriores? Si cree en las declaraciones proporcionadas en la documentación oficial, la arquitectura de la construcción de la aplicación en sí es excelente, lo que le permite crear aplicaciones multiplataforma en tecnologías web con un tamaño suficientemente pequeño de la compilación final.

imagen

¿Cómo va la instalación?


Con base en la documentación oficial, podemos distinguir dos opciones para instalar y usar la tecnología descrita en el desarrollo de nuestras propias aplicaciones basadas en web multiplataforma.

  1. Descargue el SDK portátil terminado .
  2. Usando una interfaz CLI especial bajo el nombre neu-cli.

En este artículo, consideraremos exactamente la segunda opción de instalación, porque desde mi punto de vista subjetivo, la solución dada es la más holística tanto en términos arquitectónicos como prácticos.

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

#  yarn
$ ~ yarn global add @neutralinojs/neu

Nota para usuarios de sistemas * nix
, webkit2gtk. Neutralino.js.

#  Linux Arch   
$ ~ sudo pacman -S webkit2gtk

#  Debian   
$ ~ sudo apt-get install libwebkit2gtk


Características arquitectónicas clave


Esta tecnología se implementa sobre la base de la arquitectura cliente-servidor, y también se caracteriza por el uso de un sistema de ensamblaje bastante trivial, que se basa en archivos binarios preparados previamente para cada sistema operativo.
Además, tal vez, vale la pena señalar que hay varias variaciones de software de inicio y depuración, a saber:

  1. Nube: se caracteriza por la capacidad de conectar cualquier producto de software, teniendo en cuenta la popularidad del puerto utilizado para él.
  2. Navegador: se caracteriza por la apertura automática del navegador principal en la computadora del usuario. Se utiliza un sistema de tokens.
  3. Window es el método principal utilizado para distribuir su software. Como en la versión anterior, se utiliza un sistema de tokens, que está incrustado en su documento html.

Sistema de carpetas y archivos


├── 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.


Los desarrolladores de esta tecnología intentan adherirse a un entorno minimalista para su aplicación final, y de ahí surgen algunos errores y problemas bastante interesantes.

En primer lugar, hay una funcionalidad bastante limitada. ¿Qué pasará si falta? Exactamente. Deberá utilizar una solución tecnológica completamente diferente.
En segundo lugar, no hay interacción entre el procesamiento y el proceso del servidor en la documentación oficial. Es en este caso que solo tiene una opción para resolver su problema: ver los códigos fuente de los desarrolladores.

En tercer lugar, el sistema de ensamblaje utilizado no corresponde a un conjunto de datos minimalista, porque para la distribución de software necesita distribuir simultáneamente ambos archivos para el sistema * nix y para Windows.

Cuarto, el minimalismo declarado de la compilación final termina en el ensamblaje de una aplicación React de prueba. La construcción final ronda los 180-190 MiB.

Conclusión


La tecnología descrita en este artículo es una solución arquitectónica interesante para escribir aplicaciones de escritorio basadas en tecnologías web, pero al mismo tiempo es un producto muy crudo, que en este momento simplemente no es capaz de ofrecer una competencia decente no solo a Electron, sino también a NodeWebkit .

En mi opinión, este problema radica precisamente en las soluciones arquitectónicas utilizadas y la documentación inadecuada de la tecnología en sí. ¿Quizás debería expandir la funcionalidad de la aplicación final? ¿Y se necesita tal minimalismo en un momento dado? Después de todo, la ganancia de 20-30 MiB para RAM es bastante pequeña para los estándares del hardware actual.

All Articles