RevenueCat / purchases-ios

In-app purchases and subscriptions made easy. Support for iOS, watchOS, tvOS, macOS, and visionOS.
https://www.revenuecat.com/
MIT License
2.2k stars 294 forks source link

Request for Lightweight SDK for App Extension (Eg Widget) #3985

Open jesus-mg-ios opened 1 week ago

jesus-mg-ios commented 1 week ago

Description

We have strict memory constraints for our app extension, eg a widget. Our current integration with RevenueCat includes unnecessary components like prewarming paywall cache, attribution data, product caching, trial eligibility checks, rate limiters, etc., which are not essential for the app extension functionality.

Specific Requirements:

Authentication and Entitlement Check: We need a method to verify if the user, who has signed in through the main app (synced via RevenueCat groups), has a specific entitlement (let's call it X entitlement) and know if its valid.

Cache Management: Ability to invalidate or refresh purchase information automatically to reflect real-time changes in purchases.

Requested Features:

Minimal Footprint: Ensure the SDK is optimized to consume minimal memory and CPU resources.

Description Core Functionality Only: Strip away components not essential for entitlement checks and purchase validation within the widget.

Use Case Context:

Our app extensions need to display specific content or functionality based on the user's entitlement status, which is managed through RevenueCat. The primary concern is to streamline the SDK to meet the widget's memory constraints while ensuring reliable entitlement verification and purchase validation.

Additional Information:

The SDK should support iOS and Catalyst app extensions, particularly widgets and other kinda extensions, adhering to Apple's guidelines for memory usage and performance.

We aim to reduce the overhead of unnecessary objects present in the SDK that are not relevant to the widget's limited scope of functionality.

Outcome Requested:

A lightweight SDK configuration or guidance on configuring the existing SDK to meet the outlined requirements.

RCGitBot commented 1 week ago

👀 We've just linked this issue to our internal tracker and notified the team. Thank you for reporting, we're checking this out!