PaywallPresenter class abstract

Shows a paywall, whoever renders it.

Deliberately separate from EntitlementService so the presentation can change without touching purchase logic. A Superwall-rendered paywall, a RevenueCat-rendered one, and a hand-built Flutter screen all satisfy this, and call sites never learn which:

final outcome = await paywalls.present('onboarding_complete');

Placements are named, not hard-coded screens, so remote campaign tools can decide what appears at "onboarding_complete" without an app release. Keep the names stable — they're referenced from a dashboard.

No BuildContext parameter: Superwall and RevenueCat present natively, and a custom Flutter implementation reads Get.context the same way SystemNotifier does. Adding a context here would force UI plumbing on implementations that don't need it.

See FEATURE_PATTERNS.md → Paywall for the elements app review requires.

Implementers

Constructors

PaywallPresenter()

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
present(String placement) Future<PaywallOutcome>
Presents the paywall configured for placement and waits for it to close.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited