피드로 돌아가기
Hacker NewsFrontend
원문 읽기
SwiftUI 기반 Accessibility 중심의 네이티브 HN 리더 설계
Ember, a native iOS Hacker News reader I built around accessibility
AI 요약
Context
웹 뷰 의존적인 기존 Hacker News 클라이언트의 접근성 제약 및 느린 렌더링 성능 해결 필요. 특히 시각 장애 및 색각 이상 사용자를 위한 시스템 레벨의 접근성 표준 준수가 설계의 핵심 과제로 설정됨.
Technical Solution
- Web View 배제를 통한 성능 최적화를 위해 HTML 태그셋을 AttributedString으로 변환하는 맞춤형 파서 설계
- 단일 네트워크 요청으로 전체 커멘트 트리를 fetch한 후 Depth 기반 리스트로 Flattening 하여 즉각적인 Thread Collapsing 구현
- Observation framework 기반의 @Observable 상태 관리로 View-Model 간 데이터 동기화 효율 최적화
- TaskGroup을 이용한 Feed Page 병렬 fetch 구조를 설계하여 개별 아이템 누락 시에도 전체 로딩이 유지되는 Fault Tolerance 확보
- 시스템의 Accessibility 설정(VoiceOver, Reduce Motion 등)을 자동 감지하여 앱 설정을 동기화하는 Smart Onboarding 로직 구현
- 색상에만 의존하지 않는 UI 전달을 위해 SF Symbol 및 Shape를 결합한 Multi-modal 상태 표시 체계 구축
실천 포인트
- 웹 콘텐츠를 네이티브로 변환 시 전체 Web View 대신 특정 태그셋만 처리하는 경량 파서 도입 검토 - 계층 구조 데이터의 UI 렌더링 시 Flattening 기법을 통한 O(1) 수준의 토글 인터랙션 구현 - Accessibility 설정을 단순 지원하는 수준을 넘어 앱 초기 진입 시점에 시스템 설정과 동기화하는 사용자 경험 설계