Delphi RIO y FMXLinux

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.

Presentación RAD Studio XE8 Ciudad de México

Hola amigos,

Como ya es costumbre desde el año 2007, hemos asistido a la presentación de la nueva versión de RAD Studio en ésta ocasión la versión XE8 y con una asistencia mas que aceptable.

asistencia

Una presentación diferente, donde se nos comunica que desde ahora hay tres distribuidores de Embarcadero en México, dos para las herramientas de desarrollo repartidos en diferentes zonas del país.

Unisolutions para el Distrito Federal, Puebla, Monterrey y otros.

Gopac para Guadalajara, León, Chihuahua y otros.

Y uno para bases de datos

DAYSET Expertos en gestión y modelado de datos.

Así pues se dá inicio con la introducción del Gerente General de UNISOUTIONS-MEX, el Sr. Adrián Brcic, agradeciendo a la audiencia y a embarcadero.

Por supuesto el cafecito no iba a faltar en tal evento 🙂elcafe

La presentación estuvo a cargo de Fernando Rizzato quien nos mostró las novedades de XE8, principalmente:

IoT (Internet de las Cosas) Su impacto y un análisis de los tipos de sistemas interconectados en las soluciones de IoT y el pronostico para 2015.

IoT

El motor físico Box2D que es una biblioteca libre para simular cuerpos rígidos en dos dimensiones.

Box2D
Beacon (Proximidad e identificación) la tecnología que se dice revolucionará el marketing.

beacon

Finalmente nos habló de un nuevo servicio de Embarcadero que se llama AppAnalytics el cual permite el seguimiento de eventos usuarios anónimos en sus aplicaciones, es decir, AppAnalytics proporciona a los desarrolladores una visión clara de cómo los usuarios finales interactúan con aplicaciones del lado cliente.

AppAnalytics

Se tuvo un receso de 15 minutos y al regresar nos hablaron de un caso de éxito de la compañia Unisolutions, una suite de soluciones integradas llamada UNIGIS (Soluciones Geográficas Inteligentes) la cual contiene UNIGISRouting, UNIGISTracking, UNIGISMarketing, UNIGISMobile, UNIGISMapServer, UNIGISMAPI, UNIGISCartografía Digital, la cual está desarrollada con C++ Builder.

Al final de la presentación se realizó la rifa de un flamante RAD Studio XE8 Profesional «cero kilometros» y como es costumbre NO fui el afortunado ganador :(.

Y para dar por terminada ésta narración, los dejo con una panorámica del evento.

panoramica
gone

Hasta la próxima amigos

Lo nuevo de FireMonkey en XE7 (TMultiView)

Hola

El día de hoy vamos a revisar un componente muy interesante llamado MultiView. Éste componente permite la implementación de interfaces gráficas maestro-detalle, es decir, el panel principal (master) contendrá los controles de la aplicación y el panel detalle (detail) muestra la información basada en los controles del panel maestro.

La siguiente pantalla muestra un ejemplo de interfaz maestro-detalle. En el panel principal (izquierda), se introduce una posición geográfica y en el panel de detalles (derecha) podrá ver el mapa Google apropiado.

703px-TMultiViewSample

Siguiendo el tutorial que se encuentra en la docwiki de embarcadero pude desarrollar la app para Android, que bien pudo haber sido para iOS o para Windows, o porque no, hacer una aplicación para todas y cada una de las plataformas, como lo hice con la serie de RAD Studio XE4.

Me parece un componente muy interesante y muy sencillo de utilizar, el panel de controles se oculta automáticamente y se muestra deslizando el borde de la pantalla, algo como se muestra en la siguiente imagen:

800px-TMultiView_Drawer

Así quedó mi diseño siguiendo el ya mencionado tutorial:

Los invito a poner en marcha su imaginación y desarrollen alguna aplicación con éste componente, les aseguro que quedarán gratamente sorprendidos,

Nos leemos.

Descargas


Si lo deseas puedes descargar el código fuente de ésta entrada, espero sea de utilidad.


Ésta entrada y el código fuente son libres para su uso y publicación, lo único que te pido, si te parece justo, es mencionar la fuente de donde se obtuvo.

Lo nuevo de FireMonkey en XE7

Hola amigos

Vamos a ver en varias entradas los cambios que se han hecho con el lanzamiento de RAD Studio XE7 pero específicamente los cambios hechos a FireMonkey.

En XE6 se tenía que elegir entre tres tipos de aplicaciones FireMonkey, aplicaciones de escritorio, Aplicaciones Metrópolis y aplicaciones móviles como lo podemos observar en el IDE de XE6.

En RAD Studio XE7 se ha creado una sóla opción donde se puede elegir tanto aplicaciones de escritorio como aplicaciones móviles, de hecho permite la creación de todas las plataformas soportadas, a ésta nueva forma de crear aplicaciones se le ha llamado «Multi-Device Aplication»  y otra donde podemos crear aplicaciones Metrópolis.

Ésta característica Multi-Device está soportada en dos de las tres grandes bibliotecas de RAD StudioFireMonkey y la RTL, la VCL no está soportada en ésta característica.

Personalmente me ha gustado mucho la nueva forma de acceder a las aplicaciones FireMonkey con la Multi-Device com lo podemos ver en las siguientes imágenes.

Como podemos ver, contamos con las 4 grandes plataformas Windows, OSX, iOS y Android y dentro de ellas podemos destacar la gran variedad de dispositivos incluyendo Google Glass.

Lo dicho, me gusta mucho ésta nueva versión de RAD Studio que cuenta con muchas mejoras y muchas cosas nuevas que iremos viendo poco a poco.

Nos leemos 🙂


Ésta entrada y cualquier código fuente publicado en ésta bitácora, son libres para su uso y publicación, lo único que te pido, si te parece justo, es mencionar la fuente de donde se obtuvo.

Primer «vistazo» a RAD Studio XE6

 

RAD_icons2

Ayer 17 de Abril, ya he instalado RAD Studio XE6 y quiero mostrarles mi primer contacto con ésta versión «cero kilometros».

Cabe mencionar que contiene muchos componentes por demás interesantes y requerirá de estudiarlos.

Pues bien, mi primer impresión es que ha tenido cambios a nivel visual, incluyendo desde el instalador del producto hasta el menú del mismo, el cual ya no es el mismo en 3D que estabamos acostumbrados a utilizar, ahora tiene un estilo METROPOLIS, que en lo personal me agrada, no tengo problema por eso, algunos dirían que es igual que Visual Studio, pero bueno, al final el estilo RETRO pareciera que llegó para quedarse.

RADXE6_1

RADXE6

También, incluye muchas funcionalidades y características de actualidad, como lo es la forma Google Glass, aunque poco a poco iremos descubriendo más características, como primer vistazo, no he visto todo por supuesto.

googleGlass

Y bueno, antes de pensar en hacer algo y ver que hace RAD Studio XE6, he tomado uno de sus ejemplos para compilarlo y ejecutarlo en mi teléfono Android. Cabe mencionar que sólo abrí el proyecto SQLite del directorio de ejemplos, el cual permite crear tareas y las almacena en una base de datos SQLite llamada «tasks.s3db», pues bien, ejecuté el proyecto y el resultado fué el siguiente:

tasks

Hasta aquí mi primer contacto con RAD Studio XE6, aunque hay muchas cosas realmente buenas, estoy particularmente interesado en utilizar y aprender Tethering. Ya veremos en las próximas semanas que haremos con todo ésto, son demasiadas cosas por explorar pero poco el tiempo disponible.

Nos leemos.

«Happy Coding»