한눈에 보기
borealis: 4, Aurore: 15
번역 카탈로그, 앱 실행 중에 전환
borealis: C++17, Aurore: C++20
언어 표준, RTTI와 예외 사용
borealis: Yoga 2, Aurore: Yoga 3
표준 CSS flexbox,
gap과flexWrap포함borealis: 7, Aurore: 8
플랫폼: 일곱 개에 브라우저가 더해짐
Aurore의 새 기능
borealis에 없는 것
Cadran은 기본으로 켜져 있고 호출 한 번으로 끌 수 있습니다. 나머지는 앱이 원할 때 쓸 수 있습니다.
Cadran, 고유한 모습
기본으로 켜짐: 아이콘 레일, 카드, 시트와 대화 상자, 약 60개의 벡터 아이콘.
setCadran(false)로 borealis의 모습을 유지합니다.파일로 만드는 테마
.theme파일과 폴더: 강조색 하나로 만드는 팔레트, 프리셋, 아홉 가지 계절과 기념일, 이미지, 장식. 모든 테마의 대비를 검사합니다.스타일과 데이터 바인딩
focus:,pressed:,disabled:,hover:속성, 애니메이션 전환,bind로 XML에서 연결하는 값.접근성
모든 뷰의 역할, 레이블, 값, 15개 언어로 읽어 주는 포커스 안내, 고대비 테마 두 가지, 텍스트 배율, 동작 줄이기.
모든 문자를 위한 텍스트
컬러 이모지, 오른쪽에서 왼쪽으로 쓰는 히브리어와 아랍어, 선택형 FreeType, 레이블마다 다른 글꼴, 맞춰 줄어드는 텍스트, 측정값 캐시.
테스트 하네스
화면 없이 시뮬레이션된 시계 위에서: 게임패드, 키보드, 터치, 마우스를 호출로 조작하고 스크린샷을 기준 이미지와 비교합니다. 퍼징 대상도 있습니다.
인스펙터, 핫 리로드, 프로파일러
F12 또는 L3+R3로 트리, 박스 모델, 테마 조회를 앱 위에 엽니다. XML과 테마는 저장하면 다시 읽고, 벤치마크가 성능 저하를 잡습니다.
밀도와 작은 화면
dp단위의 여유·컴팩트·조밀한 크기, 좁은 화면용compact:속성, 작은 화면용 프리셋을 호출 한 번으로.
나란히 보기
둘 다 가진 것, 그리고 다른 점
왼쪽은 현재 wiliwili 브랜치의 borealis, 오른쪽은 Aurore입니다.
모습과 레이아웃
| borealis wiliwili | Aurore | |
|---|---|---|
| 모습 | 자체 모습, Switch와 비슷함 | 기본은 Cadran, borealis의 모습은 호출 한 번이면 됨 |
| 색상 | 밝은 테마와 어두운 테마, 코드에 고정 | 모든 색이 테마 키, 앱 실행 중에 전환 |
| 레이아웃 | Yoga 2.0.0 | Yoga 3.2.1, 표준 flexbox, gap, 줄을 넘나드는 포커스가 있는 flexWrap |
| 모서리와 그라디언트 | 모든 모서리에 같은 반지름 | 모서리마다 다른 반지름, 가로 그라디언트, 코드에서 만드는 그라디언트 |
| 포커스 강조 | 깜박이는 테두리 | 뷰에서 뷰로 미끄러지듯 이동, 잠시 후 흐려질 수 있음 |
| 이미지 | 인터페이스 스레드에서 로드 | 백그라운드 디코딩 가능, 너무 큰 이미지는 디코딩 전에 거부 |
텍스트와 입력
| borealis wiliwili | Aurore | |
|---|---|---|
| 번역 | 4개 언어: 영어, 프랑스어, 러시아어, 중국어 간체 | 15개 언어, 라이브러리·Cadran·힌트·접근성용 |
| 언어 전환 | 시작할 때 한 번 로드 | 앱 실행 중에 loadTranslations()로 |
| 문자열 조회 | 조회에 예외 사용 | 예외 없음, 어느 스레드에서도 안전 |
| Switch 밖의 글꼴 | Switch 스타일 글꼴 포함 | 자유 글꼴 Inter와 PromptFont, 중국어·일본어·한국어는 시스템 글꼴 |
| 키보드 | Enter, Escape, 화살표 정도 | 컨트롤러의 모든 버튼을 키에, 다시 지정 가능 |
| 포커스 | 숨겨진 박스가 받을 수 있었음 | 숨겨지거나 파괴된 뷰는 절대 갖지 않음 |
빌드와 플랫폼
| borealis wiliwili | Aurore | |
|---|---|---|
| 언어 | C++17 | C++20, RTTI와 예외 켜짐 |
| CMake 타깃 | borealis | Aurore::aurore, Aurore::test |
| 옵션 | PLATFORM_*, USE_*, BRLS_* | AURORE_*, 프리셋, 위치를 옮길 수 있는 설치 |
| 빌드 시스템 | CMake와 xmake | CMake만 |
| 플랫폼 | 데스크톱, Switch, PS Vita, PS4, Android, iOS, tvOS | 같은 플랫폼과 브라우저(Emscripten, WebGL 2) |
| 포함된 라이브러리 | 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 |
| Switch 사운드 | libpulsar 링크, 사운드는 꺼짐 | libpulsar 제거 |
| 링크 열기 | 어떤 주소든 셸을 거쳐 | http와 https만, 셸 없이 |
| 라이선스 | Apache 2.0 | borealis의 코드는 Apache 2.0, Cadran은 GPLv3이므로 Aurore로 만든 앱도 GPLv3 |
수정
그 과정에서 고친 것
borealis의 다른 포크, PlayGuard의 패치, 그리고 Aurore 자체 작업에서.
- 입력 차단 카운터가 더 이상 넘쳐서 한 바퀴 돌지 않습니다.
- 파괴된 뷰는 포커스에서 잊히고, 잃어버린 포커스는 부모 프레임으로 갑니다.
- 탐색이 숨겨진 프레임과 슬라이더를 건너뜁니다.
- SDL 컨트롤러: 뽑으면 닫히고, 다시 연결하면 모두 다시 읽으며, 한 프레임보다 짧은 입력도 놓치지 않습니다.
- 각 재활용 목록이 자신의 너비를 확인하고, 삭제 풀을 비우는 동안 대기열에 들어간 뷰도 유지됩니다.
- 글꼴 파서는 글꼴 자체 데이터 안쪽만 읽습니다.
- 로거가 줄마다 바로 기록합니다.
- 비활성화된 버튼은 더 이상 클릭되지 않습니다.
borealis 가족에게서 가져온 것
이 커밋들은 작성자와 cherry picked from 줄을 그대로 유지합니다. 다른 것들은 커밋에 출처를 밝히고 다시 작성했습니다.
옮겨 오기
앱이 바꾸는 것
대부분의 앱은 이름만 바꾸면 그대로 빌드되고 실행됩니다. 가이드에 모든 줄과 그다음 화면에서 확인할 것을 담았습니다.
- 이름: 호환 계층 없음, 모든
brls이름에 Aurore 이름이 있으며 찾아 바꾸기로 충분합니다. - 빌드: C++20,
Aurore::aurore타깃,AURORE_*옵션. - 라이선스: Cadran이 모든 앱에 링크되므로 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
프로젝트
문서화, 테스트, 릴리스
문서
이 사이트에 18개의 가이드와 API 레퍼런스가 있습니다. borealis에는 README와 위키가 있습니다.
지속적 통합
borealis의 빌드에 더해: 포맷 검사, ASan과 UBSan 아래의 데모, 테스트, 문서. 액션은 커밋에 고정.
릴리스
Conventional Commits와 release-please, 변경 기록, 코드 속
AURORE_VERSION_AT_LEAST.기여와 보안
기여를 위한
CONTRIBUTING.md, 취약점을 비공개로 알리기 위한SECURITY.md.템플릿
저장소 안의
template/: 데스크톱과 Switch용 최소 앱.고지
서드파티 고지를 모든 앱에 포함하고, 도구가 이 고지와 포함된 라이브러리의 버전을 확인합니다.
borealis에서 앱을 옮기나요?
가이드가 한 단계씩 안내합니다: 서브모듈, 빌드, 리소스, 모습, 이름.