De un vistazo
borealis: 4, Aurore: 15
catálogos de traducción, cambiados con la app en marcha
borealis: C++17, Aurore: C++20
el estándar del lenguaje, con RTTI y excepciones
borealis: Yoga 2, Aurore: Yoga 3
flexbox estándar de CSS, con
gapyflexWrapborealis: 7, Aurore: 8
plataformas: el navegador se suma a las siete
Nuevo en Aurore
Lo que borealis no tiene
Cadran viene activado y una llamada lo desactiva; el resto está ahí cuando una app lo quiera.
Cadran, un aspecto propio
Activado por defecto: una barra de iconos, tarjetas, hojas y diálogos, unos sesenta iconos vectoriales.
setCadran(false)conserva el aspecto de borealis.Temas en archivos
Archivos y carpetas
.theme: una paleta a partir de un color de acento, ajustes predefinidos, nueve estaciones y fiestas, imágenes, decoraciones. Se comprueba el contraste de cada tema.Estilos y enlace de datos
Atributos
focus:,pressed:,disabled:yhover:, transiciones animadas, valores enlazados desde el XML conbind.Accesibilidad
Un rol, una etiqueta y un valor para cada vista, un anuncio del foco en 15 idiomas, dos temas de alto contraste, una escala de texto, movimiento reducido.
Texto para cada escritura
Emoji en color, hebreo y árabe de derecha a izquierda, FreeType como opción, una fuente por etiqueta, texto que se encoge para caber, medidas en caché.
Un banco de pruebas
Sin pantalla, con un reloj simulado: mando, teclado, táctil y ratón por llamada, capturas comparadas con referencias, y objetivos de fuzzing.
Inspector, recarga, perfilador
F12 o L3+R3 abre el árbol, el modelo de caja y las claves del tema sobre la app; el XML y los temas se recargan al guardar; un banco de rendimiento detecta regresiones.
Densidad y pantallas pequeñas
Medidas cómodas, compactas o densas en
dp, atributoscompact:para pantallas estrechas, un ajuste para pantalla pequeña en una llamada.
Lado a lado
Lo que tienen los dos, y en qué difiere
borealis a la izquierda, tal como está su rama wiliwili; Aurore a la derecha.
Aspecto y maquetación
| borealis wiliwili | Aurore | |
|---|---|---|
| Aspecto | El suyo, cercano al de la Switch | Cadran por defecto; el aspecto de borealis a una llamada |
| Colores | Un tema claro y uno oscuro, fijados en el código | Cada color es una clave de tema, cambiada con la app en marcha |
| Maquetación | Yoga 2.0.0 | Yoga 3.2.1, flexbox estándar, gap, flexWrap con el foco de una línea a otra |
| Esquinas y degradados | Un solo radio para todas las esquinas | Un radio por esquina, degradados horizontales, degradados desde el código |
| Resaltado del foco | Un borde que late | Se desliza de una vista a otra, puede desvanecerse al rato |
| Imágenes | Cargadas en el hilo de la interfaz | Decodificables en segundo plano; las imágenes demasiado grandes, rechazadas antes de decodificar |
Texto y entrada
| borealis wiliwili | Aurore | |
|---|---|---|
| Traducciones | 4 idiomas: inglés, francés, ruso, chino simplificado | 15 idiomas, para la biblioteca, Cadran, las ayudas y la accesibilidad |
| Cambiar de idioma | Cargado una vez, al inicio | Con la app en marcha, con loadTranslations() |
| Búsquedas | Excepciones en la búsqueda | Sin excepciones, seguras desde cualquier hilo |
| Fuentes fuera de la Switch | Fuentes al estilo de la Switch incluidas | Inter y PromptFont, fuentes libres; chino, japonés y coreano del sistema |
| Teclado | Intro, Esc, las flechas y poco más | Cada botón del mando en una tecla, reasignable |
| Foco | Una caja oculta podía tomarlo | Las vistas ocultas o destruidas nunca lo retienen |
Compilación y plataformas
| borealis wiliwili | Aurore | |
|---|---|---|
| Lenguaje | C++17 | C++20, RTTI y excepciones activados |
| Objetivo de CMake | borealis | Aurore::aurore, Aurore::test |
| Opciones | PLATFORM_*, USE_*, BRLS_* | AURORE_*, ajustes predefinidos, una instalación reubicable |
| Sistemas de compilación | CMake y xmake | Solo CMake |
| Plataformas | Ordenador, Switch, PS Vita, PS4, Android, iOS, tvOS | Las mismas, y el navegador (Emscripten, WebGL 2) |
| Bibliotecas incluidas | Yoga 2.0.0, SDL 2.28.5, tinyxml2 9.0.0, nlohmann/json 3.11, glad 0.1.27 | Yoga 3.2.1, SDL 2.32.10, tinyxml2 11.0.0, nlohmann/json 3.12.0, glad 2.0.8 |
| Sonidos de la Switch | libpulsar enlazada, con sus sonidos apagados | libpulsar eliminada |
| Abrir enlaces | Cualquier dirección, a través de un shell | Solo http y https, sin shell |
| Licencia | Apache 2.0 | El código de borealis, Apache 2.0; Cadran, GPLv3, y por tanto una app hecha con Aurore |
Correcciones
Corregido por el camino
De otros forks de borealis, de los parches de PlayGuard y del propio trabajo de Aurore.
- El contador de bloqueo de la entrada ya no se desborda.
- Una vista destruida se olvida como foco; un foco perdido llega a los marcos padres.
- La navegación salta los marcos y deslizadores ocultos.
- Mandos con SDL: cerrados al desconectarlos, todos leídos de nuevo tras reconectar, pulsaciones más cortas que un fotograma conservadas.
- Cada lista reciclada comprueba su propio ancho; las vistas en cola mientras se vacía la reserva de borrado se conservan.
- Los lectores de fuentes solo leen dentro de los datos de la fuente.
- El registro escribe cada línea al momento.
- Un botón desactivado ya no se puede pulsar.
Tomado de la familia borealis
Sus commits conservan su autor y su línea cherry picked from; otros se reescriben, con el crédito en el commit.
Pasarse
Lo que cambia una app
La mayoría de las apps compilan y funcionan sin cambios una vez renombradas. La guía da cada línea y lo que hay que revisar en pantalla después.
- Los nombres: sin capa de compatibilidad, cada nombre
brlstiene uno de Aurore; basta con buscar y reemplazar. - La compilación: C++20, el objetivo
Aurore::aurore, las opcionesAURORE_*. - La licencia: Cadran se enlaza en cada app, así que una app hecha con Aurore es GPLv3.
#include <borealis.hpp>#include <aurore.hpp>brls::Application::init();aurore::Application::init();BRLS_BIND(brls::Button, button, "go");AURORE_BIND(aurore::Button, button, "go");<brls:Box axis="column"><aurore:Box axis="column">textColor="@theme/brls/text"textColor="@theme/aurore/text"target_link_libraries(app borealis)target_link_libraries(app PRIVATE Aurore::aurore)cmake -DPLATFORM_DESKTOP=ON -DUSE_SDL2=ONcmake -DAURORE_PLATFORM=DESKTOP -DAURORE_WINDOW=SDL2BRLS_LANG=fr ./appAURORE_LANG=fr ./app
El proyecto
Documentado, probado, publicado
Documentación
18 guías y una referencia de la API en este sitio, donde borealis tiene su README y una wiki.
Integración continua
Además de las compilaciones de borealis: el formato, la demo con ASan y UBSan, las pruebas, la documentación; acciones fijadas a su commit.
Versiones
Conventional Commits y release-please, un registro de cambios,
AURORE_VERSION_AT_LEASTen el código.Contribuir y seguridad
CONTRIBUTING.mdpara contribuir,SECURITY.mdpara informar de fallos de seguridad en privado.La plantilla
En el repositorio,
template/: una app mínima para el ordenador y la Switch.Avisos
Los avisos de terceros incluidos con cada app; unas herramientas los comprueban, junto con las versiones de las bibliotecas incluidas.
¿Una app que pasar de borealis?
La guía la lleva paso a paso: el submódulo, la compilación, los recursos, el aspecto, los nombres.