Xojo, desarrollo multiplataforma para todos

En esta serie de artículos hablaremos de una de las herramientas de desarrollo multiplataforma más competitivas que puedas utilizar actualmente, y que permite desplegar sobre WindowsOS XLinux y la Web a partir de un mismo código fuente (en ocasiones con ligeras adaptaciones o modificaciones, en función de la complejidad de nuestros programas); además de que, en breve, también permitirá crear y desplegar aplicaciones nativas para iOS (iPhone e iPad).
¿Por qué querrías añadir un nuevo entorno de desarrollo a tu mochila? Por conveniencia, simple y llanamente. Quizá Xojo no sea la herramienta perfecta para todos los casos, pero lo que sí te puedo asegurar es que se trata el entorno de desarrollo con una de las curvas de aprendizaje más suaves que puedas encontrar y que te permite generar aplicaciones de calidad en una fracción del tiempo que necesitarías en el caso de utilizar otras opciones.
De hecho, son muchas las aplicaciones disponibles por ejemplo en la Mac App Store (ocupando incluso los primeros puestos de los ránking) que han sido creadas con Xojo; y si lo que buscas es una solución de desarrollo empresarial, entonces probablemente te asombrarías al saber algunos de los sitios en los que se está utilizando actualmente este producto: desde grandes entidades bancarias y financieras, hasta su uso en diferentes aplicaciones de análisis forense (seguridad informática), Universidades y agencias gubernamentales de varios países, entre otras.
De hecho, poco antes de escribir este artículo se ha celebrado en Las Vegas la XDC 2014. Se trata de una reunión anual que concentra a desarrolladores Xojo procedentes de todo el mundo y donde Geoff Perlman, fundador de la compañía, anunció y mostró los avances realizados en las capacidades dedesarrollo de aplicaciones para iOS, con una versión alfa disponible para primeros del próximo mes de mayo.
Esto significa que en poco tiempo también podrás crear de forma rápida y sencilla aplicaciones nativas para una de las plataformas que, actualmente, están generando un mayor retorno económico a sus desarrolladores (sin entrar a discutir qué plataforma tiene mayor número de unidades en comparación con otras).
Pero antes de continuar viendo algunas de las principales características de Xojo, es conveniente ponerse en situación sobre algunos aspectos. El primero de ellos es que el entorno de desarrollo Xojo lleva en el mercado ya la friolera de 18 años y que actualmente es usado por más de 250.000 personas (muchas de ellas en compañías como GoogleApple, la NASAHPIntel o Adobe).
De hecho, quizá es probable que ya conozcas este entorno de desarrollo en cualquiera de sus anteriores encarnaciones, cuando se llamaba originalmente Real Basic o posteriormente como REALStudio, hasta llegar a su nombre actual. (De hecho el cambio de nombre fue motivado en gran parte porque “basic” no le hacía justicia en absoluto a las capacidades reales del producto.)
Editor Xojo

Cuestión de precio: úsalo gratis


Lo importante, no obstante, no es tanto el nombre del producto como lo que nos proporciona y permite llevar a cabo; y quizá en este sentido una de las políticas más interesantes con las que se acompañó el cambio del nombre del producto fue también el de las licencias del producto, dado que actualmente es posible descargar y utilizar el entorno de desarrollo de forma totalmente gratuita por un periodo de tiempo ilimitado. Dicho de otro modo, no es necesario pagar por Xojo hasta el momento en el que deseemos compilar y desplegar nuestras aplicaciones como productos independientes.
Precisamente el aspecto del despliegue es otro punto que considero particularmente interesante en comparación con otras opciones de desarrollo multiplataforma. El primero es que las aplicaciones desarrolladas con Xojo son en todo momento productos compilados nativos, lo que significa que no se requiere de ningún runtime o compilador JIT que engorde el ejecutable o que cree posibles incompatibilidades en función de cuáles sean las librerías instaladas en el equipo del usuario final.
Adicionalmente, el hecho de que se trate de código compilado dificulta un poco más que otros puedan urgar en nuestras aplicaciones, haciendo así que sean un poco más seguras en comparación con otros lenguajes, además de proporcionar un rendimiento mayor en comparación.
Interfaces: arrastrar y soltar
Pero el hecho de que las aplicaciones sean multiplataforma también queda plasmado en los elementos gráficos utilizados en el diseño de las interfaces de usuario, dado que una misma aplicación desplegada por ejemplo para WindowsOS X y Linux, se verá en cada uno de los sistemas operativos tal y como harían de haberse empleado en su desarrollo las herramientas de desarrollo “bendecidas” por los correspondientes fabricantes.
De hecho, el IDE de Xojo incluye (tal y como también ocurre en otros entornos de desarrollo) su propio Editor de Interfaces, donde la composición de los “formularios” o ventanas y otros elementos que atañen a la creación de la interfaz de usuario de nuestras aplicaciones queda reducido a acciones tan sencillas como arrastrar y soltar cada uno de los componentes disponibles sobre el objeto de destino; ayudándonos en todo momento de unas guías de alineación y del panel Inspector a través del cual es posible modificar los principales atributos de elementos como las etiquetas, campos de texto, listado, botones, selectores, reproductor de medios, etc.
librerias Xojo
Por supuesto, también es posible crear nuestros propios elementos gráficos desde cero y dotarle no sólo del aspecto visual que han de tener sino del comportamiento en respuesta a las diferentes acciones o eventos lanzados por el usuario.
El segundo punto a favor de Xojo en cuanto al despliegue es un tanto más prosaico, puesto que se trata del precio de las licencias y que resulta a todas luces más económico en comparación con otras alternativas (Xamarin es la primera que me viene a la cabeza).
Por ejemplo, el precio de la licencia de Xojo que permite crear aplicaciones con despliegue multiplataforma es de 250 euros, mientras que en el caso de Xamarin este sería aproximadamente el precio que deberíamos de pagar para desplegar sólo en una de las plataformas soportadas.
No obstante, también es cierto que en la licencia Desktop de Xojo no encontraremos muchas de las ventajas que sí nos proporciona la licencia Xojo Pro, especialmente si somos desarrolladores profesionales. En esta última se suman a las capacidades de la licencia Desktop las proporcionadas por el resto de licencias que podemos acumular independientemente: uso de motores de bases de datos más alla de SQLite (proporcionado de serie en las licencias más económicas), y cuyas clases nos proporcionan acceso nativo a bases de datos MySQLPostgreSQlOracleMicrosoft Server o bien a las disponibles mediante ODBC.
depurador
Además, Xojo Pro también permite crear aplicaciones de consola (por ejemplo demonios), aplicaciones web que se despliegan sobre servidores estándar, preferiblemente dedicados, o bien mediante el nuevo servicio Xojo Cloud, y la más que interesante capacidad de realizar depuración remota. Esto significa que, por ejemplo, puedas estar desarrollando una app con despliegue para OS X sobre el IDE que se está ejecutando en un ordenador Windows y depurarla en tiempo real sobre un equipo físico Mac que se encuentre en tu red local. Sin duda, esto evita mucho tiempo y también dolores de cabeza (por propia experiencia).

Cuestión de lenguaje


Todo lo anterior está muy bien pero, ¿qué hay de lo que verdaderamente importa? En este sentido, si has tenido la oportunidad de utilizar el emblemático VisualBasic u otros lenguajes como el propioJavaScript no tardarás mucho en sentirte como pez en el agua cuando utilices Xojo, e incluso es bastante probable que tengas tu primera aplicación lista a las pocas horas de comenzar a jugar con el entorno (en este sentido, la completa cantidad de ejemplos y la documentación proporcionada son una verdadera bendición para quien empieza de cero).
Por otra parte, quienes quieran portar sus antiguas aplicaciones desarrolladas con VisualBasic también podrá valerse de la utilidad gratuita Asistente de Migración VB disponible para hacer el porte (en la medida de lo posible) como proyecto Xojo.
Además se trata de un lenguaje moderno y orientado a objetos, con una especie de herencia múltiple a través del uso de interfaces (declaración de métodos de implementación obligatoria), unit testing, gestión de excepciones, capacidades de introspección en tiempo de ejecución, etc.; si bien el compilador no exige la adhesión de las mejores prácticas en nuestra programación… lo que significa que si buscamos hacer un prototipado rápido de una aplicación, Xojo tendrá mucha cintura (lo que finalmente puede ser muy peligroso cuando, pasado el punto del prototipado queremos continuar utilizando el mismo código para convertirlo en producto final, pero esa es otra cuestión.)
En cuanto al framework de Xojo propiamente dicho, proporciona un más que completo conjunto de clases que pueden cubrir perfectamente el 90% del tipo de aplicaciones desde la óptica de un desarrollo con vistas al despliegue multiplataforma; además de que también encontraremos otra serie de clases de uso específico para cada una de las principales plataformas soportadas: OS X, Window y la Web, con las distribuciones Linux quizá en peor posición en este sentido.
Algunas de estas clases convierten en coser y cantar la elaboración de aplicaciones en principio complejas: uso de sockets (seguros o no), aplicaciones de red, front-ends de bases de datos,cifrado de datos, correo electrónico, acceso y visualización de páginas web, consumo de diferentes tipos de servicios web basados en estándares, aplicaciones multi-hilo, control de dispositivos serie (USB), expresiones regulares y un largo etcétera.
Más allá del propio Framework, Xojo también incorpora en el lenguaje las herramientas necesarias para utilizar las librerías nativas de cada uno de los sistemas operativo soportados, o bien las proporcionados por terceros como parte de sus SDK de producto. Esto, en sí mismo, abre enormemente los campos de aplicación para las aplicaciones diseñadas con este entorno de programación.
Por último, una tercera vía para ampliar las capacidades del lenguaje consiste en la creación de nuestros propios plug-in o complementos, utilizando para ellos el SDK proporcionado por la compañía y para lo cual deberemos de emplear otros lenguajes como el C o C++ y los IDE estándar como puedan ser Xcode en el caso de OS X y VisualStudio si usamos Windows.
De hecho, actualmente es posible encontrar y utilizar una rica colección de plug-ins, ya sean comerciales o gratuitos, desarrollados por terceros. (Yo mismo he publicado un plug-in comercial con una aceptación bastante buena entre la comunidad de desarrolladores Real Studio, he de confesar, lo que significa que, como desarrollador profesional, también puedes tener en la comunidad de programadores Xojo una buena plataforma de consumo para tus productos.)

¿Listo para el viaje?


Si aun no lo has hecho, quizá deberías de pasarte por la web de Xojo y descargar el IDE para echar un vistazo por ti mismo (los proyectos de ejemplo son un excelente punto de partida) e incluso comenzar a jugar con él. También puedes ver el canal de Xojo en YouTube para ver en la práctica como se utilizan algunas de sus principales características. En la próxima entrega ya comenzaremos a ver y hacer cosas prácticas con él.

Comentarios

Entradas populares de este blog

Instalar Ruby on Rails en Ubuntu 13.04

Instalar Ruby on Rails en Ubuntu 13.04

¿Cómo ver sqlite3 en interfaz gráfica rápidamente?