Hay forma de crear una App sin interfaz? - Forum

Forum Navigation
You need to log in to create posts and topics.

Hay forma de crear una App sin interfaz?

Hola Gente:

Hoy reflexionando acerca de un proyecto que estoy haciendo en otro lenguaje me pregunté si sería posible hacer que una app creada en VisualNeo Web se ejecutara sin interfaz, solo haciendo cosas (ejecutando código) que puede ir tranquilamente en los "Evantos de la app" o en un Timer pero que carezca de interfaz alguna, o sea se ejecute a modo servicio, script o app de servidor. No necesariamente tiene que ser una API claro, puede ser una app que prepare archivos para que luego una API los sirva. ¿Quizás se podría hacer algo para enviar comandos desde el FrontEnd para que ciertas cosas se hicieran en el back?

Sé que VisualNeo se soporta principalmente en lenguajes FrontEnd y que esta pensada para otra cosa y que además para manejar Back posee esta API llamada neoPhp (basada en PHP) pero no es la primera vez que ejecuto alguna app del lado del servidor haciendo tareas repetitivas que para VisualNeo serían super sencillas de no ser porque hay que mantener una ventana abierta y toda una infraestructura del navegador.

En fin, no me hagan caso, lo pongo a modo de reflexión ya que he visto que a lo largo del tiempo mediante neoedge, librerías  y otras cosas VisualNeo ha logrado cosas extrañas pero que funcionan.

Un saludo!

@palamar Tu reflexión es muy válida y toca un punto interesante respecto al alcance de VisualNEO Web y cómo se podrían estirar sus capacidades más allá del frontend habitual.

¿Es posible ejecutar una app VisualNEO Web sin interfaz?

VisualNEO Web está diseñado como un entorno para desarrollar aplicaciones web orientadas al usuario final, con una interfaz gráfica. Técnicamente, su ejecución requiere un navegador, ya que se basa en tecnologías frontend (HTML, CSS, JS). Sin embargo, hay formas de aproximarse a una ejecución tipo "servicio" o "script en segundo plano":

Opciones posibles:

1. Uso del evento OnAppStart + Timer

Puedes usar el evento OnAppStart y objetos Timer para ejecutar lógica automáticamente, sin intervención del usuario. Si configuras todo en OnAppStart y eliminas todos los objetos visibles de la interfaz (páginas vacías o con visibilidad hidden), la app parecerá no tener GUI.

Esto lo puedes ejecutar en un navegador con la ventana minimizada o incluso desde un navegador sin interfaz gráfica (como puppeteer o headless Chrome).

2. Uso de NW.js o Electron (modo servicio)

VisualNEO Web permite compilar para NW.js, que empaqueta tu app como una aplicación de escritorio basada en Chromium. Puedes lanzar esta app en segundo plano con argumentos para ocultar la ventana o controlarla con flags de inicio.

Esto permite ejecutar tu app como si fuera un servicio en un entorno local.

3. Integración con neoPhp para lógica de backend

Como bien mencionas, neoPhp te permite delegar tareas del lado servidor a PHP. Puedes crear scripts que se ejecuten por llamadas HTTP (como tareas cron que hagan peticiones a endpoints de tu app hecha con VisualNEO y neoPhp).

Palamar has reacted to this post.
Palamar

Respecto a lo que mencionas @luishp

1. Uso del evento OnAppStart + Timer

Tenía entendido que la página principal (la NewPage por defecto) no puede borrarse y dado que se renderiza en un navegador si o si algo va a mostrarse. Veo un poco extraña o no termino de entender esta primera posibilidad aunque si es cierto que con puppeteer o headless Chrome como mencionas, esa pagina en blanco que no se puede borrar no sería un problema.

Uso de NW.js o Electron (modo servicio)

Digamos que puedo compilarla con la pagina en blanco para NW y hacer que la misma se ejecute en segundo plano cuando es ejecutada. Voy a tener que ponerme manos  a la obra con eso porque la verdad es que desconozco como podría funcionar pero me parece un enfoque interesante

Integración con neoPhp para lógica de backend

Con crear Scripts te referís a crear scripts php que puedan ser llamados desde una app cualquiera al igual que pasa con neoPhp. Este caso seria bien el uso de una app de servidor ya que estamos hablando de PHP y en realidad se tendría que tener e server PHP accionando de manera habitual (Apache, ISS, nginx, etc)

Pienso también que se podría como opción especial tener la posibilidad de compilar la app con una instancia de un navegador embabida y que ya entre oculta o solo con un ícono visible en segundo plano aunque bueno creo que es similar al segundo punto ya planteado (NW.js) ¿Hay algún tutorial de esto?.

@palamar, yo creo que puedes explorar esta opción como la más prometedora (y fácil):

NW.js o Electron

  • NW.js permite arrancar apps sin interfaz visible con parámetros como --no-sandbox, --background, o manipulando la ventana desde JS.

  • Puedes iniciar la app con una ventana minimizada o directamente oculta usando:

BeginJS
  nw.Window.get().hide();
EndJS

Esto logra exactamente lo que quieres: una app que corre en segundo plano como servicio, pero basada en VisualNEO Web.

Palamar has reacted to this post.
Palamar

Lo estaré explorando, gracias!