화면이 접히고 펴지는 자리
아이폰 듀오 대응
접었다 펴도 레이아웃이 깨지거나 쓰던 내용이 사라지지 않게 고칩니다
기기 이름에 따라 화면을 나눈 코드는 다음 기기가 나오면 또 깨집니다.
해상도 하나가 늘어나는 게 아니라 여러 상태가 생깁니다
폴더블은 접었을 때 쓰는 바깥 화면과 펼쳤을 때 쓰는 안쪽 화면을 모두 갖습니다. 앱은 접힘, 펼침, 회전, 분할 화면, 상태가 바뀌는 순간까지 여러 상태에 놓입니다. 한 상태에 맞춰 고정한 화면은 나머지 상태에서 무너집니다. 글자가 잘리고, 버튼이 손이 닿지 않는 곳으로 밀리고, 쓰던 글이 사라집니다.
무엇을 하나요
-
기기 이름이 아닌 창 크기로 판단하게
지금 쓸 수 있는 창 크기와 안전 영역을 기준으로 화면을 정하도록 고칩니다. 기기 이름을 기준으로 나누면 새 기기가 나올 때마다 다시 손대야 하고, 분할 화면처럼 사용 중에 크기가 바뀌는 상황은 아예 잡지 못합니다.
-
펼친 화면에 맞는 구조
넓어진 화면에 한 열을 그대로 늘이지 않고, 목록과 상세를 나란히 두는 두 열 구조로 바꿉니다. 같은 화면도 접었을 때는 한 열로 돌아옵니다.
-
접히는 자리를 비워 둡니다
화면 가운데 접히는 부분에 탭 바나 입력창, 주요 버튼이 걸리면 누르기도 읽기도 어렵습니다. 상태마다 그 자리에 무엇이 오는지 확인해 옮깁니다.
-
접었다 펴도 쓰던 것이 남아 있게
쓰던 글과 스크롤 위치, 재생 위치가 전환한 뒤에도 그대로인지 확인합니다. 접었다 펴는 동작은 회전과 달라 따로 확인하지 않으면 조용히 사라집니다.
-
상태마다 직접 확인
접힘, 펼침, 회전, 분할 화면, 전환 중인 상태를 하나씩 두고 화면마다 어떻게 보이는지 기록합니다.
대응 기록
어떤 상태에서 무엇이 깨졌고 어떻게 고쳤는지 화면과 함께 정리해 드립니다. 다음에 새 화면을 만들 때는 이 기록에 적힌 상태 목록을 그대로 쓰시면 됩니다.
이렇게 진행합니다
-
앱과 화면 목록 전달
저장소 읽기 권한이나 설치 가능한 빌드와 꼭 멀쩡해야 하는 화면 몇 개를 알려 주세요.
-
상태마다 점검
접힘, 펼침, 회전, 분할 화면, 전환 중인 상태를 하나씩 살펴 어디가 깨지는지 기록합니다.
-
범위와 기간 합의
고칠 부분과 필요한 시간을 먼저 정합니다. 합의 전에는 비용이 발생하지 않습니다.
-
수정과 인계
레이아웃과 상태 보존을 손보고, 작업 기록과 함께 넘겨 드립니다.
이런 곳에 맞습니다
- 이미 스토어에 올라가 있고 화면이 한 크기에 맞춰져 있는 iOS 앱
- 아이패드나 분할 화면에서도 화면이 틀어지던 앱
- 기기 이름이나 고정 크기에 따라 화면을 나누는 코드가 남아 있는 팀
자주 묻는 질문
- 아이폰 듀오만 대응하나요?
- 아닙니다. 기기 이름이 아니라 지금 쓸 수 있는 창 크기로 판단하도록 고치므로 다른 폴더블과 아이패드, 분할 화면까지 같은 코드로 함께 대응합니다. 한 기기만 보고 분기를 늘리면 다음 기기에서 같은 일을 다시 하게 됩니다.
- 앱을 처음부터 다시 만들어야 하나요?
- 대부분은 그렇지 않습니다. 주로 레이아웃과 상태 보존을 고칩니다. 화면 구조 자체를 바꿔야 하는 앱이라면 점검 단계에서 먼저 알려 드리고 범위를 다시 정합니다.
- 실제 기기가 있어야 하나요?
- 없어도 됩니다. 시뮬레이터에서 상태를 바꿔 가며 확인합니다. 실기기가 있으면 손에 쥐었을 때 닿는 자리까지 함께 봅니다.
- React Native나 Flutter로 만든 앱도 되나요?
- 됩니다. 판단 기준은 같습니다. 다만 창 크기와 안전 영역을 가져오는 방법이 프레임워크마다 다르므로, 어떤 프레임워크를 쓰시는지 알려 주시면 가능한 범위를 먼저 확인해 드립니다.
- 앱 스토어 요구사항 대응과 무엇이 다른가요?
- 스토어 요구사항 대응은 심사를 통과하기 위해 타깃 버전을 올리는 일입니다. 이 상품은 심사와 상관없이 화면이 커지고 접히는 상황에서 레이아웃과 쓰던 내용을 지키는 일입니다. 둘을 함께 맡기시면 한 번에 정리해 드립니다.