Tipos de Proyecto en Xojo

Como ya sabes, Xojo es un lenguajde de programación orientado a objetos… ¡y también un completo y potente IDE! Además, es dicho IDE el que te permitirá crear, en función de tu licencia, diferentes tipos de proyectos; desde los Desktop para macOS, Windows y/o Linux, a los que desplegarás como aplicaciones Web o bien como aplicaciones iOS o de Consola. Ahora bien, ¿cuáles son los formatos de archivo soportados y también el resto de los detalles que componen un proyecto? A continuación encontrarás toda la información para conocerlo al detalle, y que es la traducción al castellano de la documentación original disponible en el área de desarrolladores del sitio web de Xojo.

Un proyecto Xojo es un documento que contiene todos los elementos que componen la aplicación. Puedes mantener abiertos varios proyectos al mismo tiempo, así como tener varias ventanas abiertas por proyecto. Cuando eliges la opción para crear un nuevo proyecto tendrás a tu disposición los siguientes tipos: Desktop, Web, Consola o iOS.

  • Los proyectos Desktop te permiten crear apps con una interfaz de usuario gráfica que funcionen en los sistemas operativos de escritorio Windows, Mac y Linux.
  • Los proyectos Web te permiten crear aplicaciones que funcionen en la Web. Los usuarios podrán interactuar con dichas aplicaciones a través de un navegador web.
  • Los proyectos de consola se utilizan para crear aplicaciones basadas en texto que funcionan desde la línea de comandos, desde el terminal o bien como una aplicación en segundo plano (servicio o demonio). Se soporta el despliegue bajo Windows, Mac y Linux.
  • Los proyectos iOS se utilizan para crear appa que funcionan sobre dispositivos iOS, como puedan ser los iPhone y iPad.

Si cargas un proyecto en una versión de Xojo que sea diferente a la versión utilizada para crearlo, obtendrás un diálogo. Cuando los proyectos se editaron por última vez en una versión más antigua de Xojo, se mostrará una advertencia. Si el proyecto se editó por última vez en una versión más reciente de Xojo que la versión que se esté utilizando en ese momento, entonces aparecerá un diálogo crítico, dado que puede que se utilicen valores y propieades que son específicos para la nueva versión de Xojo.

Formatos de Proyecto

Puedes guardar tus proyectos en varios formatos, como por ejemplo el formato de archivo único binario (xojo_binary_project), en formato XML (xojo_xml_project) y formato de texto (xojo_project) en el que se utilizan diferentes archivos para cada uno de los elementos que componen el proyecto.

Xojo puede abrir y guardar los proyectos que estén en formato de archivo correspondiente a Real Studio.

Puedes cambiar el formato utilizado por Xojo por omisión en las Preferencias del IDE.

Se requiere de una licencia para utilizar los formatos de proyecto XML o Texto.

Binario (xojo_binary_project)

Este es el formato de archivo binario. Tu proyecto se almacena en un único archivo que es fácil de distribuir (exceptuando los elementos externos, como puedan ser las imágenes).

Este es el único formato de archivo que puede utilizarse con la licencia Xojo Lite o cuando no se tiene ninguna licencia.

XML (xojo_xml_project)

El formato de archivo XML es simplemente una representación XML del archivo en formato binario. También se utiliza un único archivo, si bien está en formato XML. El hechjo de que esté en XML significa que puede tener un archivo mayor en comparación con el formato Binario, pero a su favor también significa que puede examinarse utilizando cualquier editor de texto.

Se requiere de una licencia Xojo para utilizar el formato de proyecto XML.

Texto (xojo_project)

El formato de archivo Texto guardar el proyecto en múltiples archivos de texto, uno por cada elemento del proyecto. Por ello, has de asegurarte de guardar cada proyecto en formato Texto en su propia carpeta, y no guardar varios proyectos de texto en una misma carpeta.

El formato de archivo Texto es ideal para utilizarlo en combinación con los sistemas de versionado de código fuente, como puedan ser Subversion o bien Git, dado que puedes ver exáctamente qué archivos han cambiado y hacer un seguimiento histórico de los cambios producidos en cada uno de los archivos.

En el pasado el formato de proyecto de Texto también se denominaba como formato Version Control Project (o VCP).

Se requiere de una licencia Xojo para utilizar en combinación con el formato de proyecto Texto.

Este formato utiliza las siguientes extensiones para identificar cada uno de los elementos del proyecto:

  • xojo_code. Contine elementos de código fuente como puedan ser los módulos, clases, páginas web, vistas iOS y cualquier otro elemento no enumerado a continuación.
  • xojo_window. Contiene las ventanas y los controles container para los proyectos desktop.
  • xojo_menu. Contiene los menús para los proyectos desktop.
  • xojo_toolbar. Contiene las barras de herramientas para los proyectos de escritorio.
  • xojo_report. Contiene los diseños de formulario para los projectos de escritorio.
  • xojoresources. Contiene información binaria como iconos, elementos cifrados y otros datos binarios.
  • xojo_uistate. Contiene ajustes del IDE y del diseño de la UI como las posiciones y tamaños de las ventanas, las preferencias de advertencia, los dispositivos de depuración en iOS, la arquitectura de iOS, los marcadores y los puntos de parada.

