← 기술 실천으로 돌아가기

Apple

iPhone Duo가 옛 앱을 깨뜨릴까? 검은 여백, 레이아웃 어긋남, 터치 실패는 어떤 앱에 잘 나오나

약 11분 읽기

흰 iPhone을 손에 들고 있다. 홈 화면에 앱 아이콘이 줄지어 있고, 뒤에는 열린 MacBook이 있다
아이콘이 휴대폰 화면 안에 모여 있다. Duo에서 이 크기가 유지되는 동안이 호환 창이다.

막 받은 iPhone Duo를 펼쳐도, 쓰던 앱은 대부분 실행됩니다. 폴더블용으로 다시 그리지 않았다고 바로 죽는 구조가 아닙니다. iOS 26 SDK 이전으로 빌드한 바이너리는 펼친 안쪽 디스플레이 한가운데, 익숙한 휴대폰 크기 창에 남습니다. 나머지 영역이 비어 보이고, 사람들이 이것을 검은 여백이라고 부릅니다.

레이아웃이 늘어나거나 버튼이 빗나가는 것은 다른 고장입니다. 개발자가 iOS 27 또는 27.1 SDK로 다시 빌드하고, 접힘에 따라 창이 커지기 시작한 뒤에 드러납니다. 고정된 화면 크기로 컨트롤을 두면, 호환 창이 사라지는 순간 그 가정이 보입니다.

먼저 결론

옛 앱은 대체로 켜집니다. 검은 여백은 iOS 26 이하 SDK에 시스템이 남겨 둔 호환 창이지, 크래시가 아닙니다. 어긋남과 터치 실패는 창이 이미 커진 뒤에도 코드가 「이 크기, 이 방향, iPhone 아니면 iPad」로 배치할 때 납니다.

아래는 2026년 10월 15일에 대조한 자료입니다. 화면 크기와 출시일은 Apple iPhone Duo 제품 페이지, 세 가지 창은 Prepare your app for iPhone Duo, 메인 스크린과 방향과 안전 영역은 같은 주제의 Tech Talk를 따릅니다. App Store 인기 앱을 실기에서 하나씩 연 기록이 아니므로, 말하는 것은 코드 유형과 현상의 대응입니다. 특정 브랜드가 「이미 망가졌다」고 단정하지 않습니다.

옛 앱은 iPhone Duo에서 열리는가

열립니다. 준비 문서는 모든 앱이 iPhone Duo에서 실행된다고 적습니다. 달라지는 것은 창이 안쪽 화면, 바깥 화면, Split View를 따라가느냐입니다.

iPhone Duo는 Apple의 첫 폴더블 iPhone입니다. 안쪽은 7.6인치로, iPhone 18 Pro Max보다 50% 큽니다. 닫으면 바깥은 5.4인치이고, 화면 면적은 iPhone 18 Pro의 90%를 넘습니다. 안팎의 화면 비율은 같습니다. 예약은 미국 시각 2026년 10월 16일 오전 5시, 판매는 10월 23일입니다. 이 숫자는 제품 페이지의 것이고, 추측 글의 숫자가 아닙니다.

시스템이 보는 것은 그 바이너리를 어떤 SDK로 컴파일했는가입니다. 앱 이름도, iPhone 18 Pro에서의 완성도도 기준이 아닙니다.

3
컴파일 SDK로 나뉜 창
7.6″
안쪽 화면. 제품 페이지 기준
10.23
2026년 미국 판매 시작
빌드에 쓴 SDK 펼친 안쪽 디스플레이 문서가 더 적은 내용
iOS 26 이하 가운데, 주변은 비어 있음 닫으면 콘텐츠는 상태 표시줄과 카메라의 왼쪽에 놓임
iOS 27 안쪽의 대부분을 채우되, 오른쪽 상태 표시줄은 피함 펼치면 창이 넓어지고, 접으면 바깥 화면으로 돌아감
iOS 27.1 이후 안쪽을 끝까지 사용 도구 막대와 탭 막대는 상태 표시줄 아래에 세로로 배치. 출시 전에 내용이 따라오는지 확인

앞의 두 열은 준비 문서의 뜻입니다. 「닫았을 때 콘텐츠가 상태 표시줄과 카메라 왼쪽에 있다」는 문장은 iOS 26 이하 SDK에 적힌 것입니다. iOS 27 이후는 펼치면 안쪽을 채우고, 접으면 바깥으로 돌아간다고 되어 있습니다. 세 단계의 바깥 화면을 같은 검은 테두리로 그리지 마십시오.

