En un coup d'œil
borealis: 4, Aurore: 15
catalogues de traduction, changés pendant que l'app tourne
borealis: C++17, Aurore: C++20
la norme du langage, avec RTTI et exceptions
borealis: Yoga 2, Aurore: Yoga 3
le flexbox standard de CSS, avec
gapetflexWrapborealis: 7, Aurore: 8
plateformes : le navigateur rejoint les sept
Nouveau dans Aurore
Ce que borealis n'a pas
Cadran est actif par défaut, et un appel le coupe; le reste attend qu'une app le veuille.
Cadran, une allure à soi
Actif par défaut : un rail d'icônes, des cartes, des feuilles et des dialogues, une soixantaine d'icônes vectorielles.
setCadran(false)garde l'allure de borealis.Des thèmes en fichiers
Fichiers et dossiers
.theme: une palette tirée d'un accent, des préréglages, neuf saisons et fêtes, des images, des décors. Le contraste de chaque thème est vérifié.Styles et liaison de données
Attributs
focus:,pressed:,disabled:ethover:, transitions animées, valeurs liées depuis le XML avecbind.Accessibilité
Un rôle, un libellé et une valeur pour chaque vue, une annonce du focus en 15 langues, deux thèmes à fort contraste, une échelle du texte, des animations réduites.
Du texte pour toutes les écritures
Emoji en couleur, hébreu et arabe de droite à gauche, FreeType en option, une police par libellé, un texte qui se resserre pour tenir, des mesures en cache.
Un banc de test
Sans écran, sur une horloge simulée : manette, clavier, toucher et souris par appel, captures comparées à des références, et des cibles de fuzzing.
Inspecteur, rechargement, profileur
F12 ou L3+R3 ouvre l'arbre, le modèle de boîte et les clés du thème par-dessus l'app; XML et thèmes se rechargent à l'enregistrement; un banc d'essai repère les régressions.
Densité et petits écrans
Des longueurs confortables, compactes ou denses en
dp, des attributscompact:pour les écrans étroits, un préréglage pour petit écran en un appel.
Côte à côte
Ce que les deux ont, et ce qui diffère
borealis à gauche, tel qu'est sa branche wiliwili, Aurore à droite.
Allure et mise en page
| borealis wiliwili | Aurore | |
|---|---|---|
| Allure | La sienne, proche de celle de la Switch | Cadran par défaut; l'allure de borealis à un appel |
| Couleurs | Un thème clair et un sombre, fixés dans le code | Chaque couleur est une clé de thème, changée pendant que l'app tourne |
| Mise en page | Yoga 2.0.0 | Yoga 3.2.1, flexbox standard, gap, flexWrap avec le focus d'une ligne à l'autre |
| Coins et dégradés | Un seul rayon pour tous les coins | Un rayon par coin, des dégradés horizontaux, des dégradés depuis le code |
| Surlignage du focus | Une bordure qui pulse | Glisse d'une vue à l'autre, peut s'estomper au bout d'un moment |
| Images | Chargées sur le fil de l'interface | Décodables en arrière-plan; les images trop grandes refusées avant décodage |
Texte et saisie
| borealis wiliwili | Aurore | |
|---|---|---|
| Traductions | 4 langues : anglais, français, russe, chinois simplifié | 15 langues, pour la bibliothèque, Cadran, les aides et l'accessibilité |
| Changer de langue | Chargée une fois, au démarrage | Pendant que l'app tourne, avec loadTranslations() |
| Recherches | Des exceptions à la recherche | Sans exceptions, sûres depuis n'importe quel fil |
| Polices hors de la Switch | Des polices façon Switch fournies | Inter et PromptFont, des polices libres; chinois, japonais et coréen par le système |
| Clavier | Entrée, Échap, les flèches et peu d'autres | Chaque bouton de la manette sur une touche, réaffectable |
| Focus | Une boîte cachée pouvait le prendre | Les vues cachées ou détruites ne le gardent jamais |
Compilation et plateformes
| borealis wiliwili | Aurore | |
|---|---|---|
| Langage | C++17 | C++20, RTTI et exceptions actives |
| Cible CMake | borealis | Aurore::aurore, Aurore::test |
| Options | PLATFORM_*, USE_*, BRLS_* | AURORE_*, des préréglages, une installation relocalisable |
| Systèmes de compilation | CMake et xmake | CMake seul |
| Plateformes | Ordinateur, Switch, PS Vita, PS4, Android, iOS, tvOS | Les mêmes, et le navigateur (Emscripten, WebGL 2) |
| Bibliothèques fournies | 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 de la Switch | libpulsar liée, ses sons coupés | libpulsar retirée |
| Ouvrir un lien | N'importe quelle adresse, par un shell | http et https seulement, sans shell |
| Licence | Apache 2.0 | Le code de borealis en Apache 2.0; Cadran en GPLv3, et donc une app construite avec Aurore |
Corrections
Corrigé en chemin
Venues d'autres forks de borealis, des correctifs de PlayGuard, et du travail d'Aurore lui-même.
- Le compteur de blocage des entrées ne fait plus le tour.
- Une vue détruite est oubliée comme focus; un focus perdu remonte aux cadres parents.
- La navigation saute les cadres et curseurs cachés.
- Manettes sous SDL : fermées au débranchement, toutes relues après une reconnexion, les appuis plus courts qu'une image gardés.
- Chaque liste recyclée vérifie sa propre largeur; les vues mises en file pendant que la réserve de suppression se vide sont gardées.
- Les lecteurs de polices ne lisent qu'à l'intérieur des données de la police.
- Le journal écrit chaque ligne aussitôt.
- Un bouton désactivé ne se clique plus.
Repris de la famille borealis
Leurs commits gardent leur auteur et leur ligne cherry picked from; d'autres sont réécrits, avec le crédit dans le commit.
Passer à Aurore
Ce qu'une app change
La plupart des apps se compilent et tournent sans changement une fois renommées. Le guide donne chaque ligne, et ce qu'il faut regarder à l'écran ensuite.
- Les noms : pas de couche de compatibilité, chaque nom
brlsa son nom Aurore; un chercher-remplacer suffit. - La compilation : C++20, la cible
Aurore::aurore, les optionsAURORE_*. - La licence : Cadran est lié à chaque app, donc une app construite avec Aurore est en 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
Le projet
Documenté, testé, publié
Documentation
18 guides et une référence de l'API sur ce site, là où borealis a son README et un wiki.
Intégration continue
En plus des compilations de borealis : le formatage, la démo sous ASan et UBSan, les tests, la documentation; des actions épinglées à leur commit.
Versions
Conventional Commits et release-please, un journal des versions,
AURORE_VERSION_AT_LEASTdans le code.Contribution et sécurité
CONTRIBUTING.mdpour contribuer,SECURITY.mdpour signaler une faille en privé.Le modèle
Dans le dépôt,
template/: une app minimale pour l'ordinateur et la Switch.Mentions
Les mentions des tiers fournies avec chaque app; des outils les vérifient, ainsi que les versions des bibliothèques fournies.
Une app à faire passer de borealis?
Le guide la prend pas à pas : le sous-module, la compilation, les ressources, l'allure, les noms.