Cuando se utiliza con los sistemas de control de versiones deberías añadir todos los archivos a tu repositorio excepto el archivo xojo_uistate (que seguramente querrás marcar como ignorado).

Cuando borras (o renombras) los archivos o carpetas de un formato de proyecto de texto, estos quedan en disco de modo que puedas gestionar manualmente los cambios usando tu software de control de versiones.

Elementos Externos

Determinados elementos de proyecto se almacenan siempre como elementos externos y no se incluyen en el archivo de proyecto. Estos son: las imágenes, películas, sonidos, archivos de texto y otros archivos añadidos al proyecto.

También es posible incluir ventanas, clases o módulos a un proyecto alacenados como archivos externos. Esta característica permite que más de un proyecto puedan compartir el mismo elemento de proyecto. Cuando modificas un elemento externo de proyecto y guardas a continuación tu proyecto, los cambios se escribirán sobre el archivo externo en disco. Cuando abras cualquiera de los otros proyectos que también hagan referencia al archivo compartido, dicho proyecto reflejará los cambios realizados.

Para convertir un elemento de proyecto en un elemento externo, selecciónalo en el Navegador y haz clic derecho (Control + clic en Mac) para acceder al menú contextual asociado al elemento y elegir la opción Make External. Esta acción muestra el cuadro de diálogo Save File. Navega hasta el directorio en el que quieras guardar el elemento, asígnale un nombre y haz clic en Save. Cuando hayas guardado el archivo, este se mostrará en el Navegador con una etiqueta de atajo y su nombre en cursiva.

Para añadir un elemento al proyecto como elemento externo, mantén pulsada la tecla Alt (Opción + Comando en macOS) antes de hacer clic en el menú, selecciona el menú File y verás que la opción Import se convierte en Import External. Selecciona dicho comando y elige el elemento a importar.

También puedes añadir un elemento como externo arrastrando el archivo desde disco hacia el Navegador al tiempo que mantienes pulsada las teclas Comando + Opcion en macOS, o Shift + Ctrl (en Windows y Linux).

Cuando se importa un elemento como externo el icono se mostrará en el Navegador con el nombre en cursiva y una etiqueta de atajo en el icono.

Si un elemento externo de proyecto está configurado como sólo de lectura (Windows o Linux) o está bloqueado (macOS), no podrás modificar dicho elemento desde el proyecto, si bien podrás continuar viéndolo y usándolo. Esto supone una forma adecuada de proteger los elementos externos (que pueden ser compartidos entre múltiples proyectos) frente a cambios accidentales. Ten en cuenta que si se cambia un archivo externo en disco mediante cualquier otra aplicación distinta de Xojo —como pueda ser un sistema de control de versiones- tendrás que cerrar y volver a abrir el proyecto para que este refleje los cambios sobre dicho elemento.

Encriptar Elementos de Proyecto

Si quieres distribuir una copia de elementos de proyecto para que puedan usarlos otros desarrolladores, pero no quieres que estos puedan ver o editar el código, utiliza el comando Encrypt para proteger el elemento de proyecto antes de exportarlo. Un elemento cifrado aparece en el Navegador con un icono que contiene una pequeña llave en la parte inferior derecha del icono. No se puede ver o editar un elemento de proyecto cifrado cuando se selecciona en el Navegador.

Puedes cifrar (proteger) o descifrar (desproteger) un elemento de proyecto cuando esté en tu proyecto utilizando el menú contextual Encrypt ElementoDeProyecto…. Un elemento de proyecto cifrado no puede abrirse y tampoco ofrece acceso a su código (o diseño) salvo que se conozca la contraseña necesaria para descifrarlo.

Cuando se cifra un elemento has de proporcionar la contraseña que se utilizará para descifrarlo posteriormente.

No olvides la contraseña, ya que no habrá ningún otro modo de descifrar el elemento.

Importar Elementos de Proyecto

Para importar un archivo que quieras utilizar en tu proyecto sólo has de arrastrarlo desde el escritorio y soltarlo en el Navegador. Si el archivo no está accesible desde el escritorio, selecciona la opción File > Import. Se abrirá un cuadro de diálogo que te permitirá navegar hasta la ubicación en disco en la que se encuentre el elemento que deseas importar.

En el caso del código, abre el método sobre el cual desees importar el código y arrastra el recorte de texto en el cuerpo del método. No puedes utilizar el comando File > Import para importar archivos de texto en el cuerpo de un método.

Para borrar un archivo importado al proyecto, selecciónalo en el Navegdor y pulsa la tecla Borrar del teclado o bien elige el comando Edit > Delete. También puedes borrar un archivo en el Navegador haciendo Control + clic sobre el elemento y eligiendo a continuación la opción Delete en el menú contextual.

Exportar Elementos de Proyecto

