A dferencia de iOS, las apps desktop y las apps web, las apps de Consola no están basadas en eventos. Las apps de Consola no tienen interfaz de usuario gráfica y están diseñadas para funcionar desde el terminal, la línea de comandos o como proceso en segundo plano. Este artículo se ha traducido al castellano desde el original en inglés que puedes encontrar en este enlace.
Proyecto de Consola
Cuando creas un proyecto de consola, se proporcionan por omisión los siguientes elementos:
- App: El objeto App es donde se ha de incluir el código a ejecutar.
Objeto App
En un proyecto de consola el objeto App es una subclase de ConsoleApplication, pero también puedes cambiar el Super a ServiceApplication si lo que deseas es crear un Servicio de Windows.
Manejadores de Eventos
La clase Application de la app consola tienen estos manejadores de evento:
- Run: Se invoca este manejador de evento cuando se ejecuta la app por primera vez, ya sea ejecutando la app desde Xojo o bien una vez desplegada como ejecutable autónomo. Tu app sale cuando finaliza el evento Run o bien cuando se invoca el método Quit
- UnhandledException: Se ejecuta cuando tiene lugar un error en tiempo de ejecución que no esté gestionado por el código. Este evento te da una última oportunidad para atrapar y los errores en tiempo de ejecución antes de causar la finalización prematura de la app.
Aplicaciones en segundo plano
Es bastante frecuente que se creen apps de Consola para crear apps en segundo plano. Este tipo de aplicaciones se denominan daemons (o demonios) en macOS y Linux. En Windows, las aplicaciones en segundo plano se denominan servicios.
Demonios
Para convertir tu app de consola en un daemon que pueda funcionar en segundo plano sólo has de invocar el método Daemonize de la clase ConsoleApplication en el manejador de evento Run.
If Not Daemonize Then
Quit
End If
También puedes usar el método Daemonize en macOS pero Apple prefiere que utilices launchd para iniciar los procesos en segundo plano.
Aplicación de Servicio
Para crear una app de consola que funcione como Servicio Windows has de utilizar la clase ServiceApplication. Una vez que crees tu app de consola, cambia su propiedad Super de la App de ConsoleApplication a ServiceApplication. Alternativamente, puedes usar ServiceApplication en el apartado Templates en el Selector de Proyectos del IDE de Xojo.
Una app de servicio proporciona eventos adicionales que te permiten gestionar las cosas cuando se inicie el servicio, se detenga o se pause. Puedes consultar la documentación relativa a ServiceApplication para obtener información adicional sobre estos eventos.
Ajustes de Compilación
La sección de Ajustes de Compilación en el Navegador contiene los ajustes específicos de compilación para tus apps en general y también para cada una de las posibles plataformas de despliegue. Puedes marcar la casilla de verificación asociada con cada plataforma para que se compile el producto para dicha plataforma. Las posibles plataformas de despliegue para Consola son: Windows, macOS y Linux.
Ajustes Compartidos
El Inspector para los Ajustes Compartidos incluyen estas propiedades:
- Major Version: El número principal de versión para tu aplicación. Los números de versión se escriben generalmente como 1.2.3.4, donde “1” se corresponde con la versión principal.
- Minor Version: El número menor de versión para la aplicación. Los números de versión se escriben generalmente como 1.2.3.4, donde “2” se corresponde con la versión menor.
- Número de Bug: La versión de Bug de tu aplicación. Los números de versión se escriben generalmente como 1.2.3.4, donde “3” es la versión de bug.
- Código de Etapa o Estado: Utilizado para indicar el tipo de aplicación que estás compilando (Desarrollo, Alfa, Beta, Final).
- Versión de No Liberación: La versión de No Liberación (compilación) de tu aplicación. Los números de versión se escriben generalmente como 1.2.3.4, donde “4” se corresponde con la versión de no liberación.
- Auto Increment Version Info: Cuando se encuentra en
ON
, se incrementa en uno el valor de Non Release Version cada vez que se realiza una compilación. - Short Version: Una descripción breve de texto para tu aplicación. Generalmente contiene solo el número de versión (como por ejemplo 1.2.3.4) y es el mostrado por algunos sistemas operativos en las ventanas de Obtener Información o Propiedades para la aplicación seleccionada.
- Long Version: Una descripción larga de texto para tu aplicación. Por lo general contiene el nombre de la aplicación, copyright, versión y otra información adicional. Algunos sistemas operativos muestran esta información en las ventanas de Obtener Información y Propiedades para la aplicación seleccionada.
- Package Info: Una descripción de texto para tu aplicación y que se corresponde con la mostrada por algunos sistemas operatiovs en las ventanas de Obtener Información y Propiedades para la aplicación seleccionada.
- Use Builds Folder: Cuando se encuentra en
ON
, se crea una carpeta independiente junto con el archivo de proyecto. Cada plataforma (macOS, Windows, Linux) también crea una subcarpeta dentro de la carpeta de Compilación (Builds). - Include Function Names: Cuando está en
ON
, se incluyen los nombres reales en las llamadas a las funciones en la aplicación compilada. Esto es de utilidad con propósitos de depuración y también para obtener trazas de la pila. - Language: El idioma utilizado para resolver las constantes dinámicas.
- Optimization: Usado en las compilaciones de 64 bits y 32 bits ARM (las que emplean el compilador LLVM). Las opciones disponibles son Default (tiempos de compilación más rápidos), Moderate (equilibrio entre tiempos de compilación y tiempo de ejecución del código para operaciones matemáticas) y Aggressive (tiempos de compilación más largos pero con código más optimizado para las operaciones matemáticas)
- Argumentos de la línea de comandos: son los argumentos de la línea de comandos pasados a la aplicación cuando se ejecuta desde el IDE de Xojo.
- Destination: Indica la ruta en la que se ubica la aplicación en funcionamiento. Por lo general se ubica junto con el proyecto, si bien puedes indicar una ubicación diferente.
OS X
Esta sección incluye los ajustes empleados para la compilación de la app destinada a ejecutarse en macOS.
- Mac App Name: El nombre real del archivo de aplicación en macOS.
- File Types: No se aplica.
- Architecture: La arquitectura de CPU para la app. Las opciones disponibles son x86 32 bits y x86 64 bits.
- Bundle Identifier: El identificador de bundle se utiliza en macOS como un descriptor único para tu aplicación. Se indica por lo general como un nombre de denominio inverso, como por ejemplo
com.aprendexojo.com.miaplicacion
. Se precisa de un identificador de bundle para las apps macOS.
Windows
La sección de Windows contiene los ajustes de compilación para tus apps Windows.
- Windows App Name: El nombre real de archivo para la app que se ejecute cuando se despliega en Windows.
- Company Name: En Windows 7 y posterior, el “Nombre de Empresa” aparece en la sección Copyright de las propiedades de app en la pestaña Detalles.
- Product Name: El nombre del producto tal y como se instala en el menú Inicio Windows ↠ Todos los programas. Esta información también aparece en el “Nombre de Producto” en la pestalla Detalles de las propiedades de la app.
- Internal Name: Esta información es útil cuando el producto tiene un nombre interno que es diferente a su nombre externo. Este se muestra en la pestaña Detalles de las propiedades de la app.
- File Description: Por determinar
- Include Windows Runtime DLLs: Copia los DLL Universales de Runtime junto con el ejecutable de la app. Consulta la información correspondiente a Windows Universal Runtime para obtener más detalles.
- Architecture: La arquitectura de CPU para la app. Las opciones son x86 de 32 bits y x86 de 64 bits.
Linux
La sección Linux contiene los ajustes de compilación para tus aplicaciones Linux.
- Linux App Name: El nombre real del archivo para el ejecutable de la app bajo Linux.
- Architecture: La arquitectura de CPU de la app. Las opciones son ARM de 32 bits, x86 32 bits y x86 64 bits. Las apps ARM de 32 bits funcionan en Raspberry Pi y otros ordenadores similares de ordenador en placa.
This Computer (Este equipo)
Esta sección muestra los ajustes de despliegue apropiados (macOS, Windows o Linux) para el sistema operativo que se esté utilizando para ejecutar el IDE. Por ejemplo, si estás ejecutando Xojo en macOS, entonces la sección This Computer mostrará los ajustes de compilación correspondientes a macOS.
Despliegue
Las apps de Consola se despliegan instalándolas en un ordenador y ejecutándolas desde dicho ordenador.
Las apps de Consola tienen dos partes: el ejecutable principal y sus librerías (incluidas en la carpeta Libs). Se precisan ambas partes para que pueda funcionar la app.
También puedes comprimir como archivo Zip la aplicación de consola y su carpeta Lib para facilitar su distribución.
OS X
En macOS puedes iniciar una app de consola desde el Terminal. Navega hasta la carpeta que contenga la app y escribe su nombre en el indicativo del Terminal. Tendrás que incluir el prefijo “./” para que el Terminal encuentre la app en la carpeta actual:
./MyApp
Windows
En Windows puedes iniciar una app de consola mediante la herramienta Comando. Sólo has de escribir su nombre en el prompt de comandos:
MyApp
Linux
En Linux puedes iniciar una app de consola desde el Terminal Para ello has de navegar hasta la carpeta que contenga la app y escribir su nombre en el prompt del Terminal. Tendrás que incluir el prefijo “./” pra que el Terminal encuentre la app en la carpeta actual:
./MyApp