feat: ソフトペイウォール化 + 日本語話者へ lifetime 表示#268
Merged
Merged
Conversation
- PaywallVariantBView: lifetime(買い切り) を storefront国(JPN)判定から 端末優先言語の日本語判定へ変更。async storefront 依存のレースで 非表示になるバグを解消。英語ユーザーには従来通り非表示。 - PaywallFlowContainer: 右上に平均サイズの × (paywall-close-button) を追加。 課金せずメイン画面(FeedRootView)へ遷移するソフトペイウォールに変更。 - OnboardingFlowView: onDismiss を handlePaywallDismissedAsFree に配線 (onboardingPaywallDismissedFree track + markOnboardingComplete)。 - Maestro: 03-soft-paywall / 04(en, lifetime非表示) / 05(ja, 買い切り表示) を現行フロー・feed-scroll・paywall-close-button に整合。 - spec: docs/superpowers/specs/2026-07-03-soft-paywall-and-jp-lifetime-design.md Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C84bsKHEy9pzDbicoPGg3h
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughペイウォールをハード(閉じられない)からソフト(右上×で無課金dismiss可能)へ変更し、dismiss時にonboardingPaywallDismissedFreeを計測してメイン画面へ遷移する。加えてLifetimeプラン表示判定をStorefront国コードから端末言語判定へ変更し、Maestro E2Eテストと設計ドキュメントを更新した。 ChangesソフトペイウォールとLifetime表示変更
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant PaywallFlowContainer
participant OnboardingFlowView
User->>PaywallFlowContainer: ×ボタンをタップ
PaywallFlowContainer->>OnboardingFlowView: onDismiss()呼び出し
OnboardingFlowView->>OnboardingFlowView: handlePaywallDismissedAsFree()
OnboardingFlowView->>OnboardingFlowView: onboardingPaywallDismissedFree計測
OnboardingFlowView->>User: 課金なしでメイン画面へ遷移
関連する課題: なし明記のPR記述 関連するPR: なし明記 推奨ラベル: enhancement, ios, testing 推奨レビュアー: なし明記 詩: ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
Anicca iOS アプリのオンボーディング末尾ペイウォールに対する2点の修正。
変更内容
Swift
Onboarding/PaywallVariantBView.swift: lifetime のゲートを StoreKit storefront 国判定(storefrontCountry == "JPN")から端末優先言語の日本語判定(Locale.preferredLanguagesのhasPrefix("ja")、UserProfile/QuoteProviderと同一パターン)へ変更。storefront は async 取得で初期値が空 → レースで非表示になるバグがあった。不要になったimport StoreKitと.task { storefront… }を削除。Onboarding/OnboardingBibleViews.swift:PaywallFlowContainerにonDismissを追加し、ZStack(alignment: .topTrailing)へ右上 × ボタン(paywall-close-button, アイコン17pt / タップ領域44pt)を常時表示。Onboarding/OnboardingFlowView.swift:onDismissを新規handlePaywallDismissedAsFree()(onboardingPaywallDismissedFreeを track →markOnboardingComplete()→ ペイウォールを閉じる)に配線。.interactiveDismissDisabled(true)は維持(スワイプ離脱は防止、離脱は明示的な × のみ)。Maestro E2E
maestro/onboarding/03-soft-paywall.yaml: × →feed-scroll到達(無課金)を検証。共有フローv1.8.0/_onboarding_to_paywall.yamlを使用。maestro/v1.8.0/05-paywall_variant_b_ja.yaml: 日本語で「買い切り」表示を assert + 現行文言/feed-scrollに整合。maestro/v1.8.0/04-paywall_variant_b_en.yaml: 英語で「Lifetime」非表示を assert + 壊れていた../相対パス/mypath-root/旧文言を修正。Spec
docs/superpowers/specs/2026-07-03-soft-paywall-and-jp-lifetime-design.mdテスト状況(honesty)
本作業は Linux リモートコンテナで実行しており iOS toolchain(xcodebuild / swift / maestro / asc)が存在しないため、ビルド・Maestro 実走・App Store Connect 提出はこのセッションでは未実施。fresh-context の敵対的コードレビューは PASS(コンパイル/ロジック欠陥なし)。
Mac 側での実行手順(要実施):
実機確認(Dais)
🤖 Generated with Claude Code
https://claude.ai/code/session_01C84bsKHEy9pzDbicoPGg3h
Generated by Claude Code
Summary by CodeRabbit
New Features
Bug Fixes
Documentation