Xojo ha publicado la actualización 2019r2.1, y con ella llegan una serie de cambios importantes; principalmente la vuelta a los nombres de eventos tal y como los conocíamos hasta la publicación de Xojo 2019r2. Sigue leyendo para obtener más detalles sobre todo esto y como te afecta.
Empecemos poniendo las cosas en perspectiva. El pasado 9 de octubre se publicó Xojo 2019r2; una actualización de producto con una serie de cambios realmente importantes dado que introducía la nueva API 2.0 y, junto a esta, el cambio de nombre para muchos de los nombres de eventos que se venían utilizando hasta la fecha prácticamente desde los orígenes del entorno de desarrollo (por ejemplo, el nombre de Evento Open
pasaba a ser Opening
, y en vez del Evento Action
pasábamos a tener Pressed
).
La razón era, por un lado, aprovechar la introducción de la API 2.0 para unificar también los criterios en torno al nombre de eventos y también simplificar su significado haciendo que fuese más evidente cuando tendrían lugar mediante el uso de los tiempos verbales.
En este sentido, no hay duda de que Opening
, por ejemplo, indicaba con mayor claridad que el elemento aun no se había presentado al usuario (visible al usuario), mientras que con Open
no se indicaba con tanta claridad en qué momento estaba ocurriendo la acción.
El gran problema con el cambio de nombre de Eventos, sin embargo, residía en que los proveedores de componentes y plug-ins debían de revisar una ingente cantidad de código y, más impotante aún, proporcionar y mantener código en dos ramas diferentes para sus productos de modo que fuesen compatibles con versiones anteriores a Xojo 2019r2 y con las versiones posteriores a Xojo 2019r2. Esto es lo que ocurre, por ejemplo, con los componentes AXImageCanvas y AXNumValidatedTF.
Debido fundamentalmente a lo que supondría este gran esfuerzo, en Xojo 2019r2.1 se ha decidido volver al anterior esquema y recuperar el nombre de eventos que se venía utilizando anteriormente. Es decir, volvemos a contar con Open
, Action
, Close
, etc; frente a los introducidos en Xojo 2019r2: Opening
, Pressed
, Closing
, entre otros. En definitiva, facilitando así el trabajo para los proveedores de componentes y plug-ins, fundamentalmente.
¿Qué ocurre si ya habías convertido tus proyectos en Xojo 2019r2 de modo que los eventos reflejasen los nuevos cambios de nombre? No te preocupes, cuando los abras en Xojo 2019r2.1 el IDE se encargará de realizar automáticamente la conversión de nuevo al nombre de eventos que se venían utilizando con anterioridad. En principio, este proceso debería de ser absolutamente transparente.
Ahora bien, lo que se mantiene en todo momento es la API 2.0 y esto significa que tanto proveedores de componentes y plug-ins que quieran proporcionar sus productos migrados a las nuevas funcionalidades de la API 2.0 tendrán que continuar manteniendo dos ramas de producto “pre” y “post” Xojo 2019r2. Sin embargo, el hecho de que se mantengan los anteriores nombre de eventos, facilita el hecho de que cualquier desarrollador pueda utilizar por ejemplo dichos componentes migrados a API 2.0 con su propio código API 1.0, incluso creando subclases de los mismos sin que por ello dejen de funcionar.
También significa que los desarrolladores que utilicen componentes y plug-ins que no hayan migrado su código a la API 2.0 pueden continuar utilizándolos sin problemas tanto en sus proyectos pre Xojo 2019r2 como en los proyectos que quieran empezar desde cero ya sea con la API 1.0 o API 2.0; dado que el principal problema que se tenía hasta ahora para que esto fuera así venía dado únicamente por el cambio de nombre en los eventos.
Como consecuencia de todo lo anterior, Xojo ha retirado la opción de que se pueda volver a descargar Xojo 2019r2. Es decir, si en algún momento has visitado (o vas a visitar) la sección Archives en el sitio web de Xojo, donde es posible volver a descargar cualquiera de las ediciones publicadas por Xojo, comprobarás que desde Xojo 2019r1.1 se pasa a Xojo 2019r2.1. De modo que si por cualquier motivo quieres mantener Xojo 2019r2 entre tus ediciones, deberás de asegurarte de crear tu propia copia de seguridad (aunque probablemente no existan muchos motivos que lo justifique).
Lo que también verás en Xojo 2019r2.1 es una nueva característica dirigida a facilitar el código compatible exclusivamente con API 2.0 o API 1.0; se trata de una bandera de compatibilidad, especialmente de interés en el desarrollo de librerías, en los que se necesita contar con elementos específicos para API 1.0 o API 2.0. Se trata de una nueva casilla de verificación que puedes encontrar en el Panel Inspector, en la sección de la rueda dentada, tanto para las Clases, Métodos y en las Propiedades definidas en el proyecto.
Así, por ejemplo, puedes indicar que un método sólo esté disponible en Xojo 2019r2.1 o posterior marcando la casilla de verificación API 2 en dicha sección del panel; o bien indicar que esté sólo disponible cuando el proyecto se compile con Xojo 2019r1.1 o anterior.
Avisos por Elementos Deprecados
Esta revisión de producto también ha introducido otro cambio que viene para resolver otra de las demandas más solicitadas por los desarrolladores tras la aparición de Xojo 2019r2 y la consiguiente llegada de la API 2.0. Anteriormente, los usuarios se encontraban por omisión con un ingente listado de elementos Deprecados que podían sustituirse con las nuevas incorporaciones, esto no sólo cada vez que se abría un anterior proyecto en el IDE sino también como consecuencia del paso de prepocesado realizado por el compilador cuando ejecutábamos el proyecto.
Ahora, las deprecaciones que cuentan con sustituciones ya no se muestran como advertencias por omisión. Si quieres ver todas las advertencias de deprecación para la API 2.0 para un proyecto concreto ahora deberás de dirigirte a Project > Analysis Warnings
y seleccionar la opción Item1 is deprecated. You should use Item2 instead.
Otros cambios y mejoras
Pero Xojo 2019r2.1 no sólo se centra en pulir la transición desde la API 1 a la API 2, también comprobarás en las Notas de Revisión que se han solucionado una buena cantidad de errores relacionados con la gestión de memoria (y que son muy bien recibidos), especialmente cuando se trata de operar sobre bases de datos.
También se hace hincapié en la API 2 añadiendo nuevos métodos, por ejemplo, en la clase FolderItem o bien en la clase DateTime
para adjuntar una zona horaria cuando se utiliza el método compartido Now
.
Otra de las mejoras que personalmente me gustan más es la capacidad que tenemos a partir de ahora para iterar por los controles que se hayan añadido en el diseño de una ventana; mucho más limpio y efectivo en comparación a como tenía que realizar anteriormente basándose en la obtención previa del número de controles disponibles en una instancia de ventana en cuestión en combinación con un bucle.
También es significativo el hecho de que ahora DatabaseRow.Column
devuelve una DatabaseColumn
que podremos utilizar para obtener y definir los valores de la columna en cuestión.
Por supuesto, puedes ver el resto de cambios, mejoras y solución de problemas en las Notas de Revisión disponibles tanto desde el propio IDE (bajo el menú Help
) como en el área de documentación del sitio web de Xojo.
Como de costumbre, puedes descargar la última versión de Xojo desde el IDE o bien desde el Área de Descargas del sitio web de Xojo.
¿Cuál es tu opinión sobre los cambios introducidos y Xojo 2019r2.1? ¡Estoy deseando leer tus comentarios!