#745 プレイリスト機能 開発見積もり

API + アプリ(Android) 統合タイムライン — Figmaデザイン全25画面 + API 8本 — 2026-03-23

サマリ

API工数
14〜18d
本田さん 1人
アプリ工数
16〜22d
Android 1人
結合+QA
3〜5d
API+アプリ合同
合計期間
6〜7w
並行開発想定
画面数
~25
5グループ
API数
8

画面グループ別アプリ工数

A. プレイリスト一覧/詳細 4画面 3〜4d

HOME画面のPLAYLISTセクション(横スクロールカード) / プレイリスト一覧画面(人気順・新着順タブ、検索ボタン、グリッド表示) / プレイリスト詳細画面(サムネ、作成者、合計時間・カロリー・レッスン数、VODリスト、「...」ボタン、STARTボタン) / マイプレイリストに追加モーダル。 HOME画面は既存のFAVORITEセクションのレイアウトを流用できる。一覧のグリッド表示と詳細画面のVODリスト表示が主な実装ポイント。

B. マイプレイリスト管理 4画面 2〜3d

HOME画面のMY PLAYLISTセクション / マイプレイリスト一覧画面(+ NEW PLAYLISTボタン、リスト表示、各行に「...」ボタン) / 編集・削除モーダル / 「マイプレイリストに追加」画面(新規作成ボタン+既存PL一覧から選択)。 一覧画面のリストレイアウトは既存パターン流用。モーダルは共通コンポーネント活用可能。

C. プレイリスト作成/編集 8画面 5〜6d

プレイリスト編集画面(空状態+レッスン追加済み) / レッスン追加画面(カテゴリタブ) / レッスンカテゴリ一覧 / レッスン選択(チェックボックス) / サムネイル選択画面(グリッド) / タイトル・公開設定入力フォーム / 保存完了画面。 画面数が最多で新規UIが多い。カテゴリ別レッスン選択、ドラッグ並び替え(あれば)、サムネイルグリッド選択など独自実装が必要。最も工数がかかるパート。

D. プレイリスト再生 8画面 4〜6d

VOD再生画面(NEXT表示オーバーレイ) / VOD間の自動遷移画面(カウントダウンタイマー、STOP/STARTボタン) / 今日のレッスン合計画面(時間・カロリー表示) / 終了確認ダイアログ(「はい/いいえ」) / GREAT WORKOUT画面(プレイリスト版)/ GREAT WORKOUT内マイプレイリスト追加モーダル。 既存のVOD再生画面を拡張する形。カウントダウンタイマーUI、連続再生の状態管理、再生中の「NEXT」オーバーレイなど、再生ロジック周りが複雑。

E. VOD詳細からプレイリスト追加 4画面 1〜2d

VOD詳細画面の「...」ボタン → 「お気に入りに追加」+「マイプレイリストに追加」モーダル / お気に入り済み状態の切り替え表示。 既存のお気に入りモーダルに「マイプレイリストに追加」ボタンを1つ追加する形。比較的軽い。

タスク分解(API + アプリ)

#タスク領域APIアプリ備考
Phase 1: 基盤 + CRUD
1 DBマイグレーション + エンティティ定義 API 1d - 4テーブル: vod_playlists, vod_playlist_items, favorite_vod_playlists, vod_playlist_play_results
2 プレイリストCRUD API(作成/編集/削除/単体取得) API 3〜4d - バリデーション、認可、編集時の全置換ロジック
3 マイプレイリスト一覧 API API 1d - 自作PL + お気に入りPLを統合返却
4 プレイリスト作成/編集画面 APP - 5〜6d 画面グループC。カテゴリ別レッスン選択、サムネイル選択、フォーム入力。最多画面数
5 マイプレイリスト管理画面 APP - 2〜3d 画面グループB。一覧、編集/削除モーダル、追加画面
Phase 2: ソーシャル + 一覧
6 お気に入り登録/解除 API API 1d - 重複防止、自己登録防止バリデーション含む
7 プレイリスト一覧/詳細画面 APP - 3〜4d 画面グループA。一覧グリッド、詳細画面、追加モーダル
8 VOD詳細からのPL追加 APP - 1〜2d 画面グループE。既存モーダル拡張
9 HOME画面へのPLセクション追加 APP - 1d PLAYLIST/MY PLAYLISTの横スクロールカード。既存FAVORITEのレイアウト流用
Phase 3: 検索 + 人気順
10 プレイリスト検索 API API 3〜4d - キーワード検索、人気順/新着順、ページネーション
11 人気順スコア集計ロジック API 2〜3d - 連続再生ポイント加算式、直近7日間集計。バッチ or リアルタイムの方針決め含む
Phase 4: 再生フロー
12 再生結果記録 API API 1d - user_lesson_historyとの連携
13 プレイリスト再生画面 APP - 4〜6d 画面グループD。連続再生ロジック、カウントダウンタイマー、STOP/START、GREAT WORKOUT画面
Phase 5: テスト + 結合
14 E2Eテスト(API) API 2d - YAMLベースE2Eテスト
15 結合テスト + バグ修正 API+APP 3〜5d API-アプリ間の結合、レビュー指摘反映、エッジケース修正
合計 14〜18d 16〜22d + 結合 3〜5d

タイムライン(API + アプリ並行開発)

