내가 직접 만든 오디오 플레이어
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
앱 개발
대상자
iOS 개발자 및 로컬 음악 라이브러리 관리가 필요한 사용자
난이도: 중급 이상 (Swift, SwiftUI, SQLite 기술 필요)
핵심 요약
- Apple의 유료화 및 기능 제한(iCloud 동기화, 풀텍스트 검색)에 대한 사용자 권한 부재 해결
- SwiftUI + SQLite FTS5 기반 설계로 로컬 음악 관리 및 iCloud 파일 접근 최적화
- Security-scoped bookmarks 제약 대응: 파일 사본 저장 및 백그라운드 복사 기술 적용
섹션별 세부 요약
1. 문제 인식 및 요구사항 정의
- Apple Music/iCloud Music Library: 유료 구독 필수 및 중단 시 데이터 접근 차단
- 외부 앱: 구독 기반 과금 및 검색·임포트 기능 부족
- 요구 기능: iCloud 폴더 풀텍스트 검색, 음악 재생 큐, 로컬 우선 환경
2. 기술적 선택 및 구현
- SwiftUI + Swift Actor 활용: 선언적 UI, 스레드 안전성 확보
- SQLite FTS5: songs_fts, source_paths_fts 인덱스 활용, BM25 기반 관련도 정렬
- AVFoundation + AVAudioPlayer: 메타데이터 분석 및 재생 컨트롤
- iCloud 파일 접근: security-scoped bookmarks 제약 대응, 파일 사본 저장
3. 개발 환경 및 제한사항
- Xcode의 SwiftUI 프리뷰 한계: iCloud 기능 모의 구성 필요
- iOS 샌드박스 정책: 외부 폴더 접근 제한, 앱 내 파일 복사 필수
- PWAs 제한: Web Bluetooth/USB/NFC 미지원, iOS 기기 제약
4. 사용자 피드백 및 대안 제안
- Musicolet, Symfonium, Navidrome 등 오프라인 음악 플레이어 추천
- Winamp, foobar2000 등 디자인/기능 향상 필요
- Apple Music 로컬 파일 사용 및 iTunes 동기화 방법 공유
결론
- SwiftUI + SQLite FTS5 기반 로컬 음악 관리 앱 개발로 Apple 제한 극복 가능
- iCloud 파일 접근 시 파일 사본 저장 기법 적용 필수
- iOS의 폐쇄성으로 인한 개발자/사용자 권한 제한 지속, PWAs 및 오픈소스 대안 활용 권장