Repository navigation
feat: オンボーディングの最後のペイウォールの判定と段を足す - #11
Merged
Merged
Conversation
- Subscription に OnboardingPaywallDecision(購読中・metadata の onboarding_paywall=off・売る物が無いときは出さない純関数) - SubscriptionUI に OnboardingPaywallStep(左上の×と「無料のまま続ける」を必ず出し、閉じた・続けた・買った・復元したを1つの onFinish に) - OnboardingPaywallEvent で paywall_shown / paywall_closed(source=onboarding・pw_id・result・via・product・open_s)を共通のカタログの名前で渡す。計測の SDK には依存しない - テスト・README(en/ja)・DocC・CHANGELOG(Unreleased・足すだけ) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nvz9wH6uYZH4w3Met47ZdC
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.
7アプリがオンボーディング最後のペイウォールを自前で書いていて、つもふ習慣は途中に置かれ、×が右上で「無料のまま続ける」が無かった(studio の O16・P3・P16 からずれ)。決まりを型に移す。設計は studio
docs/app-shared-packages-design-2026-11-08.mdの段階4。足したもの(既存は変えない・3.7.0 の minor になる見込み)
SubscriptionOnboardingPaywallDecision.decide(offering:status:) -> .show / .skip(reason)の純関数.skip(.entitled).skip(.nothingToSell)onboarding_paywallがoff(大文字小文字と前後の空白は無視)→.skip(.switchedOff).skip(.nothingToSell)OnboardingPaywallVariantと同じ読み方)placement/source/metadataKeyの定数(onboarding/onboarding/onboarding_paywall)SubscriptionUIOnboardingPaywallStep { context in アプリのペイウォール }onFinish(OnboardingPaywallExit)に1回だけ流すOnboardingPaywallContext:source(onboarding)・paywallId(pw_id)・purchased(_ package:)・restored()・setWorking(_:)(購入の間は出口を押せなくする)OnboardingPaywallEvent:paywall_shown/paywall_closedをnameとparameters(または case の型付きの値)でonEventに渡す。名前は swift-analyticsfeat/common-catalog-0.3のSchema/common/common.yamlに合わせた(source・pw_id・result= dismissed/purchased/restored・via= close_button/continue_free/auto・product= yearly/monthly/lifetime・open_s)。nthはアプリが足すOnboardingPaywallLabels(英語の既定と.japanese=「閉じる」「無料のまま続ける」)決めたこと
PaywallViewのonEntitledは買ったと復元を区別しないので、この段では使わずpurchased/restoredを分けて受ける(resultを正しく出すため)PaywallCloseViaなど)と衝突しないよう、文字列で値を返す本線が回すコマンド(この PR ではビルドもテストもしていない)
merge とタグはしていない。
🤖 Generated with Claude Code
https://claude.ai/code/session_01Nvz9wH6uYZH4w3Met47ZdC