Auf einen Blick
borealis: 4, Aurore: 15
Übersetzungskataloge, gewechselt während die App läuft
borealis: C++17, Aurore: C++20
der Sprachstandard, mit RTTI und Exceptions
borealis: Yoga 2, Aurore: Yoga 3
Standard-Flexbox von CSS, mit
gapundflexWrapborealis: 7, Aurore: 8
Plattformen: der Browser kommt zu den sieben hinzu
Neu in Aurore
Was borealis nicht hat
Cadran ist standardmäßig an, ein Aufruf schaltet es ab; der Rest ist da, wenn eine App ihn will.
Cadran, ein eigener Look
Standardmäßig an: eine Symbolleiste, Karten, Blätter und Dialoge, rund sechzig Vektorsymbole.
setCadran(false)behält den Look von borealis.Themes in Dateien
.theme-Dateien und -Ordner: eine Palette aus einer Akzentfarbe, Voreinstellungen, neun Jahreszeiten und Feste, Bilder, Dekorationen. Der Kontrast jedes Themes wird geprüft.Stile und Datenbindung
Attribute
focus:,pressed:,disabled:undhover:, animierte Übergänge, aus XML gebundene Werte mitbind.Barrierefreiheit
Eine Rolle, eine Beschriftung und ein Wert für jede View, eine Fokusansage in 15 Sprachen, zwei Themes mit hohem Kontrast, eine Textskalierung, reduzierte Bewegung.
Text für jede Schrift
Farbige Emoji, Hebräisch und Arabisch von rechts nach links, FreeType als Option, eine Schrift pro Label, Verkleinern zum Einpassen, zwischengespeicherte Maße.
Ein Testgerüst
Ohne Bildschirm, mit simulierter Uhr: Gamepad, Tastatur, Touch und Maus per Aufruf, Screenshots mit Referenzen verglichen, dazu Fuzzing-Ziele.
Inspektor, Hot Reload, Profiler
F12 oder L3+R3 öffnet Baum, Box-Modell und Theme-Abfragen über der App; XML und Themes laden beim Speichern neu; ein Benchmark findet Regressionen.
Dichte und kleine Bildschirme
Bequeme, kompakte oder dichte Längen in
dp,compact:-Attribute für schmale Bildschirme, eine Voreinstellung für kleine Bildschirme in einem Aufruf.
Im Vergleich
Was beide haben, und wie es sich unterscheidet
Links borealis, wie sein Branch wiliwili steht, rechts Aurore.
Look und Layout
| borealis wiliwili | Aurore | |
|---|---|---|
| Look | Ein eigener, nah an dem der Switch | Standardmäßig Cadran; der Look von borealis einen Aufruf entfernt |
| Farben | Ein helles und ein dunkles Theme, im Code festgelegt | Jede Farbe ein Theme-Schlüssel, gewechselt während die App läuft |
| Layout | Yoga 2.0.0 | Yoga 3.2.1, Standard-Flexbox, gap, flexWrap mit Fokus über die Zeilen |
| Ecken und Verläufe | Ein Radius für alle Ecken | Ein Radius pro Ecke, waagerechte Verläufe, Verläufe aus dem Code |
| Fokusmarkierung | Ein pulsierender Rahmen | Gleitet von View zu View, kann nach einer Weile verblassen |
| Bilder | Im Thread der Oberfläche geladen | Im Hintergrund dekodierbar; zu große Bilder vor dem Dekodieren abgelehnt |
Text und Eingabe
| borealis wiliwili | Aurore | |
|---|---|---|
| Übersetzungen | 4 Sprachen: Englisch, Französisch, Russisch, vereinfachtes Chinesisch | 15 Sprachen, für die Bibliothek, Cadran, die Hinweise und die Barrierefreiheit |
| Sprachwechsel | Einmal geladen, beim Start | Während die App läuft, mit loadTranslations() |
| Abfragen | Exceptions bei der Abfrage | Ohne Exceptions, sicher aus jedem Thread |
| Schriften außerhalb der Switch | Schriften im Stil der Switch mitgeliefert | Inter und PromptFont, freie Schriften; Chinesisch, Japanisch und Koreanisch vom System |
| Tastatur | Enter, Escape, die Pfeile und wenig mehr | Jede Controller-Taste auf einer Taste, neu belegbar |
| Fokus | Eine versteckte Box konnte ihn nehmen | Versteckte und zerstörte Views halten ihn nie |
Build und Plattformen
| borealis wiliwili | Aurore | |
|---|---|---|
| Sprache | C++17 | C++20, RTTI und Exceptions an |
| CMake-Target | borealis | Aurore::aurore, Aurore::test |
| Optionen | PLATFORM_*, USE_*, BRLS_* | AURORE_*, Presets, eine verschiebbare Installation |
| Build-Systeme | CMake und xmake | Nur CMake |
| Plattformen | Desktop, Switch, PS Vita, PS4, Android, iOS, tvOS | Dieselben, dazu der Browser (Emscripten, WebGL 2) |
| Mitgelieferte Bibliotheken | 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 |
| Töne der Switch | libpulsar gelinkt, seine Töne aus | libpulsar entfernt |
| Links öffnen | Jede Adresse, über eine Shell | Nur http und https, ohne Shell |
| Lizenz | Apache 2.0 | Der Code von borealis unter Apache 2.0; Cadran unter GPLv3, und damit eine mit Aurore gebaute App |
Korrekturen
Unterwegs behoben
Aus anderen Forks von borealis, aus den Patches von PlayGuard und aus der eigenen Arbeit an Aurore.
- Der Zähler der Eingabesperre läuft nicht mehr über.
- Eine zerstörte View wird als Fokus vergessen; ein verlorener Fokus erreicht die Eltern-Frames.
- Die Navigation überspringt versteckte Frames und Schieberegler.
- Controller unter SDL: beim Abstecken geschlossen, nach dem Wiederverbinden alle neu gelesen, Drücke kürzer als ein Frame behalten.
- Jede recycelnde Liste prüft ihre eigene Breite; Views, die während des Leerens des Löschpools eingereiht werden, bleiben erhalten.
- Die Schrift-Parser lesen nur innerhalb der Daten der Schrift.
- Der Logger schreibt jede Zeile sofort aus.
- Ein deaktivierter Button lässt sich nicht mehr anklicken.
Aus der borealis-Familie übernommen
Ihre Commits behalten ihren Autor und ihre Zeile cherry picked from; andere sind neu geschrieben, mit Nennung im Commit.
Der Umstieg
Was eine App ändert
Die meisten Apps bauen und laufen nach dem Umbenennen unverändert. Die Anleitung nennt jede Zeile und was danach auf dem Bildschirm zu prüfen ist.
- Die Namen: keine Kompatibilitätsschicht, jeder
brls-Name hat einen Aurore-Namen; ein Suchen und Ersetzen genügt. - Der Build: C++20, das Target
Aurore::aurore, die OptionenAURORE_*. - Die Lizenz: Cadran wird in jede App gelinkt, also steht eine mit Aurore gebaute App unter 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
Das Projekt
Dokumentiert, getestet, veröffentlicht
Dokumentation
18 Anleitungen und eine API-Referenz auf dieser Website, wo borealis seine README und ein Wiki hat.
Continuous Integration
Zusätzlich zu den Builds von borealis: Formatierung, die Demo unter ASan und UBSan, die Tests, die Doku; Actions auf Commits festgelegt.
Releases
Conventional Commits und release-please, ein Changelog,
AURORE_VERSION_AT_LEASTim Code.Mitwirken und Sicherheit
CONTRIBUTING.mdzum Mitwirken,SECURITY.mdfür vertrauliche Meldungen von Schwachstellen.Die Vorlage
Im Repository,
template/: eine minimale App für Desktop und Switch.Hinweise
Die Hinweise zu Drittanbietern mit jeder App ausgeliefert; Werkzeuge prüfen sie und die Versionen der mitgelieferten Bibliotheken.
Eine App von borealis umstellen?
Die Anleitung geht Schritt für Schritt vor: das Submodul, der Build, die Ressourcen, der Look, die Namen.