11.7k 0

Programar con Xojo desde cero: Módulos y extensiones de clase

Continuamos con el Curso de Programación con Xojo… y dado que, como ya sabes, se trata de un entorno de desarrollo multiplataforma, nada mejor que continuar el desarrollo de nuestro proyecto de ejemplo (Gastos Personales) en esta ocasión… ¡bajo Linux!

Exacto, los proyectos creados con Xojo pueden abrirse desde el IDE desde cualquiera de las plataformas soportadas: macOS, Windows y Linux.

Incluso podríamos estar desarrollando la aplicación en el IDE desde macOS y ejecutarla en modo de depuración en un equipo remoto de nuestra red local con otro sistema operativo: Windows y Linux. No está nada mal, ¿verdad?

Pero volviendo a lo que nos ocupa, en esta ocasión ampliaremos la aplicación de forma que el listado general nos muestre en una columna adicional el total acumulado por cada una de las categorías.

Como recordarás, cuando implementamos el listado jerárquico en el anterior capítulo vimos como los gastos quedaban agrupados por su categoría, de forma que podíamos desplegar cada una de ellas para ver todos los registros (entradas de gastos), así como el importe asociado con cada una de ellas.

Sin embargo, sería genial poder ver cuál es el gasto acumulado de la categoría sin tener que desplegar y sumar nosotros mismos cada uno de los gastos. Y esto es lo que puedes ver en el vídeo que acompaña a este nuevo capítulo.

Las cuestiones importantes en este caso es que, para hacerlo, nos ayudaremos de dos nuevos elementos proporcionados por el lenguaje de desarrollo Xojo. Uno de ellos son los Módulos, y el segundo las Extensiones de clase.

https://youtu.be/me6sr9hdjm4

Módulos en Xojo

Puedes pensar en los Módulos como una herramienta proporcionada por el lenguaje de programación Xojo que nos permite crear nuestra propia propia “librería” de funciones (métodos), propiedades, clases, otros módulos y, en definitiva, cualquiera de los elementos soportados por el lenguaje.

Esto es importante porque la creación de estas librerías o Módulos nos aportan una tremenda flexibilidad.

Por ejemplo, por un lado podemos indicar que todos los elementos añadidos al módulo tengan un ámbito Global, lo que significa que podremos utilizarlos (invocarlos, en el caso de los métodos; o acceder a ellos, si se trata de propiedades), desde cualquier otra parte de la aplicación.

También implica que una librería bien creada nos permitirá utilizarla una y otra vez en cualquiera de las aplicaciones que desarrollemos sin que sea necesario, por tanto, volver a reescribir el mismo código una y otra vez.

Es decir, una vez que hayas añadido la funcionalidad esperada en la librería, ya simplemente bastará con incorporar el módulo a cualquier otra app que quieras crear… y utilizar dicha funcionalidad.

Si quieres ampliar más la información sobre qué son los módulos y cómo puedes utilizarlos, te recomiendo que eches un vistazo a esta sección de la documentación en línea

Extensiones de Clase en Xojo

La segunda cuestión son las Extensiones de Clase. Bien, te explico. A veces ocurre que encontraríamos interesante añadir funcionalidad a una clase ya existente.

El problema es que quizá no seamos los desarrolladores originales de la clase en cuestión, lo que significa que no tenemos acceso al código fuente de forma que podamos modificar o “ampliar” su funcionalidad; tal y como ocurre, por ejemplo, con las clases que ya encuentras disponibles en el propio Framework de Xojo, sin ir más lejos.

¿Cómo podemos hacer entonces en estos casos? Bien, la respuesta se encuentra en el uso de la palabra clave “Extends” al inicio de la definición de un nuevo método (por ejemplo en un Módulo).

De esta forma indicamos al compilador de Xojo que dicho método “extenderá” o “ampliará” la capacidad del tipo de dato que indiquemos a continuación como el primer parámetro.

Una vez creado, ya podremos pasar a utilizar dicho método mediante la notación por punto como si se tratase de un método añadido originalmente a la clase en cuestión.

Esto es algo que verás con mucha más claridad en el vídeo que acompaña a este capítulo del curso; entre otras cosas porque esta es la técnica que utilizamos precisamente para calcular el total acumulado de todas las entradas de gastos bajo una misma categoría: añadimos un nuevo método en un módulo con “Extends” que recibe como primer parámetro un array de tipo de datos Expense (recuerda que esta es la clase que habíamos creado para añadir nuevas entradas de gastos).

Luego, el código del método sólo necesita iterar cada uno de los elementos del array e ir sumando los diferentes importes, devolviendo como resultado de la llamada el valor total.

Como de costumbre, puedes aprender más sobre la palabra clave “Extends” en la documentación en línea de Xojo.

Prueba a crear tu propio proyecto de ejemplo, añadiendo un módulo y uno o varios métodos que amplíen las capacidades de varias clases ya existentes mediante la creación de nuevos métodos en el módulo.

— 

Javier Rodríguez
Xojo Engineer
Twitter: @xojoes
Facebook: http://facebook.com/xojoes/
Descarga la última versión desde www.xojo.com
Recursos Xojo en Español: https://docs.xojo.com/spanish
Alf

Propietario de www.faq-mac.com.

Deja una respuesta