In één oogopslag
borealis: 4, Aurore: 15
vertaalcatalogi, gewisseld terwijl de app draait
borealis: C++17, Aurore: C++20
de taalstandaard, met RTTI en exceptions
borealis: Yoga 2, Aurore: Yoga 3
standaard CSS-flexbox, met
gapenflexWrapborealis: 7, Aurore: 8
platformen: de browser komt bij de zeven
Nieuw in Aurore
Wat borealis niet heeft
Cadran staat standaard aan en één aanroep zet het uit; de rest is er wanneer een app het wil.
Cadran, een eigen look
Standaard aan: een pictogrammenbalk, kaarten, panelen en dialogen, zo'n zestig vectorpictogrammen.
setCadran(false)houdt de look van borealis.Thema's in bestanden
.theme-bestanden en -mappen: een palet uit één accentkleur, voorinstellingen, negen seizoenen en feesten, afbeeldingen, decoraties. Het contrast van elk thema wordt gecontroleerd.Stijlen en databinding
Attributen
focus:,pressed:,disabled:enhover:, geanimeerde overgangen, waarden gekoppeld vanuit XML metbind.Toegankelijkheid
Een rol, een label en een waarde voor elke view, een focusaankondiging in 15 talen, twee thema's met hoog contrast, een tekstschaal, minder beweging.
Tekst in elk schrift
Kleuremoji, Hebreeuws en Arabisch van rechts naar links, FreeType als optie, een lettertype per label, tekst die krimpt om te passen, gecachete maten.
Een testomgeving
Zonder scherm, op een gesimuleerde klok: gamepad, toetsenbord, aanraking en muis per aanroep, screenshots vergeleken met referenties, en fuzzing-doelen.
Inspector, hot reload, profiler
F12 of L3+R3 opent de boom, het boxmodel en de themasleutels over de app; XML en thema's laden opnieuw bij opslaan; een benchmark vindt regressies.
Dichtheid en kleine schermen
Ruime, compacte of dichte maten in
dp,compact:-attributen voor smalle schermen, een voorinstelling voor een klein scherm in één aanroep.
Naast elkaar
Wat beide hebben, en hoe het verschilt
Links borealis, zoals de branch wiliwili nu is; rechts Aurore.
Look en lay-out
| borealis wiliwili | Aurore | |
|---|---|---|
| Look | Een eigen, dicht bij die van de Switch | Standaard Cadran; de look van borealis één aanroep verderop |
| Kleuren | Een licht en een donker thema, vastgelegd in code | Elke kleur een themasleutel, gewisseld terwijl de app draait |
| Lay-out | Yoga 2.0.0 | Yoga 3.2.1, standaard flexbox, gap, flexWrap met focus over de regels heen |
| Hoeken en verlopen | Eén straal voor alle hoeken | Een straal per hoek, horizontale verlopen, verlopen vanuit code |
| Focusmarkering | Een pulserende rand | Glijdt van view naar view, kan na een tijdje vervagen |
| Afbeeldingen | Geladen op de thread van de interface | Te decoderen op de achtergrond; te grote afbeeldingen geweigerd vóór het decoderen |
Tekst en invoer
| borealis wiliwili | Aurore | |
|---|---|---|
| Vertalingen | 4 talen: Engels, Frans, Russisch, vereenvoudigd Chinees | 15 talen, voor de bibliotheek, Cadran, de hints en de toegankelijkheid |
| Van taal wisselen | Eén keer geladen, bij de start | Terwijl de app draait, met loadTranslations() |
| Opzoeken | Exceptions bij het opzoeken | Zonder exceptions, veilig vanuit elke thread |
| Lettertypen buiten de Switch | Lettertypen in Switch-stijl meegeleverd | Inter en PromptFont, vrije lettertypen; Chinees, Japans en Koreaans van het systeem |
| Toetsenbord | Enter, Escape, de pijlen en weinig meer | Elke knop van de controller op een toets, opnieuw toe te wijzen |
| Focus | Een verborgen box kon hem krijgen | Verborgen en vernietigde views houden hem nooit vast |
Build en platformen
| borealis wiliwili | Aurore | |
|---|---|---|
| Taal | C++17 | C++20, RTTI en exceptions aan |
| CMake-target | borealis | Aurore::aurore, Aurore::test |
| Opties | PLATFORM_*, USE_*, BRLS_* | AURORE_*, presets, een verplaatsbare installatie |
| Buildsystemen | CMake en xmake | Alleen CMake |
| Platformen | Desktop, Switch, PS Vita, PS4, Android, iOS, tvOS | Dezelfde, plus de browser (Emscripten, WebGL 2) |
| Meegeleverde 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 |
| Geluiden op de Switch | libpulsar gelinkt, de geluiden uit | libpulsar verwijderd |
| Links openen | Elk adres, via een shell | Alleen http en https, zonder shell |
| Licentie | Apache 2.0 | De code van borealis onder Apache 2.0; Cadran onder GPLv3, en daarmee een app gebouwd met Aurore |
Correcties
Onderweg opgelost
Uit andere forks van borealis, uit de patches van PlayGuard en uit het eigen werk aan Aurore.
- De teller van de invoerblokkade loopt niet meer over.
- Een vernietigde view wordt als focus vergeten; een verloren focus bereikt de bovenliggende frames.
- De navigatie slaat verborgen frames en schuifregelaars over.
- Controllers onder SDL: gesloten bij loskoppelen, allemaal opnieuw gelezen na het verbinden, drukken korter dan een frame behouden.
- Elke recyclende lijst controleert zijn eigen breedte; views die in de wachtrij komen terwijl de verwijderpool leegloopt, blijven bewaard.
- De lettertype-parsers lezen alleen binnen de gegevens van het lettertype.
- De logger schrijft elke regel meteen weg.
- Een uitgeschakelde knop is niet meer aan te klikken.
Overgenomen uit de borealis-familie
Hun commits houden hun auteur en hun regel cherry picked from; andere zijn herschreven, met vermelding in de commit.
Overstappen
Wat een app verandert
De meeste apps bouwen en draaien na het hernoemen ongewijzigd. De handleiding geeft elke regel, en wat je daarna op het scherm bekijkt.
- De namen: geen compatibiliteitslaag, elke
brls-naam heeft een Aurore-naam; zoeken en vervangen volstaat. - De build: C++20, het target
Aurore::aurore, de optiesAURORE_*. - De licentie: Cadran wordt in elke app gelinkt, dus een app gebouwd met Aurore valt onder 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
Het project
Gedocumenteerd, getest, uitgebracht
Documentatie
18 handleidingen en een API-referentie op deze site, waar borealis een README en een wiki heeft.
Continue integratie
Bovenop de builds van borealis: opmaak, de demo onder ASan en UBSan, de tests, de documentatie; actions vastgezet op een commit.
Releases
Conventional Commits en release-please, een changelog,
AURORE_VERSION_AT_LEASTin de code.Bijdragen en beveiliging
CONTRIBUTING.mdom bij te dragen,SECURITY.mdom kwetsbaarheden vertrouwelijk te melden.Het sjabloon
In de repository,
template/: een minimale app voor desktop en Switch.Vermeldingen
De vermeldingen van derden worden met elke app meegeleverd; tools controleren ze, samen met de versies van de meegeleverde bibliotheken.
Een app overzetten van borealis?
De handleiding neemt het stap voor stap door: de submodule, de build, de resources, de look, de namen.