안쪽 화면 세 가지 스케치. 옛 SDK는 가운데에 여백, iOS 27은 오른쪽이 비고, iOS 27.1은 끝까지 채우며 왼쪽에 세로 막대
그림은 안쪽 화면의 차이만 보여 줍니다. 닫은 바깥 화면은 상태 표시줄과 카메라가 비운 쪽을 따로 봐야 합니다.

검은 여백은 누가 남기는가

여백은 앱이 그린 장식이 아닙니다. iOS 26 SDK 이전 바이너리에 대해 시스템은 7.6인치 안쪽으로 늘리지 않고, 그 바이너리가 이미 아는 크기에 둡니다. 남은 영역은 비어 있습니다. 그 창 안의 버튼은 대개 그대로 눌립니다.

닫은 면은 다른 그림입니다. 이 SDK에 대해 준비 문서가 적은 바깥 화면은, 콘텐츠가 상태 표시줄과 카메라의 왼쪽에 나온다는 것입니다. 바깥 화면은 더 넓고 더 납작하며, 제품 페이지도 자주 쓰는 컨트롤을 옆으로 옮겨 세로 공간을 콘텐츠에 남긴다고 합니다. 안쪽의 검은 테두리를 「접어도 사방이 검다」로 그대로 옮기지 마십시오.

바깥 화면은 안쪽 레터박스를 줄인 것이 아니다

너무 멀리 퍼지는 문장은 「커버 화면은 그냥 일반 iPhone이라 옛 앱은 바깥에서 끝까지 찬다」입니다. Apple이 적은 것은 콘텐츠가 상태 표시줄과 카메라를 피한다는 점입니다. 가득 차는지, 컨트롤이 옆에 있는지는 그 SDK 설명을 따르십시오. 안쪽 호환 창을 커버에 붙이지 마십시오.

여백은 개발자가 SDK를 바꿀 때까지 남습니다. iOS 27은 빈 영역을 분명히 줄이고, iOS 27.1은 화면 끝까지 씁니다. 레이아웃을 고치지 않은 재컴파일은 여백을 없애고 다음 절의 어긋남을 불러옵니다. 판매 전에 27.1 검증과 제출을 끝내는 팀은 제한적이므로, 10월 23일에도 호환 창이 보입니다. 이것은 일정이지, 스토어 장애 명단이 아닙니다.

검은 여백이 잘 보이는 앱은 무엇인가

기준은 하나입니다. 이 바이너리가 아직 iOS 26 SDK 이전으로 빌드되었는가. 게임인지, 대기업 앱인지는 규칙을 바꾸지 않습니다. 안쪽을 펼치면 이 세대는 모두 가운데 창에 들어갑니다.

먼저 눈에 띄는 것은 업데이트가 드문 도구입니다. 주차, 출입, 사내 결재, 몇 년째 그대로인 업종 앱. 새 SDK로 다시 빌드한 사람이 없는 경우가 많습니다. 사용자는 검은 여백을 보고, 창 안의 목록과 버튼은 대개 아직 동작합니다.

게임은 따로 봐야 합니다. 휴먼 인터페이스 가이드라인은 모든 자세에서 화면을 채우고, 레터박스보다 화면 비율 변경을 우선하라고 합니다. 여백을 피할 수 없으면 그 자리에 그림이 있어야 합니다. 새 SDK 이후에도 좌우나 위아래에 검정이 남으면, 그것은 게임 자신의 화면 전략이지 시스템 호환 창이 아닙니다. 두 여백은 비슷해 보이지만 책임 층이 다릅니다. 특정 게임이 어느 쪽인지는 스토어 빌드의 SDK를 봐야 알 수 있고, 이 글이 대신 판정하지 않습니다.

레이아웃이 어긋나기 쉬운 앱은 무엇인가

아직 호환 창 안에 있는 동안에는 어긋남이 거의 없습니다. 창 크기가 그대로라, 휴대폰용으로 그린 화면이 맞습니다. 어긋남은 접기, 회전, Split View가 창을 바꾼 뒤에도 옛 크기 가정이 남을 때 시작됩니다.