W1 (3/24〜28)
W2 (3/31〜4/4)
W3 (4/7〜11)
W4 (4/14〜18)
W5 (4/21〜25)
Phase 1
API: Migration
1d
API: CRUD
3-4d
API: マイPL一覧
1d
App: PL作成/編集
5-6d
App: マイPL管理
2-3d
Phase 2
API: お気に入り
1d
App: PL一覧/詳細
3-4d
App: VOD詳細拡張
1-2d
App: HOMEセクション
1d
Phase 3
API: 検索
3-4d
API: 人気順集計
2-3d
Phase 4
API: 再生記録
1d
App: 再生フロー
4-6d
Phase 5
API: E2Eテスト
2d
結合テスト+修正
3-5d
マイルストーン
CRUD完
一覧完
RC

フェーズ詳細

1 基盤 + CRUD + 作成画面 Week 1-2

3/24 〜 4/4(2週間)

API: マイグレーション、エンティティ定義、プレイリストCRUD 4本(作成/編集/削除/単体取得)、マイPL一覧API。ここでAPI基盤が固まる。
アプリ: 画面数最多のプレイリスト作成/編集フロー(8画面)+ マイPL管理画面(4画面)を先行着手。APIのモック or ローカルデータで画面開発を進められる。

2 ソーシャル + 一覧表示 Week 2-3

3/31 〜 4/11(Phase 1後半から並行)

API: お気に入り登録/解除API。Phase 1のCRUD APIと結合確認。
アプリ: プレイリスト一覧/詳細画面(4画面)、VOD詳細からのPL追加(4画面)、HOME画面へのセクション追加。Phase 1で完成したAPIと接続開始。

3 検索 + 人気順 Week 3-4

4/7 〜 4/18

API: 最も複雑なパート。検索API(ページネーション/フィルタ/ソート)+人気順スコア集計ロジック。
アプリ: Phase 2の画面実装を継続しつつ、検索UIとの接続準備。
前提: ⑩虫眼鏡の検索仕様がこの時点で確定していること。

4 再生フロー Week 4-5

4/14 〜 4/25

API: 再生結果記録API(1d)。比較的軽い。
アプリ: プレイリスト再生フロー(8画面)。既存VOD再生画面の拡張だが、連続再生ロジック、カウントダウンタイマー(STOP/START)、GREAT WORKOUT画面のプレイリスト版など、状態管理が複雑。

5 テスト + 結合 + RC Week 5

4/21 〜 4/25(+ バッファ 4/28〜)

API E2Eテスト、API-アプリ全動線の結合テスト、レビュー指摘事項の反映、エッジケース修正。 順調なら 4/25(金) にRC、バッファ込みで 5月第1週リリース が現実的なライン。

画面グループ × 対応API マッピング

画面グループ画面数アプリ工数必要APIAPI工数
A. PL一覧/詳細43〜4d 検索API、単体取得API、お気に入りAPI4〜5d
B. マイPL管理42〜3d マイPL一覧API、削除API1〜2d
C. PL作成/編集85〜6d 作成API、編集API2〜3d
D. PL再生84〜6d 再生結果記録API、人気順集計3〜4d
E. VOD詳細拡張41〜2d (既存API + お気に入りAPI共用)-
合計~2516〜22d 14〜18d

リリース見通し

BEST CASE

4/25 (金)

全フェーズがオンスケで進行し、未回答事項(⑧⑨⑩⑪)が4/7までに確定した場合。RC → 翌週リリース。

LIKELY

5/2 (金)

検索API・人気順集計で1週間の追加バッファ。結合テストでの手戻りを考慮。5月第1週リリースが最も現実的。

WORST CASE

5/16 (金)

未回答事項の確定遅延、人気順ロジックの方針変更、再生フローの複雑さによる追加工数。GW挟む場合も。

ブロッカー / リスク

HIGH: 検索API未設計

#898の検索APIはコピペ状態で実質未設計。ページネーション/フィルタ/ソートの再設計が必要。Phase 3の開始前(4/7)までに設計完了が必須。

HIGH: 人気順集計方式

バッチ集計 vs リアルタイム集計の方針未決定。既存WeeklyScoreパターン(バッチ)が現実的だが、「リアルタイムに近い間隔」という要件との整合性を確認する必要あり。

MID: 未回答4件

⑧他PL追加/削除、⑨自分PL表示制御、⑩検索仕様、⑪タイマー挙動。特に⑩はPhase 3ブロッカー。開発タスクボードで早期に回答を得る必要あり。

MID: 再生フロー複雑度

連続再生の状態管理(タイマー、一時停止、途中終了)は見た目以上に複雑。既存VOD再生ロジックとの結合ポイントが多く、予想外のバグが出やすい。

見積もり根拠

API側: 既存のお気に入り機能(計約360行)を基本CRUDの単位とし、VOD検索(Service 1,250行)を検索の複雑さの参考値とした。プレイリストは両方の要素を含むため約2,000行と推定、1人日150〜200行ペースで14〜18人日。テーブル設計済み、既存パターン踏襲可能な点はプラス要因。

アプリ側: Figmaデザインから画面を5グループ・約25画面に分類。新規UIが多いC(作成/編集 8画面)とD(再生 8画面)が工数の大半を占める。既存画面の流用が効くA, B, Eは比較的軽い。画面数×平均1日を基本に、複雑度で補正して16〜22人日。
2026-03-23 — Issue #745 / #898 + Figmaデザイン + 既存コードベース分析に基づくラフ見積もり