e-NIE VisionOS App

e-NIE 로고

e-NIE VisionOS App — Apple Vision Pro 신문 뷰어

e-NIE 웹 플랫폼의 확장 프로젝트로, Apple Vision Pro에서 신문 면지를 공간 컴퓨팅(Spatial Computing) 환경으로 열람할 수 있는 visionOS 네이티브 앱입니다. 한국언론진흥재단의 다하미(DAHAMI) API를 통해 전국 80여 개 신문사의 당일 지면을 Vision Pro의 넓은 공간에서 실물 크기로 펼쳐 읽을 수 있습니다.

(주)민트기술은 웹, iOS/Android 네이티브는 물론 visionOS까지 Apple의 최신 공간 컴퓨팅 플랫폼에 대한 개발 역량을 보유하고 있습니다.


프로젝트 개요

플랫폼Apple visionOS (Apple Vision Pro)
프로젝트 유형공간 컴퓨팅 네이티브 앱
연관 프로젝트e-NIE 웹 플랫폼
데이터 소스한국언론진흥재단 다하미(DAHAMI) API
주요 기술Swift · SwiftUI · RealityKit · RealmSwift · SDWebImage
아키텍처MVVM + Service/Repository 패턴

앱 스크린샷

메인 화면

e-NIE VisionOS App 메인화면 — Vision Pro 공간에 떠 있는 신문사 목록과 인사말

Vision Pro를 착용하면 거실과 같은 실제 공간 위에 글래스 모피즘(Glass Morphism) 스타일의 반투명 윈도우가 떠오릅니다. 당일 날짜와 함께 전체 신문 보기 버튼, 그리고 각 신문사를 가로 스크롤로 탐색할 수 있는 카드 목록이 표시됩니다.

날짜 선택

e-NIE VisionOS App 날짜 선택 — 캘린더 UI로 과거 신문 탐색

visionOS 네이티브 캘린더 UI를 통해 2009년 1월부터 현재까지의 과거 신문을 자유롭게 탐색할 수 있습니다. 원하는 날짜를 선택하면 해당 일자의 전국 신문 면지가 자동으로 다운로드됩니다.

신문 뷰어 — 2단 면지 보기

e-NIE VisionOS App 신문 뷰어 — 2단 면지 펼침 보기

Vision Pro의 넓은 시야를 활용하여 신문 면지를 2페이지씩 나란히 펼쳐 볼 수 있습니다. 실제 종이 신문을 펼친 듯한 경험을 공간 컴퓨팅으로 재현합니다. 하단 오너먼트(Ornament)의 이전/다음 버튼으로 면지를 탐색하며, 좌우 스와이프 제스처도 지원합니다.

신문 뷰어 — 확대 보기

e-NIE VisionOS App 신문 뷰어 확대 — 핀치 줌으로 기사 세부 내용 확인

핀치 줌(Pinch Zoom)더블탭 확대로 기사 세부 내용을 선명하게 확인할 수 있습니다. UIKit의 UIPinchGestureRecognizer를 SwiftUI로 브릿징하여 정밀한 줌·패닝을 구현했으며, 줌 상태에서도 이미지 경계를 벗어나지 않도록 오프셋 클램핑 로직이 적용되어 있습니다.

신문 이미지 상세 — Spatial 3D 보기

e-NIE VisionOS App 신문 이미지 상세 — RealityKit Spatial 3D 렌더링

개별 면지를 선택하면 RealityKit의 ImagePresentationComponent를 활용하여 신문 이미지를 Spatial 3D로 렌더링합니다. AI 기반 깊이 추정을 통해 2D 이미지에 입체감을 부여하며, 2D/3D 모드 전환 토글도 제공합니다. Vision Pro만의 공간감을 통해 신문 사진과 기사를 더욱 생생하게 감상할 수 있습니다.


주요 기능

신문 자동 다운로드 및 오프라인 캐싱

  • 앱 실행 시 당일 신문이 로컬 DB(Realm)에 없으면 다하미 API에서 자동 다운로드
  • 한 번 다운로드한 신문은 로컬 Realm DB에 저장되어 오프라인에서도 열람 가능
  • 당일 신문이 아직 발행되지 않은 경우 전일 신문을 자동으로 표시
  • 일일 약 9,000개 면지(80여 개 신문사)에서 중복 면지를 제거하여 약 2,000개로 정제 후 저장
  • 이미지 캐시는 SDWebImage로 관리 — 메모리 100MB(최대 50장), 디스크 500MB(7일 만료)

메인 화면

  • 전체 신문 보기: 모든 신문사의 면지를 API 제공 순서대로 연속 열람
  • 신문사별 선택 보기: 가로 스크롤 카드에서 원하는 신문사를 골라 해당 신문사 면지만 열람
  • 날짜 선택: 캘린더에서 과거 날짜를 선택하여 해당 일자 신문 조회 (2009년 1월~)

신문 뷰어

  • 2페이지 펼침 보기: 실제 신문을 펼친 듯한 2단 레이아웃 (첫 페이지는 1단 표지)
  • 핀치 줌 + 더블탭 확대: 정밀한 확대/축소와 패닝으로 기사 세부 내용 확인
  • 좌우 스와이프 탐색: 드래그 제스처(70pt 임계값)로 자연스러운 페이지 넘김
  • 이미지 프리페칭: 다음 4개 면지를 백그라운드에서 미리 로드하여 끊김 없는 탐색
  • Spatial 3D 렌더링: RealityKit ImagePresentationComponent로 AI 깊이 추정 기반 입체 표현

기술 스택 및 아키텍처

기술 스택

플랫폼visionOS (Apple Vision Pro)
언어Swift
UI 프레임워크SwiftUI + RealityKit
로컬 DBRealmSwift (오프라인 우선 아키텍처)
이미지 로딩SDWebImage / SDWebImageSwiftUI
네트워크Alamofire (Router 패턴)
패키지 관리Swift Package Manager (SPM)

아키텍처: MVVM + Service/Repository

앱은 MVVM(Model-View-ViewModel) 패턴에 Service/Repository 계층을 추가한 클린 아키텍처를 따릅니다.

  • Model: News, NewsCompany — 도메인 모델과 Realm 오브젝트(NewsLocal, NewsCompanyLocal) 분리, toModel() 변환 메서드로 매핑
  • ViewModel: NewsListVM, NewsVM — ObservableObject 기반 상태 관리, 페이지네이션·로딩 상태·줌 오프셋 계산
  • View: SwiftUI 뷰 계층 — visionOS 네이티브 .glassBackgroundEffect(), Ornament, WindowGroup(.plain) 활용
  • Service: NewsService — API와 DB Repository를 조율하는 파사드 계층
  • Repository: NewsAPIRepository(Alamofire Router) + NewsDatabaseRepository(Realm) — 데이터 소스 추상화

visionOS 고유 기술 활용

  • WindowGroup(.plain): 시스템 크롬 없는 깔끔한 윈도우 스타일, .windowResizability(.contentSize)로 콘텐츠 기반 동적 크기 조절
  • .glassBackgroundEffect(): visionOS 특유의 반투명 유리 재질 배경 효과
  • RealityKit Spatial 3D: ImagePresentationComponent로 2D 신문 이미지를 AI 깊이 추정 기반 3D로 변환
  • Ornament: 윈도우 하단에 부착되는 visionOS 네이티브 컨트롤 바 (이전/다음 네비게이션)
  • UIKit 제스처 브릿징: SwiftUI에서 지원하지 않는 정밀 핀치·팬 제스처를 UIViewRepresentable로 구현, 동시 인식(Simultaneous Recognition) 지원
  • 애니메이션 윈도우 리사이징: 목록(800×400) ↔ 뷰어(1460×1120) 전환 시 .smooth(duration: 0.6) 애니메이션

데이터 흐름: Offline-First

앱은 오프라인 우선(Offline-First) 전략을 사용합니다. API는 동기화 수단일 뿐, UI는 항상 로컬 Realm DB에서 데이터를 읽습니다.

  1. 앱 실행 → 로컬 Realm DB에서 당일 신문 조회
  2. 로컬 데이터 없음 → 다하미 API에서 전체 면지 다운로드
  3. API 응답(NewsDto) → 도메인 모델 변환 → 중복 면지 제거(복합키: 신문사명|면지명|발행일)
  4. 정제된 데이터를 Realm에 저장 + NewsCompany 레코드 추출·저장
  5. UI는 Realm에서 페이지네이션으로 데이터 조회 → 화면 표시

민트기술의 visionOS 개발 역량

(주)민트기술은 Apple Vision Pro 출시와 함께 visionOS 개발에 선제적으로 투자하여, 공간 컴퓨팅 환경에서의 앱 설계·개발·배포 전 과정의 실무 경험을 축적하고 있습니다.

  • 공간 컴퓨팅 UI/UX: visionOS의 Glass Background, Ornament, Window Resizing 등 플랫폼 고유 디자인 패턴을 활용한 자연스러운 공간 인터페이스 설계
  • RealityKit 3D 렌더링: 2D 콘텐츠를 Spatial 3D로 변환하는 ImagePresentationComponent 활용, AI 깊이 추정 기반 입체 표현
  • 멀티플랫폼 대응: 동일 코드베이스에서 visionOS와 iOS를 모두 지원하는 Cross-Platform Scheme 설계 (News – API Run / Mock Run)
  • 고성능 데이터 처리: 일일 9,000건 이상의 면지 데이터를 효율적으로 정제·캐싱하는 오프라인 우선 아키텍처
  • 기존 API 연동: 웹 플랫폼용으로 구축된 기존 백엔드 API를 visionOS 앱에서 그대로 활용하는 확장 설계

웹(Vue/Spring), 모바일(iOS/Android), 그리고 공간 컴퓨팅(visionOS)까지 — 민트기술은 Apple의 차세대 플랫폼을 포함한 전 플랫폼에 걸쳐 고품질 소프트웨어를 설계하고 구현할 수 있는 풀스택 개발 파트너입니다.