リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: 合体ドロップ
モード別「平均プレイ時間」が旧データで実際より短く表示される不具合
1. 不具合の内容:
v1.92.0で追加された「モード別1プレイあたりの平均時間」は、既存の「通算プレイ回数」(v1.89.0から記録開始)と「累計プレイ時間」(v1.91.0から記録開始)を使い、平均=累計プレイ時間÷通算プレイ回数、として算出している。しかしこの2つの指標は記録開始バージョンが異なるため、v1.89.0〜v1.90.0の間にプレイしたユーザーは、通算プレイ回数にはそのプレイ分が加算済みだが、累計プレイ時間にはそのプレイ分の秒数が含まれていない(累計プレイ時間の記録はv1.91.0以降のプレイからしか蓄積されない)。
2. 根拠・発生条件:
changelogの記述順から、通算プレイ回数(v1.89.0)→累計プレイ時間(v1.91.0)→平均プレイ時間(v1.92.0)の順に別々の機能として追加されたことが明記されている。累計プレイ時間はローカルストレージへの新規保存項目であり、導入前のプレイ履歴を遡って再構築することはできない。そのためv1.89.0〜v1.90.0時点で既にプレイ回数を貯めていた既存ユーザー(継続利用者)は、「回数(分母)は正しいが時間(分子)はv1.91.0以降のプレイ分のみで過少」という不整合な状態になる。release notesには「計算に必要な記録がない・壊れている場合は平均欄を表示せず、従来の表示を維持します」とあるが、これは値が欠損・破損している場合のみを想定した保護であり、「回数はあるが時間の起点がずれている」という中間状態までは考慮されていない可能性が高い。この場合、平均欄が非表示にならず、実際より大幅に短い平均プレイ時間が誤って表示され続ける。
3. 期待動作:
累計プレイ時間の記録開始より前に蓄積されたプレイ回数は平均の分母から除外し、正しい母数で計算できない場合は平均欄を表示しない(または「集計中」等の注記を出す)。
4. 修正方針:
累計プレイ時間の機能導入時(初回読み込み時)に、その時点の通算プレイ回数を「平均集計の起点回数(avgBaselineCount)」としてモード別にローカルストレージへ1回だけスナップショット保存する。平均計算時は avg = 累計プレイ時間 ÷ max(0, 通算プレイ回数 - avgBaselineCount) とし、分母が0以下になる場合は平均欄を表示しない。avgBaselineCountが存在しない(新規ユーザーや導入前に一度も遊んでいない端末)場合は0として扱い、既存の表示ロジックへの影響を避ける。この対応はローカルストレージのスキーマに1キー追加するだけで、他の既存機能(通算回数表示、累計時間表示、共有テキストなど)には影響しない。
v1.92.0で追加された「モード別1プレイあたりの平均時間」は、既存の「通算プレイ回数」(v1.89.0から記録開始)と「累計プレイ時間」(v1.91.0から記録開始)を使い、平均=累計プレイ時間÷通算プレイ回数、として算出している。しかしこの2つの指標は記録開始バージョンが異なるため、v1.89.0〜v1.90.0の間にプレイしたユーザーは、通算プレイ回数にはそのプレイ分が加算済みだが、累計プレイ時間にはそのプレイ分の秒数が含まれていない(累計プレイ時間の記録はv1.91.0以降のプレイからしか蓄積されない)。
2. 根拠・発生条件:
changelogの記述順から、通算プレイ回数(v1.89.0)→累計プレイ時間(v1.91.0)→平均プレイ時間(v1.92.0)の順に別々の機能として追加されたことが明記されている。累計プレイ時間はローカルストレージへの新規保存項目であり、導入前のプレイ履歴を遡って再構築することはできない。そのためv1.89.0〜v1.90.0時点で既にプレイ回数を貯めていた既存ユーザー(継続利用者)は、「回数(分母)は正しいが時間(分子)はv1.91.0以降のプレイ分のみで過少」という不整合な状態になる。release notesには「計算に必要な記録がない・壊れている場合は平均欄を表示せず、従来の表示を維持します」とあるが、これは値が欠損・破損している場合のみを想定した保護であり、「回数はあるが時間の起点がずれている」という中間状態までは考慮されていない可能性が高い。この場合、平均欄が非表示にならず、実際より大幅に短い平均プレイ時間が誤って表示され続ける。
3. 期待動作:
累計プレイ時間の記録開始より前に蓄積されたプレイ回数は平均の分母から除外し、正しい母数で計算できない場合は平均欄を表示しない(または「集計中」等の注記を出す)。
4. 修正方針:
累計プレイ時間の機能導入時(初回読み込み時)に、その時点の通算プレイ回数を「平均集計の起点回数(avgBaselineCount)」としてモード別にローカルストレージへ1回だけスナップショット保存する。平均計算時は avg = 累計プレイ時間 ÷ max(0, 通算プレイ回数 - avgBaselineCount) とし、分母が0以下になる場合は平均欄を表示しない。avgBaselineCountが存在しない(新規ユーザーや導入前に一度も遊んでいない端末)場合は0として扱い、既存の表示ロジックへの影響を避ける。この対応はローカルストレージのスキーマに1キー追加するだけで、他の既存機能(通算回数表示、累計時間表示、共有テキストなど)には影響しない。
💬 返信 (3)
🛠 開発を開始しました (機能追加 (vegetable-drop))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
Echo
Iris