4

Qué y porque Xulrunner para el desarrollo de aplicaciones multiplataformas con CRIAX-SDK

21Feb
en CRIAX-SDK, Documentación, información, XUL
Inicio CRIAX-SDK

Inicio CRIAX-SDK

Que es Xulrunner

Xulrunner es una plataforma desarrollada por Mozilla para confeccionar su navegador Firefox entre otras aplicaciones. También llamado GRE (Gecko Runtime Enviroment), anteriormente llamado XPFE (Cross Platform Front End). Inicialmente fue desarrollado por Netscape para el navegador Netscape. Imagine a Firefox como un frame simplemente sin ninguno de los elementos de la interfaz de usuario, entonces los elementos ocultos que hacen que todo funcione en conjunto por detrás en Firefox es llamado Xulrunner.

Que hace a Xulrunner una plataforma

Xulrunner es más o menos como Java (ño apretaste!). Ok vayamos paso a paso, Java es una máquina virtual, es el nombre de un framework y es el nombre de un lenguaje de programación. Bueno entonces decimos que Xulrunner es un poco como Java pues es una máquina virtual y un framework. Entonces también podríamos decir que Xulrunner es un poco como .NET, que es un framework y una máquina virtual. Esta son las principales características compartidas entre Xulrunner, Java y .NET, cuyo framework permite crear aplicaciones multiplataforma.

Inicialmente la idea de Mozilla era liberar un entorno de desarrollo sobre Xulrunner y más adelante liberar las aplicaciones desarrolladas con el mismo algo parecido a como se hizo en Java y .Net.

Si está bien todo esto y que?

Xulrunner le permite a los desarrolladores escribir programas que corren en la mayoría de los sistemas operativos usando lenguajes y tecnologías con la que está familiarizado el programador Web. Esto significa que escribes la UI con HTML, le das estilo con CSS y finalmente desarrollas las funcionalidades con Javascript. Sí, ya se lo que piensas, pero JS solo sirve para la web. Bueno Xulrunner trae incorporado un componente llamado XPConnect que permite la comunicación entre JS y C++, también permite comunicar con Python, Java entre otros. De esta manera JS puede ser utilizado para desarrollar verdaderas aplicaciones de escritorio, desarrollando componentes XPCOM (Cross Platform Component Object Model).

Porque usar Xulrunner

Para comprender el porqué del uso de Xulrunner tenemos que echarle un ojo a las ventajas y desventajas del mismo.

Xulrunner vs Java/.Net (no, no estoy loco)

Casi todas las PC hoy día tienen instalado Java, pero en cualquier PC donde esté instalado Firefox ya tenemos disponible Xulrunner, por otro lado .NET se usa casi exclusivamente en Windows. Los programas escritos en Java se ven como programas de Java y los de .NET como programas de Windows. Por su parte Xulrunner trata de imitar la GUI del sistema operativo donde se encuentre, de la forma más fiel posible, pero siempre se debe de recordar que se puede dar estilo con CSS. Java y .NET utilizan código compilado, mientras que Xulrunner al usar JS nunca necesita ser compilado, esto supone una ventaja en el tiempo de desarrollo, pero por supuesto JS siempre será más lento que Java o C#.

Más ventajas

Xulrunner es extensible, por ejemplo piensa en las extensiones de Firefox, que son integradas a la aplicación con el menor esfuerzo, incluso código original que no deseas que pertenezca más al núcleo de la aplicación puede ser puesto como una extensión. Otra de las características buenas de Xulrunner es que su tema se puede personalizar y una no muy común es la capacidad de internacionalizar la aplicación y la accesibilidad de la misma y todo esto mediante JS, soporte para el cual ya Xulrunner tiene incorporado totalmente.

Xulrunner no necesita ser instalado, pues su paquete viene en un compactado .zip, se utiliza como si fuera un portable. Esto supone una ventaja pues las aplicaciones desarrolladas con esta plataforma pueden utilizar una instalación de Xulrunner existente o llevar la suya propia y sin tener que realizar ningún cambio en archivos de configuración o código se puede cambiar de una instalación a otra.

Al igual que las demás plataformas puede ser personalizado su uso mediante parámetros pasados en la consola en su ejecución y la opción de debug le permite al sistema decirnos qué está mal. Por último pero no menos importante está la posibilidad de realizar empaquetados de las aplicaciones, los cuales pueden ser utilizados como extensiones de otro programa o pueden ser instalados como aplicaciones independientes.

CRIAX-SDK

CRIAX-SDK

En CRIAX-SDK

Como se puede apreciar, estas ideas encajan como anillo al dedo en la filosofía de CRIAX-SDK, de desarrollar aplicaciones de escritorio con tecnología Web, permitiendo la interacción con el escritorio del usuario.

A pesar de que CRIAX-SDK ya incorpora muchas de las habilidades de Xulrunner como la posibilidad de ponerle temas, la traducción, entre otras, no son descartadas las habilidades de crear pequeñas aplicaciones como extensiones para luego fusionarlas con una aplicación principal. Por otro lado se aprovecha la flexibilidad de usar una instalación de Xulrunner en la PC o la aplicación puede llevar su propia máquina virtual de Xulrunner incorporada.

4 Comentarios

  1. Yosbel Marin dice:

    Saludos.

    Aqui mi humilde contribucion a CRIAX-SDK. Esta sin testear.
    Es una propuesta a la clase de CRIAX “criax.mobile.form.Button”
    Prueben y diganme que tal funciona.

    /**
    * Componente Botón.
    *
    *
    * *Forma de Usarlo*
    *
    *
    * var Button = criax.mobile.form.Button, b;
    *
    * b = new Button(‘Foo’, ‘success’);
    * b = new Button(‘Foo’, ‘warning’);
    * b = new Button(‘Foo’, ‘info’);
    * b = new Button(‘Foo’, ‘danger’);
    * b = new Button(‘Foo’, ‘black’);
    *
    *
    * *Ejemplo*
    *
    * Un pequeño ejemplo de como usar este componente.
    *
    *
    * var button = new criax.mobile.form.Button(“Hola Mundo”);
    *
    * button.addListener(“tap”, function(e) {
    * alert(“Haz hecho click en un boton!!”);
    * }, this);
    *
    * this.getRoot.add(button);
    *
    *
    * Este ejemplo crea un boton con el texto “Hola Mundo” y adiciona
    * un event listener al evento {@link qx.ui.mobile.core.Widget#tap} del mismo.
    *
    */

    qx.Class.define(“criax.mobile.form.Button”,
    {
    extend : qx.ui.mobile.form.Button,

    construct : function(label, kind, icon)
    {
    this.setDefaultCssClass(‘button-’ + kind);
    this.base([label, icon]);
    }
    });

  2. Nilmar Sánchez Muguercia dice:

    Muchisimas gracias por tu aporte Yosbel, sera probado y agregado como un contrib

Dejar un comentario

¿Eres humano? Entonces resuelve esta operación: * Límite de tiempo se agote. Por favor, recargar el CAPTCHA por favor.