[2024r1] Popovers y otras mejoras en Xojo Web

A continuación encontrarás traducido al Castellano el artículo escrito por Ricardo Cruz y publicado originalmente en el Blog Oficial de Xojo.

Nuestro framework web continúa mejorando con interesantes nuevas capacidades y decenas de correcciones de errores. ¡Echemos un vistazo a algunos de los cambios más destacados en 2024r1!

Popovers

Similares a los WebDialog, los popover te proporcionan la oportunidad de mejorar la UX de tus apps. Piensa en ellas como en pantallas efímeras sobre las que puedes mostrar texto y controles.

A diferencia de los WebDialog, que siempre se muestran centradas y evitan que el usuario interactúe con otros controles, los Popover se pueden ubicar sobre controles específicos sobre los que está relacionada la información a mostrar.

Puedes pensar en ellos como “menús contextuales” mejorados pero, en vez de mostrar simples menús de texto, puedes añadir todo lo que quieras. ¿Has pensado alguna vez en añadir un WebMapViewer en un WebContextualMenu? ¡Ahora puedes hacerlo utilizando los Popover!

La API es muy simple. Crea un Container, añade los controles que desees… y eso esto; en serio. Sólo tendrás que crear una nueva instancia de dicho Container y mostrarlo como Popover, indicando el control sobre el cual “apuntará”, mostrando así su asociación.

Digamos que tienes un container llamado “MyTextFieldContainer”, y que quieres mostrarlo bajo un WebLabel llamado “MyLabel”. Este sería el código:

Var c As New MyTextFieldContainer
c.ShowPopover(MyLabel)

Por defecto se mostrará bajo el control indicado, pero puedes mostrarlo en una ubicación diferente utilizando para ello la enumeración DisplaySides. Tan fácil como:

Var c As New TextFieldContainer
c.ShowPopover(MyLabel, WebContainer.DisplaySides.Top)

Como puedes ver, los Popover en los proyectos web son simplemente instancias de container que mostrarás de forma dinámica. Esto te proporciona la capacidad de lanzar eventos, añadir propiedades calculadas o bien implementar la interfaz Observer. Si ya estás familiarizado con los Container, entonces ya sabes como utilizar los Popover.

Mostrar menús contextuales mediante código

En ciertas ocasiones los Popover pueden ser una opción exagerada para la tarea que se requiere. Si sólo quieres mostrar un menú con algunos elementos de texto, entonces un menú contextual es suficiente.

Imagina que tienes un WebTextLabel en el que quieres mostrar el menú contextual cuando el usuario pulse sobre la etiqueta. Podrías definir el menú contextual en su evento Opening:

Var menu As New WebMenuItem
menu.AddMenuItem("Foo")
menu.AddMenuItem("Bar")
menu.AddMenuItem("Baz")

Me.ContextualMenu = menu

Implementa el evento WebLabel.Pressed y añade este código:

Me.ContextualMenu.PopUp

Tan fácil como eso.

Nuevo método RemoveControl

Los controles WebView, como WebPage y WebContainer, soportan ahora la capacidad de eliminar controles. Esto te proporciona la pieza que faltaba a la hora de crear GUIs mediante código, puesto que AddControl ya estaba disponible.

Esto puede resultar útil cuando estás presentando un formulario al usuario final en el que se ha de incluir una cantidad indeterminada de campos.

Por ejemplo, tu usuario está rellenando el perfil y quieres soportar la capacidad de ofrecer múltiples campos de contacto. Algunos usuarios querrán añadir un número de teléfono, otros 2, y otros puede que prefieran ser contactados sólo por email.

Mediante la capacidad de añadir y eliminar controles de forma dinámica te da la oportunidad de crear este tipo de características. En vez de tener que añadir una cantidad fija de métodos de contacto, puedes adaptar tu app para lo que el usuario realmente precisa.

Mejoras de rendimiento y uso de memoria

Llegamos a mi parte favorita: las mejoras que nadie ve… salvo que quieras compartir las estadísticas de monitorización de tu servidor, lo cual siempre mola.

Xojo 2024r1 ofrece menos uso de operaciones I/O en disco. En mis pruebas, Xojo Web puede servir ahora 1.200 peticiones por segundo mediante el evento WebApplication.HandleURL. Esto supone en torno a un 20% más en comparación con la anterior versión.

También, y gracias a Jeremie Leroy (uno de nuestros MVP) y a Bruno Frechette, hemos podido identificar y solucionar algunas fugas de memoria. En 2024r1 tu aplicación Web estará haciendo un mejor trabajo de limpieza una vez se han procesado las peticiones.

Correcciones de errores

¡La lista de correcciones de errores es grande! Puedes consultarla en la página de Notas de Revisión correspondiente a 2024r1.

Correcciones Web por categoría:

  • Compilador: 1
  • IDE: 7
  • Framework: 40

18 regresiones adicionales fueron reportadas y solucionadas durante el periodo beta.

Muchas gracias a todos los que han dedicado su tiempo a probar nuestras revisiones y a reportar los problemas encontrados antes de que se publicase la versión final.

Conclusión

Esperamos que estés tan emocionado como nosotros cuando tengas esta versión en tus manos. Personalmente, ¡estoy deseando saber qué estás creando! Por favor, recuerda mencionarnos en tu red social favorita de modo que podamos saber en lo que estás trabajando.

Entre tanto, ya estamos trabajando duro para preparar nuestra próxima versión, 2024r2. Spoiler: ¡Te encantará!

¡Feliz programación con Xojo!

Un comentario en “[2024r1] Popovers y otras mejoras en Xojo Web

  1. Sergio C. H.

    Muchas gracias chicos (Javier y Ricardo). Esta primera release de 2024 promete. A ver con qué nos sorprende Xojo en la 2024r2.

    Un abrazo,
    Sergio

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *