Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Source-Available License 1.0을 따른다. compatibility canary는 비공개·
때만 만든다 (명세 §8):
`@devslab/dds-tokens` (✅ 2026-08-13) → `dds-css` v1 인벤토리 (Core 6종 ✅ 2026-08-13, +13종 ✅ 2026-08-15) →
AskLinq 적용 → `dds-icons` (✅ 2026-08-15) → `dds-solid` + `site-kit` → 안드로이드 네이티브 값·테마·모션
(0.6.0, 2026-11-12, Maven Central — 테마·모션·부품·아이콘). 화면 틀과 `dds-compose-testing` 꾸러미를 담은 0.7.0은 만들었지만 **아직 Maven Central에 없다**. 정산나우가 폰에서 확인한 뒤에 올린다(D-052). RN·Ionic 패키지는 그 제품이 생길 때.
(0.6.0, 2026-11-12, Maven Central — 테마·모션·부품·아이콘). 0.7.0(2026-11-13, Maven Central)에서 화면 틀과 `dds-compose-testing` 꾸러미가 생겼다(D-052). RN·Ionic 패키지는 그 제품이 생길 때.

## 입력·선택·공유 달력 확장

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ Priorities live in [`docs/backlog.md`](docs/backlog.md). Packages are created
only when a consumer exists (spec §8):
`@devslab/dds-tokens` (✅ 2026-08-13) → `dds-css` v1 inventory (Core 6 ✅ 2026-08-13, +13 ✅ 2026-08-15) →
AskLinq adoption → `dds-icons` (✅ 2026-08-15) → `dds-solid` + `site-kit` → native Android values, theme and motion
(0.6.0, 2026-11-12, on Maven Central — theme, motion, components, icons). 0.7.0, the screen frame and the `dds-compose-testing` artifact, is built but **not on Maven Central yet**: it waits for JeongsanNow's check on its phone (D-052). RN and Ionic packages only when such a product exists.
(0.6.0, 2026-11-12, on Maven Central — theme, motion, components, icons). 0.7.0 (2026-11-13, on Maven Central) adds the screen frame and the `dds-compose-testing` artifact (D-052). RN and Ionic packages only when such a product exists.

## Input, choice and shared calendar additions

Expand Down
6 changes: 2 additions & 4 deletions android/CHANGELOG.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,13 @@
`kr.devslab:dds-android-tokens`, `kr.devslab:dds-compose`, 그리고 0.7.0부터 `kr.devslab:dds-compose-testing`은 한 버전을 쓰고, 웹 패키지와는
버전이 따로다(D-048). 릴리스는 `android-v<버전>` 태그로 낸다.

## 0.7.0 — 아직 배포 전
## 0.7.0 — 2026-11-13

화면 틀(D-052). 정산나우가 펼친 폰에서 찾았다. 화면마다 시작선이 달랐고(187, 147, 127dp, 또는 끝에서
끝까지), 레일은 탭 화면에만 있었고, 상단 줄은 창 끝에서 본문은 가운데에서 시작했다. DDS에 숫자는 있는데
그 숫자를 지키는 부품이 없었다. 이제 부품이 있다. 가이드 §13.

**아직 Maven Central에 없다.** 정산나우가 로컬 빌드로 옮겨 폰의 창 세 가지(접힌 475×751, 펼친 세로
704×933, 펼친 가로 933×704)에서 확인한 뒤에 배포한다. 그때까지는 이 레포에서 `./gradlew publishToMavenLocal`로
만든다.
정산나우가 로컬 빌드로 옮겨 배포 전에 확인했다. 앱의 모든 화면을 DDS 부품으로 옮기고, 475×751·704×933·933×704에서 밝은·어두운 화면으로(475×751은 글자 200%도) `DdsFrameCheck`와 `assertSameLines`로 쟀다 — 1dp 넘게 어긋난 시작선이 없었다. 펼친 폰의 전체 연결 테스트에서 DDS 탓의 실패는 없었다. 거기서도 확인하지 못한 것: 폰을 실제로 가로로 돌린 것, TalkBack, 접힌 폰의 전체 테스트.

**새로 생긴 것**

