Delphi RIO y FMXLinux

julio 11, 2019 Por EliseoGN

Hola amigos, en esta ocasión toca hablar del nuevo y esperado Delphi para Linux Desktop y que le han llamado FMXLinux . Comenzaremos por dar su definición y los pasos a seguir para la configuración del ambiente de desarrollo, terminando con la ejecución de un ejemplo simple, si lo adivinaron…. el típico «Hola Mundo». 🙂

Ésta implementación Linux para Firemonkey es un complemento adicional que se instala en las ediciones Enterprise y Architect de Delphi y RAD Studio. Está disponible para clientes Delphi y RAD Studio Enterprise que cuentan con la Suscripción de actualización y la podrán descargar a través del GetIt Package Manager.

FireMonkey_for_Linux

Características principales de FMXLinux

– Permite crear aplicaciones GUI para Linux, extendiendo el framework de plataforma cruzada FireMonkey de Delphi.

FMXLinux expande el soporte de Delphi a las distribuciones populares de Linux.

– Incluye varios estilos de interfaz de usuario listos para usar.

– Muchos de los componentes de FMX, como grids, widgets, etc. funcionan perfectamente en clientes Linux.

– Tiene soporte de WebKitGTK para ejecutar una aplicación FMXLinux como una aplicación web HTML5 en el navegador.

Pre-Requisitos

Antes de instalar FMXLinux, es necesario tener instalado el soporte de la plataforma Linux para Delphi. Podemos verificar si tenemos instalado Delphi Linux 64-Bits desde el menú Tools > Manage Platforms como se muestra en la siguiente imagen:

Una vez que nos aseguramos que tenemos instalada la plataforma Linux, ya podemos descargar e instalar el complemento FMXLinux, para ello vamos al menú Tools > GetIt Package Manager, buscamos por «fmxlinux» y nos mostrará dos descargas, el complemento y ejemplos.

Instalamos el complemento y si lo deseamos descargamos los ejemplos para probar el funcionamiento, Al final del proceso se reiniciará el IDE.

Por supuesto necesitamos una maquina linux para poder correr nuestros programas; en mi caso instalé Ubuntu Desktop 16.04.6

Se preguntarán porque una versión antigua… Bueno, les diré que antes de instalar ésta versión de Ubuntu, instalé dos versiones mas actuales.

– Ubuntu 18.04.2 LTS
– Ubuntu 19.04

Sin embargo, no pude configurar el SDK de ubuntu para que funcionara con éstas versiones de Ubuntu Desktop, al final tuve que instalar la versión que mencioné y el SDK se instaló sin problemas, debido a mi desconocimiento de Linux perdí 3 noches intentando instakar el SDK sin éxito hasta que en un último intento funcionó con Ubuntu 16.04.6.

PD: Recien me he enterado que mi buen amigo Germán Estévez (Neftalí) tiene instalada la versión 18.04 y funciona correctamente.

Lo dicho, tengo que estudiar Linux 🙂

Instalar Linux SDK

Para instalar el SDK de Linux se requiere de instalar un repositorio, abrimos una terminal y escribiremos las siguientes instrucciones:

sudo add-apt-repository ppa:ubuntu-sdk-team/ppa

sudo apt install ubuntu-sdk

Instalar «Platform Assistant» ( PAServer ) en Linux

Necesitamos instalar «Platform Assistant» en Linux para construir e implementar aplicaciones de Linux. PAServer le permite usar el Administrador de implementación, importar el SDK de Linux y realizar una depuración remota en un sistema Linux, tal y como se hace con Android, iOS, OSX, etc.

Para instalar PAServer en Linux siga estos pasos:

– Copie el archivo LinuxPAServer20.0.tar.gz a un directorio local de la máquina Linux.

– Abra una Terminal.

– Vaya al directorio donde se localiza el archivo LinuxPAServer20.0.tar.gz.

– Descompacte el archivo LinuxPAServer20.0.tar.gz con el siguiente comando tar –xvf LinuxPAServer20.0.tar.gz.

– Se creará el subdirectorio PAServer-20.0. Y aquí encontrará los binarios de la «Platform Assistant».

Instalar dependencias en Linux

Para usar características gráficas en su aplicación de servidor, es necesario instalar algunas dependencias. No se requiere instalar todo el sistema X11 en la maquina. Para instalar dependencias en Ubuntu/Debian, abra una Terminal y escriba lo siguiente:

sudo apt install libgl1-mesa-glx libglu1-mesa libgtk-3-common libgstreamer1.0 libgstreamer-plugins-base1.0

Configuración de FMXLinux

Al instalar FMXLinux a través de GetIt, el sistema registra un «DLL Expert» que agrega el menú contextual la opción «Agregar plataforma Linux» que se indica a continuación y también agrega la carpeta de la biblioteca del repositorio de catálogo a la Ruta de la biblioteca para la plataforma Linux. Puede verificar esto en Tools > Options > Language > Delphi Options > Library y elegir Linux de 64 bits.

Crear un perfil de conexión

Para crear el perfil de la conexión es necesario que PAServer esté en ejecución en la máquina Linux, para ello abra una terminal y entre al directorio donde se ha descompactado el archivo LinuxPAServer20.0.tar.gz y ejecute el comando ./paserver como se muestra en la imagen siguiente:

A continuación entramos a Delphi RIO en el menú Tools > Deployment > Connection Profile Manager y presionamos el botón [Add], agregamos la plataforma, la máquina Host, el puerto y la contraseña (si ha solicitado una), una vez que hemos llenado las propiedades de la conexión, probamos que se conecte correctamente presionando el botón [Test Connection] y si todo sale bien presionamos el botón [Save] y salimos.

Ya estamos listos para construir nuestra primer aplicación Linux. Abrimos (File > Open) o creamos un nuevo proyecto Firemonkey (File > New > Multi-Device Application) .

A continuación presionamos el botón derecho del mouse sobre el Proyecto y seleccionamos Add Linux platform.

Seleccionamos la plataforma Linux de 64 bits (en mi caso Ubuntu 16.04.6 LTS -fmxLinux profile) e implementar muestras aplicaciones GUI en Linux. Hay que asegurarnos que PAServer se está ejecutando en la máquina Linux de destino.

Atención: Al crear una aplicación FMXLinux, puede aparecer un mensaje de error que dice que System.Devices no es compatible con esta plataforma.

Error message.png

Esto sucede porque las rutas de la biblioteca no están configuradas correctamente y, en lugar de compilarse con el archivo DCU adecuado, el compilador busca la versión original del archivo de código fuente, que no es compatible.

Delphi Linux soporta RedHat Enterprise y las distribuciones Ubuntu que se muestran en la siguiente imagen:

Y bien, ya que hemos terminado de configurar nuestro ambiente Linux Desktop.

Agregamos un botón a la forma de nuestro proyecto y el código respectivo para mostrar el ya famosísimo «Hola Mundo».

Compilamos y ejecutamos y como se esperaba ya podemos ver nuestra aplicación Delphi corriendo en Linux.

Así de fácil y rápido.

Como pueden ver, el funcionamiento es el mismo que ya conocemos para crear aplicaciones multiplataforma así que no tendrán problema para desarrollar aplicaciones Linux.

Además ya existe mucho material en la nube acerca de éste complemento FMXLinux.

FMXLinux
Running the Platform Assistant on Linux
Supported Target Platforms
Preguntas frecuentes FMXLinux

Solo me resta invitarlos a experimentar y desarrollar aplicaciones multiplataforma con nuestra herramienta de desarrollo consentida Delphi.

Nos leemos en la próxima.