Num relance
borealis: 4, Aurore: 15
catálogos de tradução, trocados com o app rodando
borealis: C++17, Aurore: C++20
o padrão da linguagem, com RTTI e exceções
borealis: Yoga 2, Aurore: Yoga 3
flexbox padrão do CSS, com
gapeflexWrapborealis: 7, Aurore: 8
plataformas: o navegador se junta às sete
Novo na Aurore
O que o borealis não tem
O Cadran vem ligado e uma chamada o desliga; o resto fica à disposição quando um app quiser.
Cadran, um visual próprio
Ligado por padrão: uma barra de ícones, cartões, folhas e diálogos, cerca de sessenta ícones vetoriais.
setCadran(false)mantém o visual do borealis.Temas em arquivos
Arquivos e pastas
.theme: uma paleta a partir de uma cor de destaque, predefinições, nove estações e festas, imagens, decorações. O contraste de cada tema é verificado.Estilos e data binding
Atributos
focus:,pressed:,disabled:ehover:, transições animadas, valores vinculados a partir do XML combind.Acessibilidade
Uma função, um rótulo e um valor para cada view, um anúncio do foco em 15 idiomas, dois temas de alto contraste, uma escala de texto, movimento reduzido.
Texto em todas as escritas
Emoji colorido, hebraico e árabe da direita para a esquerda, FreeType como opção, uma fonte por rótulo, texto que encolhe para caber, medidas em cache.
Um ambiente de testes
Sem tela, com um relógio simulado: controle, teclado, toque e mouse por chamada, capturas comparadas com referências, e alvos de fuzzing.
Inspetor, hot reload, profiler
F12 ou L3+R3 abre a árvore, o box model e as chaves do tema sobre o app; XML e temas recarregam ao salvar; um benchmark detecta regressões.
Densidade e telas pequenas
Medidas confortáveis, compactas ou densas em
dp, atributoscompact:para telas estreitas, uma predefinição para tela pequena numa chamada.
Lado a lado
O que os dois têm, e como difere
O borealis à esquerda, como está seu branch wiliwili; a Aurore à direita.
Visual e layout
| borealis wiliwili | Aurore | |
|---|---|---|
| Visual | O seu, próximo ao do Switch | Cadran por padrão; o visual do borealis a uma chamada |
| Cores | Um tema claro e um escuro, fixados no código | Cada cor é uma chave de tema, trocada com o app rodando |
| Layout | Yoga 2.0.0 | Yoga 3.2.1, flexbox padrão, gap, flexWrap com o foco de uma linha para outra |
| Cantos e degradês | Um só raio para todos os cantos | Um raio por canto, degradês horizontais, degradês a partir do código |
| Destaque do foco | Uma borda que pulsa | Desliza de uma view para outra, pode sumir depois de um tempo |
| Imagens | Carregadas na thread da interface | Decodificáveis em segundo plano; imagens grandes demais recusadas antes da decodificação |
Texto e entrada
| borealis wiliwili | Aurore | |
|---|---|---|
| Traduções | 4 idiomas: inglês, francês, russo, chinês simplificado | 15 idiomas, para a biblioteca, o Cadran, as dicas e a acessibilidade |
| Trocar de idioma | Carregado uma vez, na inicialização | Com o app rodando, com loadTranslations() |
| Buscas | Exceções na busca | Sem exceções, seguras a partir de qualquer thread |
| Fontes fora do Switch | Fontes no estilo do Switch incluídas | Inter e PromptFont, fontes livres; chinês, japonês e coreano do sistema |
| Teclado | Enter, Esc, as setas e pouco mais | Cada botão do controle numa tecla, remapeável |
| Foco | Uma caixa oculta podia pegá-lo | Views ocultas ou destruídas nunca ficam com ele |
Compilação e plataformas
| borealis wiliwili | Aurore | |
|---|---|---|
| Linguagem | C++17 | C++20, RTTI e exceções ligados |
| Target do CMake | borealis | Aurore::aurore, Aurore::test |
| Opções | PLATFORM_*, USE_*, BRLS_* | AURORE_*, presets, uma instalação realocável |
| Sistemas de build | CMake e xmake | Só CMake |
| Plataformas | Desktop, Switch, PS Vita, PS4, Android, iOS, tvOS | As mesmas, e o navegador (Emscripten, WebGL 2) |
| Bibliotecas incluídas | 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 |
| Sons do Switch | libpulsar vinculada, com os sons desligados | libpulsar removida |
| Abrir links | Qualquer endereço, por um shell | Só http e https, sem shell |
| Licença | Apache 2.0 | O código do borealis em Apache 2.0; o Cadran em GPLv3, e portanto um app feito com a Aurore |
Correções
Corrigido pelo caminho
De outros forks do borealis, dos patches do PlayGuard e do trabalho da própria Aurore.
- O contador de bloqueio de entrada não dá mais a volta.
- Uma view destruída é esquecida como foco; um foco perdido chega aos frames pais.
- A navegação pula frames e sliders ocultos.
- Controles com SDL: fechados ao desconectar, todos lidos de novo após reconectar, toques mais curtos que um quadro mantidos.
- Cada lista reciclada verifica a própria largura; views enfileiradas enquanto o pool de exclusão esvazia são mantidas.
- Os leitores de fontes só leem dentro dos dados da fonte.
- O logger grava cada linha na hora.
- Um botão desativado não pode mais ser clicado.
Trazido da família borealis
Seus commits mantêm o autor e a linha cherry picked from; outros são reescritos, com o crédito no commit.
A migração
O que um app muda
A maioria dos apps compila e roda sem mudanças depois de renomeada. O guia traz cada linha, e o que conferir na tela depois.
- Os nomes: sem camada de compatibilidade, cada nome
brlstem um nome Aurore; um localizar e substituir resolve. - A compilação: C++20, o target
Aurore::aurore, as opçõesAURORE_*. - A licença: o Cadran é vinculado a cada app, então um app feito com a Aurore é 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
O projeto
Documentado, testado, publicado
Documentação
18 guias e uma referência da API neste site, onde o borealis tem seu README e uma wiki.
Integração contínua
Além dos builds do borealis: a formatação, a demo com ASan e UBSan, os testes, a documentação; actions fixadas no commit.
Versões
Conventional Commits e release-please, um registro de mudanças,
AURORE_VERSION_AT_LEASTno código.Contribuição e segurança
CONTRIBUTING.mdpara contribuir,SECURITY.mdpara relatar vulnerabilidades em particular.O modelo
No repositório,
template/: um app mínimo para o desktop e o Switch.Avisos
Os avisos de terceiros incluídos em cada app; ferramentas os verificam, junto com as versões das bibliotecas incluídas.
Um app para migrar do borealis?
O guia leva passo a passo: o submódulo, a compilação, os recursos, o visual, os nomes.