Expand Down
7 changes: 2 additions & 5 deletions android/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,14 @@
`kr.devslab:dds-android-tokens`, `kr.devslab:dds-compose` and (from 0.7.0) `kr.devslab:dds-compose-testing` share one version,
separate from the web packages (D-048). Releases are cut by an `android-v<version>` tag.

## 0.7.0 — not released yet
## 0.7.0 — 2026-11-13

The screen frame (D-052), from JeongsanNow on an unfolded phone: screens started on
different lines (187, 147, 127dp, or edge to edge), the rail was there on tab screens
only, and the top bar started at the window's edge while the body started in the middle.
DDS had the numbers and no part that kept them. Now it has the parts. Guide §13.

**Not on Maven Central yet.** The release waits for JeongsanNow to move onto it from a
local build and check it on its phone in three windows (folded 475×751, unfolded upright
704×933, unfolded on its side 933×704). Until then it is built from this repository with
`./gradlew publishToMavenLocal`.
JeongsanNow moved onto it from the local build and checked it before the release: every screen of its app on the DDS parts, at 475×751, 704×933 and 933×704 in light and dark (and 475×751 at 200% text), measured with `DdsFrameCheck` and `assertSameLines` — no start line off by more than 1dp; its whole device suite on the unfolded phone had no DDS failure. Not checked there: the phone actually turned on its side, TalkBack, the folded phone's whole suite.

**What is new**

