Skip to content

✨ Feat: iPad 지원 — macOS 레이아웃 이식 #146

Description

@dbsghdz1

배경

App 타겟이 destinations를 지정하지 않아 Target+Templates.swift:45의 기본값 .init([.iPhone])을 쓰고 있습니다. iPhone 전용 빌드라 iPad에서는 호환 모드로 확대 실행됩니다.

App Store 리뷰에도 두 번 올라왔습니다.

  • 2026-08-03 (5★) "iPad로 사용하고 있는데 화면이 너무 작다"
  • 2025-12-13 (5★) "아이패드 최적화 및 위젯기능이 있으면 좋겠어요"

하려는 것

iPad 화면을 macOS와 동일한 레이아웃(사이드바 + 링크 목록 + 상세)으로 간다. 새로 그리지 않고 이미 만들어 둔 macOS UI를 재사용합니다.

이식 가능성은 확인했습니다.

  • MacFeature 73파일 6,082줄 중 AppKit 접점은 2곳뿐 — EnterKeyMonitor(NSEvent 키 모니터), LinkDetailView:172(NSWorkspace 사파리 열기)
  • 사이드바·설정 화면(2,710줄)은 TapTapMac 앱 타겟 안에 있어서 공용 모듈로 꺼내야 iPad에서 쓸 수 있습니다. 여기 AppKit 접점은 WindowAccessor(맥 전용, iPad 불필요)와 SidebarBackdropBlur(→ iPad는 .ultraThinMaterial)
  • DesignSystem·Core는 이미 [.iPhone, .mac]이라 .iPad만 추가하면 됩니다
  • RootView는 폭 860pt 기준 사이드바 자동 접기가 이미 있어 iPad 세로/가로 전환에 그대로 쓸 수 있습니다

작업 순서

  • 사이드바·설정·RootView를 TapTapMac에서 공용 셸 모듈로 추출 (맥 회귀 없는지 확인)
  • MacFeature 모듈·공유 모듈 destinations.iPad 추가
  • AppKit 2곳 #if os(macOS) 분기 (사파리 열기는 iOS에서 openURL)
  • App 타겟 destinations.iPad 추가 + iPad일 때 셸 레이아웃으로 분기
  • iPad 시뮬레이터 빌드·동작 확인
  • 터치 대응 점검 — 맥 UI는 호버 기반 인터랙션이 많아 그대로 두면 iPad에서 안 보이는 동작이 생깁니다
  • App Store iPad 스크린샷 (iPad 지원 표기하면 필수)

LinkDetailView에는 "사파리로 열기"가 이미 있는데 iOS에는 없습니다. 이 작업으로 iPad에는 자동으로 따라오고, iPhone에도 같이 넣을지는 별도로 정하면 좋겠습니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

✨ Feature새로운 기능 개발

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions