피드로 돌아가기
Shipping one Flutter codebase to 6 platforms: what I learned building Tuneline
Dev.toDev.to
Frontend

Flutter 단일 코드베이스 기반 6개 플랫폼 네이티브 앱 배포 성공

Shipping one Flutter codebase to 6 platforms: what I learned building Tuneline

shamir shakir2026년 6월 21일2intermediate

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)을 분리 관리하는 구조적 전략 적용

원문 읽기