Expand Down
4 changes: 1 addition & 3 deletions android/README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,7 @@ dependencies {
}
```

**Maven Central에 있는 것은 0.6.0이다.** 0.7.0(화면 틀, 가이드 §13, 그리고 `dds-compose-testing` 꾸러미)은
만들었지만 아직 Maven Central에 없다. 정산나우가 폰에서 확인한 뒤에 올린다. 지금 쓰려면 로컬 저장소에
만들어 넣고(아래) 이렇게 받는다.
0.7.0에서 화면 틀(가이드 §13)과 `dds-compose-testing` 꾸러미가 생겼다.

```kotlin
dependencies {
Expand Down
5 changes: 1 addition & 4 deletions android/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,7 @@ dependencies {
}
```

**0.6.0 is the version on Maven Central.** 0.7.0 (the screen frame, guide §13, and the
`dds-compose-testing` artifact) is built but not on Maven Central yet: it waits for
JeongsanNow's check on its phone. To use it now, build it into the local repository (below),
then:
0.7.0 adds the screen frame (guide §13) and the `dds-compose-testing` artifact:

```kotlin
dependencies {
Expand Down
2 changes: 1 addition & 1 deletion docs/backlog.md
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ D-048. 가이드 [`mobile-native.ko.md`](mobile-native.ko.md), 설계
페이지에서 레일·시트·다이얼로그의 픽셀, 제품 바탕 위의 컨트롤 테두리 3:1.
- [ ] **입력칸 요청(정산나우)** — 글자의 사본을 남기지 않는 입력칸, 초점이 가면 화면 안으로 끌어오기
(bring-into-view), 최소 줄 수(`minLines`). 그리고 단계 화면의 틀.
- [ ] **화면 틀(0.7.0) — 만들었다, 소유자의 머지·배포 결정 대기(2026-11-12).** 브랜치 `feat/android-screen-frame`.
- [x] **화면 틀(0.7.0) — 배포했다(#147, `android-v0.7.0`, 2026-11-13).** 정산나우가 로컬 빌드로 옮겨 배포 전에 확인했다. 앱의 모든 화면을 DDS 부품으로 옮기고, 475×751·704×933·933×704에서 밝은·어두운 화면으로(475×751은 글자 200%도) `DdsFrameCheck`와 `assertSameLines`로 쟀다 — 1dp 넘게 어긋난 시작선이 없었다. 펼친 폰의 전체 연결 테스트에서 DDS 탓의 실패는 없었다. 거기서도 확인하지 못한 것: 폰을 실제로 가로로 돌린 것, TalkBack, 접힌 폰의 전체 테스트.
`DdsAppFrame`, 새 `DdsScaffold`, `DdsBodyColumn`·`ddsBody`·`ddsBodyLines`, 본문 선에 서는 `DdsTopBar`
(`onBack`, 두 줄 제목), `DdsCenteredColumn`·`DdsCenteredTitle`, `DdsPaneList`·`DdsPaneItem`, 새 꾸러미
`dds-compose-testing`(`DdsFrameCheck`). 기기 테스트 전체 실물 폰 접은 화면(1248x1972) 170개, 펼친 화면(2448x1848) 174개 실행,
Expand Down
2 changes: 1 addition & 1 deletion docs/decisions.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ dark), the menu loses its shadow, and brand text is newly checked on the subtle

## D-052 — 화면 틀: 창 폭이 메뉴를 정하고, 본문은 한 기둥에 선다 (2026-11-12)

**상태.** 만들었다. 아직 배포 전(안드로이드 0.7.0, 브랜치 `feat/android-screen-frame`). 정산나우가 로컬 빌드로 옮겨 실물 폰의 창 세 가지에서 확인한 뒤에 배포한다. 설계 문서: `docs/superpowers/specs/2026-11-12-dds-android-screen-frame-design.ko.md`(설계와 달라진 것은 그 문서의 "달라진 것").
**상태.** 배포했다(안드로이드 0.7.0, #147, `android-v0.7.0`, 2026-11-13). 정산나우가 로컬 빌드로 옮겨 배포 전에 확인했다. 앱의 모든 화면을 DDS 부품으로 옮기고, 475×751·704×933·933×704에서 밝은·어두운 화면으로(475×751은 글자 200%도) `DdsFrameCheck`와 `assertSameLines`로 쟀다 — 1dp 넘게 어긋난 시작선이 없었다. 펼친 폰의 전체 연결 테스트에서 DDS 탓의 실패는 없었다. 거기서도 확인하지 못한 것: 폰을 실제로 가로로 돌린 것, TalkBack, 접힌 폰의 전체 테스트. 설계 문서: `docs/superpowers/specs/2026-11-12-dds-android-screen-frame-design.ko.md`(설계와 달라진 것은 그 문서의 "달라진 것").

**문제.** 정산나우에서 소유자가 펼친 폰으로 찾았다. 화면마다 본문 시작선이 달랐고(펼친 가로에서 187,
147, 127, 끝에서 끝까지), 왼쪽 레일은 탭 화면에만 있었으며, 상단 줄은 화면 왼쪽 끝에서 본문은 가운데에서
Expand Down
4 changes: 4 additions & 0 deletions docs/mobile-native.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,10 @@ for (window in listOf(DpSize(475.dp, 751.dp), DpSize(704.dp, 933.dp), DpSize(933
check.assertSameLines()
```

크기는 `DdsAppFrame` 바깥에서 고정한다. 틀 없이 그린 부품은 `ddsFrame()`이 창을 읽어 여백을 정하는데, 이때
`ForcedSize`가 바꾸지 못하는 기기의 실제 창을 읽는다. 그런 테스트에서는 `LocalDdsFrame`을 직접 넣는다. 정산나우가
자기 테스트에서 이것을 만났다.

`look`은 아래가 아니면 실패한다. 실패 문구는 화면 이름, 잰 값(dp), 맞게 해 주는 DDS 부품을 말한다.

1. 본문이 화면에 정확히 하나 있다(`DdsBodyColumn`이나 `ddsBody()`, 또는 `DdsCenteredColumn` 하나).
Expand Down
4 changes: 4 additions & 0 deletions docs/mobile-native.md
Original file line number Diff line number Diff line change
Expand Up @@ -1128,6 +1128,10 @@ for (window in listOf(DpSize(475.dp, 751.dp), DpSize(704.dp, 933.dp), DpSize(933
check.assertSameLines()
```

Force the size around `DdsAppFrame`. A part drawn with no frame around it (`ddsFrame()` falls back to
the window) takes its gutter from the device's real window, which `ForcedSize` does not change; in such a
test provide `LocalDdsFrame` yourself. JeongsanNow met this in its own tests.

`look` fails, naming the screen, the measured numbers in dp and the DDS part that gives
the right result, unless:

Expand Down
Loading