Audius の公開APIを使って、音源をアプリ内で再生できるシンプルな音楽プレイヤーです。
検索 → 再生 → キュー操作までを最短で実装し、UI/体験も“音楽アプリっぽく”整えました。
※ 本アプリはストア配布を目的としていません(ポートフォリオ/学習目的)。
- iOS Simulator: ✅
- Android Emulator: ✅(任意)
📹 デモ動画(30秒): docs/demo.mp4(任意で追加)
🖼️ スクリーンショット: docs/screenshots/
- Trending(Underground)一覧の取得・再生
- 検索(2文字以上)→結果をキューとして再生
- Play / Pause
- Next / Prev(キューに基づく)
- シーク(スライダー + 時間表示)
- Mini Player(常時表示 / 進捗バー)
- Queue画面
- 一覧表示
- タップでその曲へジャンプ
- 右スワイプで削除
- Clear(全消し)
- ヘッダー右上から Search / Queue に即移動(UI統一)
- Expo (React Native)
- TypeScript
- expo-av(音源再生)
- React Navigation(画面遷移)
- TanStack Query(API通信)
- Zustand(Player / Queue 状態管理)
- Audius API(曲取得・検索・ストリーム)
UI (Screens / Components) ├─ Home / Search / Queue / Player └─ MiniPlayer
State (Zustand) ├─ queue / index / current ├─ isPlaying / positionMs / durationMs └─ actions: playAt, toggle, next, prev, seek, enqueue, remove...
Audio Engine (expo-av) └─ loadAndPlay / pause / resume / seek (+ status updates)
API (Audius) ├─ trending └─ search
- Node.js (LTS推奨)
- Expo CLI(
npx expoでOK) - iOS Simulator を使う場合:Xcode
npm inpx expo start- iOS Simulator: i
- Android Emulator: a
最短で“音が鳴る”ことを優先し、Expo managed + expo-av を採用
キュー操作を Zustand にまとめ、画面間で一貫した操作ができるように設計
UI は「情報の優先順位(アートワーク → 曲情報 → 操作)」に合わせて配置
バックグラウンド再生 / ロック画面操作
キューの並び替え(ドラッグ)
お気に入り / 再生履歴の永続化
E2E テスト / CI