준비 문서가 이름을 댄 작성 방식은 늘리거나, 자르거나, 컨트롤을 보이지 않는 곳에 둡니다.

  • 화면 전체를 자기 창으로 쓰기. UIScreen.main.bounds, 실행 때 한 번만 재는 크기, UIWindow(frame: UIScreen.main.bounds). 접힘은 같은 사용 도중에 창을 바꾸므로, 시작 때 숫자는 낡습니다. Tech Talk는 화면이 둘인 기기에서 main screen이 모호하고, 이후 릴리스에서 폐기될 것이라고 합니다.
  • 방향으로 레이아웃을 고르기. 안쪽 디스플레이는 앱이 선언한 지원 방향을 따르지 않습니다. UIDevice 방향이나 interfaceOrientation은 창의 실제 너비·높이와 맞지 않습니다.
  • 「iPhone인가」로 레이아웃을 나누기. userInterfaceIdiom == .phone 또는 .pad, 그리고 regular 너비를 iPad로 보는 분기. 안쪽의 iPhone 앱은 regular 너비가 될 수 있습니다.
  • 알려진 높이 표. bounds.height == 844 같은 비교는 Duo의 창과 맞지 않습니다.
  • 꽉 채워 자르는 히어로와 영상. scaleAspectFill은 더 넓은 화면에서 주제를 잘라 냅니다.

문서와 맞는 예입니다. 메모 앱을 iOS 26 SDK로 빌드하면 펼쳤을 때 가운데에 여백이 있고, 버튼은 원래 자리에 있으며, 메모는 저장됩니다. iOS 27.1 SDK로 바꾸면 창이 안쪽을 채우고, 시스템은 탭 막대를 상태 표시줄 아래에 세로로 둡니다. 아래 버튼의 Y가 실행 때 화면 높이라면, 막대 위나 콘텐츠 밖에 떨어집니다. 입력은 같고, 바뀐 것은 창입니다.

regular 너비는 iPad가 아니다

가장 흔한 착각은 너비가 regular라는 이유만으로 iPad 전용 사이드바로 바꾸는 것입니다. 그 분기는 예전에는 iPad에서만 돌았습니다. iPhone Duo 안쪽도 regular 너비를 줄 수 있어, 사이드바가 이 휴대폰 위에 나타납니다.

터치가 빗나가거나 미리보기가 뒤집히는 앱은 무엇인가

조작 문제는 레이아웃 문제의 다음 층입니다. 컨트롤은 있는데 손가락이 다른 곳을 누르거나, 렌즈 방향과 미리보기가 반대입니다.

방향을 잠근 게임과 영상

안쪽 화면은 선언한 방향을 무시합니다. 가로만 만들고 버튼을 한쪽에 고정한 게임은, 접거나 다른 자세로 바꾼 뒤 가상 스틱이 안전 영역에 겹치거나 옛 비율의 여백을 유지합니다. 가이드는 화면 비율을 바꿔 채우는 쪽입니다. 여백을 피할 수 없으면 맨 검은 띠가 아니라 그림을 두십시오.

렌즈를 직접 고르는 카메라와 통화

접으면 렌즈가 사람을 향해 어느 쪽을 보는지가 바뀝니다. 「전면 / 후면」을 직접 고르는 카메라 앱은 열고 닫을 때 렌즈를 바꿔야 합니다. 카메라 경험 Tech Talk는 AVCaptureDeviceDirectionCoordinator를 쓰라고 합니다. 바깥 화면의 코디네이터는 후면 카메라를 앞을 본다고 보고하고, 안쪽은 뒤를 본다고 보고합니다. 쓰지 않으면 미리보기 미러가 틀리거나, 연 뒤에도 방금 그 렌즈가 남습니다. 이것은 검은 여백이 아니라 조작 문제입니다.

직접 그린 하단 막대와 히트 영역

시스템 내비게이션 바, 도구 막대, 탭 막대는 안전 영역 밖에 놓이고 상태 표시줄과 카메라를 스스로 피합니다. 직접 그린 하단 막대는 저절로 세로가 되지 않습니다. 바깥 화면과 가로로 둔 안쪽에서는 표준 컨트롤이 옆에 있습니다. 세로로 든 안쪽만 가로 막대를 남길 높이가 있습니다. 안전 영역은 자주 비대칭이고, Split View에서는 세로 버튼이 왼쪽에 나올 수 있습니다. 「막대는 항상 아래, 좌우는 대칭」으로 히트를 계산하면 빈 곳을 누릅니다.

iPad의 iPhone 호환 모드와 같은가

