핵심 요약
펫프렌즈가 5.1.1 가이드라인 리젝에 대응하기 위해 SwiftUI 기반 게스트 모드를 Repository 패턴과 DI Container로 구현하고 Mock 데이터를 활용해 심사를 통과한 사례입니다.
구현 방법
- Repository 패턴으로 데이터 책임 분리: MenuRepository 프로토콜과 DefaultMenuRepository, NetworkDataSource 의존 구조 도입
- DI Container로 태세 전환 자동화: isGuestMode로 데이터 소스를 MockNetworkDataSource로 교체하고 setGuestMode로 의존성 재설정
- MockNetworkDataSource로 지연 시뮬레이션: 0.3~0.8초 지연 후 MockData 메뉴를 반환
- View 분리: GuestMainView 도입 및 환경 배너 DEV/GUEST를 통해 구동 맥락 명확화
주요 결과
- App Store 심사 통과 및 5.1.1 이슈 해결
- 서버 API 변경에 대한 확장성 확보
- 게스트 모드 도입으로 디버깅과 유지보수성 향상
