피드로 돌아가기
Dev.toFrontend
원문 읽기
Flutter 단일 코드베이스 기반 6개 플랫폼 네이티브 앱 배포 성공
Shipping one Flutter codebase to 6 platforms: what I learned building Tuneline
AI 요약
Context
다양한 OS 환경에서 일관된 미디어 플레이어 경험을 제공하기 위해 단일 코드베이스 전략 채택. Electron과 같은 무거운 런타임 없이 macOS, Windows, Linux, Android, Google TV, iOS를 동시에 지원해야 하는 제약 존재.
Technical Solution
- libmpv와 ExoPlayer를 통합한 media_kit 기반의 비디오 추상화 계층 설계로 플랫폼별 플러그인 파편화 해결
- GoRouter의 단일 경로 및 Tab-driven Shell 구조를 통한 모바일-TV 간 UI Layout Reflow 최적화
- Node.js 및 Prisma 기반 클라우드 동기화 레이어 구축을 통한 멀티 디바이스 데이터 정합성 확보
- Socket 기반 Sync-down과 REST Pull의 단일 Canonical Decoder 공유로 데이터 Drift 버그 원천 차단
- 플랫폼 특화 Window Management 및 Safe-area 처리 로직을 공유 코어와 분리하여 설계
- D-pad Focus Traversal 및 히트 타겟 최적화를 통한 Google TV 전용 인터랙션 모델 구현
실천 포인트
- 플랫폼별 미디어 엔진 차이를 극복하기 위한 공통 추상화 인터페이스 설계 여부 확인 - TV UI 설계 시 모바일 확대 버전이 아닌 Focus-based 인터랙션 모델 적용 검토 - 분산 환경의 데이터 동기화 시 단일 디코더 구조를 통한 데이터 일관성 확보 전략 수립 - 공유 코드베이스 내에서 플랫폼별 특성(Windowing, Safe-area)을 분리 관리하는 구조적 전략 적용