A continuación encontrarás traducido al castellano el artículo escrito por William Yu y publicado originalmente en el Blog de Xojo.
En el pasado acostumbrábamos a utilizar el símbolo formado por dos caracteres 🙂 para añadir una sonrisa a nuestros mensajes. Desde entonces, tenemos a nuestra disposición emojis a color con el mismo objeto, de modo que ha llegado el momento de actualizarse si no queremos parecer tan viejos como un 🦕.
Dibujado de Emojis Mejorado
Si bien nuestra clase Graphics soportaba el dibujado de emojis en Windows y Linux, su aspecto no era el deseado.
Ahora, y a partir de Xojo 2024r2, hemos mejorado estos emojis con el soporte de color.
Mediante este cambio observarás que otras partes de nuestro framework, en las que se utiliza la clase Graphics, como pueda ser por ejemplo el ListBox, también obtienen ventaja de esta actualización.
Entender los emojis a un nivel más bajo
Entender cómo están codificados los emojis es crucial para comprender cómo funciona nuestro tipo de datos String y cómo lo interpretamos. Cualquier texto o emoji mostrado en pantalla puede ser considerado como una secuencia Unicode formada por una serie de secuencias Unicode. A un nivel más profundo, una única secuencia Unicode puede estar construida por múltiples códigos Unicode (es decir, bytes de datos). Para una mayor claridad, describiremos un caracter (ya sea texto simple o un emoji) como la composición de una(s) secuencia(s) Unicode.
Para demostrarlo, intentemos comprender la mujer 👩
Esta mujer en particular no es muy compleja. Esta compuesta de una única secuencia Unicode (con sus correspondientes códigos). Nuestro tipo de dato String puede manejar esta secuencia Unicode e informa correctamente de que su longitud (Length) es 1 (incluso aunque el emoji completo esté formado por cuatro bytes de códigos).
Echemos ahora un vistazo a una mujer más compleja 👩🦰
La única diferencia visual es que esta mujer es pelirroja. Este cambio sutil en su aspecto significa que para construir este emoji no se requiere de 1 ni 2, sino tres secuencias Unicode distintas (con un total de 11 bytes de códigos).
Observa que la longitud reportada para la String es de 3 secuencias Unicode, incluso aunque visualmente sólo parezca un caracter. Esta distinción es muy importante a la hora de comprender como funcionan las funciones String. Nuestras funciones String lidian de forma inherente con secuencias Unicode, y no con caracteres individuales. Cuando necesitas trabajar con emojis complejos como estos, querrás utilizar la API String.Characters mediante la cual se gestiona esta complejidad.
Un String.Characters optimizado
Dada la prevalencia de los emoji en el uso diario de los textos y los mensajes, la gestión correcta de dichos símbolos en nuestro tipo String es crucial. Si bien introdujimos esta característica inicialmente como String.Characters, esta funcionaba internamente como un iterador hasta 2024r2. Ahora, String.Characters devuelve un array de String, el cual también puede seguir siendo iterado asegurando así que el código existente continúe funcionando tal y como venía haciendo. Adicionalmente, esta actualización ofrece la ventaja adicional de mejorar de forma significativa la velocidad, especialmente en Windows y Linux. Junto con esta actualización hemos introducido String.CharacterCount, la cual resulta útil cuando necesitas saber el número de caracteres en una string sin tener que almacenarlos en un array.
Para comprender aun mejor los emojis y sus secuencias Unicode correspondientes, puedes consultar la Lista Completa de Emojis.