Puedes exportar elementos de proyecto a un archivo en formato XML, binario o de texto. Selecciona el elemento de proyecto y elige a continuación la opción de menú File > Export… Exportar elementos de proyecto puede ser de utilidad para compartir código con otros desarrolladores.

Siempre puedes copiar código al Portapapeles y pegarlo en el editor de texto o en una aplicación de tratamiento de textos.

En macOS puedes arrastrar como recortes de texto sobre el escritorio, o bien hacia un editor de texto, el código de los métodos, eventos, constantes, propiedades, etc.

Agrupar Elementos de Proyecto

Algunos elementos de proyecto pueden ser externos para los archivos de proyecto en curso. Estos pueden ser gráficos o elementos de proyecto que pueden compartirse entre múltiples proyectos. Con vistas a su distribución puede resultar de utilizar agrupar todos los elementos de proyecto alojados en varias ubicaciones para que estén junto con el proyecto guardado.

Los elementos externos permanecerán como elementos externos, pero ahora estarán agrupados (imágenes, datos, scripts, etc.).

Este proceso no cambia el nombre de los elementos en disco, de modo que los nombres de archivo duplicados aparecerán como errores.

Agrupar un proyecto no guarda el proyecto. Por lo general querrás hacer un Save As tras agrupar el proyecto.

Selecciona File > Collect Project Items para agrupar el proyecto en curso.

Plantillas

Si generalmente utilizas varios elementos en cada proyecto, puedes guardarlos en un archivo de proyecto y crear dicho archivo de proyecto como plantilla para que esté disponible en la creación de nuevos proyectos. La plantilla puede incluir ventanas personalizadas, clases, módulos y otros elementos de proyecto.

Cuando creas un nuevo proyecto basado en una plantilla, Xojo crea un nuevo proyecto sin título que es una copia exacta de la plantilla. El proyecto de plantilla propiamente dicho permanece sin cambios. Esto te permite crear un nuevo proyecto utilizando elementos de un proyecto ya existente sin preocuparte de que se vean modificados los elementos originales.

El modo más eficiente de utilizar una plantilla consiste en ponerla en un directorio especial en el mismo directorio de Xojo, denominado “Project Templates”. Si lo haces, tu lista de plantillas aparecerán en el Selector de Proyecto siempre que elijas la opción File > New Project.

Estas son las descripciones de las plantillas de proyecto que se incluyen por omisión. Aunque estas plantillas están incluidas de serie, pueden ser sobreescritas proporcionando nuevas plantillas que utilicen estos mismos nombres y situándolas en la carpeta Project Templates.

    • CGIApplication: Esta es una versión especializada de la plantilla Console Application, destinada a ser una aplicación web que se comunica con el servidor Apache. Su clase App deriva de la clase CGIApplication (en el proyecto) y que de hecho está basada en la clase ConsoleApplication. CGI (Common Gateway Interface) es como funciona una aplicación Web en combinación con Apache. Se incluye información adicional sobre CGIApplication en la sección “Notes” de la clase App en la plantilla de proyecto. El módulo HTTP incluye una clase personalizada que gestiona las peticiones HTTP. Contiene propiedades y métodos que utilizarás para crear la interface con Apache.
    • EmptyService: Esta es una plantilla de aplicación de servicio. Su clase App está basada en la clase ServiceApplication. También funciona en segundo plano sin interfaz de usuario. Puedes consultar la sección “Notes” de la clase ServiceApplication para obtener información adicional.
    • Event Driven Console: Esta también es una plantilla para una Aplicación de Consola. Su clase App también está basada en la clase ConsoleApplication e incluye una clase personaliza, MyApplication, que contiene métodos del shell y propiedades para la aplicación de Consola. Consula la sección de notas de la clase Console Application en la referencia del lenguaje para obtener información adicional sobre el funcionamiento de la aplicación de consola.

Cambiar los Proyectos por Defecto

Cuando creas un nuevo proyecto de escritorio, web o consola, se abrirá un proyecto simple con los elementos básicos que servirán como punto de partida.

Puedes crear tus propios archivos de proyecto para sustituir estos proyectos simples utilizados para las variantes de Escritorio, Web o Consola.

Para ello, crea proyectos (en formato Binario) y añade los elementos de proyecto que quieras incluir por omisión. Guárdalos con los siguientes nombres en la carpeta Project Templates

  • Default Desktop Project
  • Default Web Project
  • Default Console Project
  • Default iOS Project

Por ejemplo, si cras un Default Desktop Project que tenga dos ventanas y algunos módulos y clases estándar que siempre suelas utilizar en todos tus proyectos, estos estarán disponibles de inmediato cada vez que selecciones Desktop en el Selector de Proyectos.

Related Posts / Entradas Relacionadas

Javier Rodriguez

Consultor, desarrollador y formador con más de 25 años de experiencia. Reconocido experto en el mundo Apple, autor de varios libros sobre tecnología. Si tienes un proyecto o necesitas ayuda, ¡ponte en contacto conmigo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*