같지 않습니다. iPad에서 확대되는 iPhone 창이 답하는 질문은 「이 바이너리에 iPad 화면이 없다」입니다. Duo의 세 창이 답하는 질문은 「어떤 SDK로 컴파일했는가」입니다. 한 프로젝트에 둘 다 있을 수 있지만, 서로를 대신하지 못합니다.

깨지는 시점도 다릅니다. iPad 호환 모드는 사용 도중에 기기를 접었다고 창 크기가 바뀌지 않습니다. Duo는 바뀝니다. viewIsAppearing에서 한 번 재면 충분하던 작성은 여기서 부족합니다. 크기는 layoutSubviews, viewDidLayoutSubviews, 또는 크기가 바뀌기 직전의 콜백에서 다시 읽으십시오. SwiftUI는 GeometryReader나 onGeometryChange를 씁니다. 스케일은 traitCollection.displayScale이고, UIScreen.main.scale이 아닙니다. 창은 UIWindow(windowScene:)로 만들고, UIScreen을 저장해 두지 마십시오.

가을 새 기기 전에 릴리스 회귀와 작은 베타 레인을 나눴다면, 그 계획은 「회귀를 어느 레인에 둘지」에 답한 것입니다. Duo에서는 같은 사례를 닫은 상태, 펼친 상태, 회전, Split View에서 각각 봐야 합니다. 고정 해상도 시뮬레이터 한 장으로는 부족합니다. 시뮬레이터는 Xcode 27.1이 있는 Mac이 필요합니다. 그 머신을 일상 작업과 어떻게 나눌지는 macOS 27 테스트 환경을 어떻게 꾸릴지를 보십시오. 창 규칙 자체는 Mac을 빌리는지에 달려 있지 않습니다. 18 Pro 제품군의 화면 숫자와 Duo의 7.6인치를 한 출처로 섞지 마십시오. Duo의 크기와 50%는 제품 페이지 숫자이고, 정리 글은 iPhone 18 Pro 사양 논의입니다.

이 글이 대신 답할 수 없는 것은 무엇인가

특정 앱이 오늘 검은 여백을 보이는지는 스토어 빌드의 SDK를 보거나, Xcode 27.1의 iPhone Duo 시뮬레이터에서 그 빌드를 열어야 합니다. 준비 문서는 Device Hub의 크기 조절 시뮬레이터와, macOS 27에서 iPhone 미러링 창을 극단적인 너비와 높이로 늘리는 방법도 적습니다. 완전한 네이티브 경험은 Duo 시뮬레이터가 맞다고 되어 있습니다. 이 글은 출시된 앱에 대해 그 확인을 하지 않았습니다.

힌지 주름이 한 픽셀을 가리는지, 게임의 여백이 의도적인지, 바깥 측면 컨트롤이 직접 만든 제스처를 막는지 모두 그 자세에서 봐야 합니다. 문서는 어느 층을 의심할지 알려 줍니다. 그 층이 당신의 바이너리에서 이미 고쳐졌는지는 알려 주지 않습니다.

그렇다면 옛 앱은 어디까지 깨지는가

iOS 26 SDK 이하로 빌드한 앱은 실행됩니다. 펼쳤을 때의 전형은 안쪽 검은 여백이지, 크래시가 아닙니다. 닫으면 콘텐츠는 상태 표시줄과 카메라를 피합니다. 그것을 안쪽과 같은 테두리라고 말하지 마십시오.

검은 여백이 먼저 보이는 것은 SDK를 아직 바꾸지 않은 바이너리, 특히 업데이트가 드문 도구입니다. 어긋남이 먼저 보이는 것은 iOS 27이나 27.1로 옮겼지만 화면 싱글톤, 고정 높이, 방향, 「iPhone / iPad」로 계속 배치하는 화면입니다. 터치가 빗나가기 쉬운 것은 방향을 잠근 게임, 렌즈 방향을 직접 다루는 카메라, 직접 그린 하단 막대입니다.

표준 내비게이션 바와 탭 막대는 시스템을 따라갑니다. 직접 계산한 좌표는 따라가지 않습니다. 한 앱을 확인하려면 그 바이너리를 Duo 시뮬레이터나 실기에서 여십시오. iPhone 18 Pro에서 정상이라고 접은 뒤에도 정상이라고 볼 수는 없습니다.

사이트에서 계속 볼까요?

이 글은 창 규칙과, 검은 여백·어긋남·터치 실패가 어떤 코드에서 나는지로 끝납니다. 관련 테스트 글은 블로그에, 제품 설명은 홈에 있습니다.