Skip to content

[Paywalls V2] Some more template previews optimizations#2208

Merged
JayShortway merged 3 commits into
mainfrom
template-optimization
Mar 4, 2025
Merged

[Paywalls V2] Some more template previews optimizations#2208
JayShortway merged 3 commits into
mainfrom
template-optimization

Conversation

@JayShortway

@JayShortway JayShortway commented Mar 3, 2025

Copy link
Copy Markdown
Member

Description

Previously, we'd read every Offering into memory (one at a time), and would discard Offerings we'd already seen. That puts pressure on the garbage collector. In this PR, we only instantiate an Offering if we're actually going to return it.

We do that by first identifying the indices at which each Offering appears in the JSON, and then only reading the characters between those indices when we need a particular Offering. This is an attempt to decrease the rendering errors on Emerge Snapshots.

@JayShortway JayShortway self-assigned this Mar 3, 2025
@codecov

codecov Bot commented Mar 3, 2025

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.47%. Comparing base (d2ecc90) to head (32a5b69).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2208   +/-   ##
=======================================
  Coverage   80.47%   80.47%           
=======================================
  Files         277      277           
  Lines        9460     9460           
  Branches     1335     1335           
=======================================
  Hits         7613     7613           
  Misses       1287     1287           
  Partials      560      560           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@emerge-tools

emerge-tools Bot commented Mar 3, 2025

Copy link
Copy Markdown

📸 Snapshot Test

56 added, 206 unchanged

Name Added Removed Modified Renamed Unchanged Errored Approval
TestPurchasesUIAndroidCompatibility
com.revenuecat.testpurchasesuiandroidcompatibility
56 0 0 0 206 0 ✅ Approved

🛸 Powered by Emerge Tools

@JayShortway

JayShortway commented Mar 3, 2025

Copy link
Copy Markdown
Member Author

My theory for why Emerge sees 56 added snapshots, is as follows.

  • The first time the snapshots were generated for the commit currently on main (d2ecc90), a bunch errored and it only saw 206 snapshots.
  • Then I retried the snapshots on main(d2ecc90), and the second time it did see 262 snapshots.

However, it seems that it is still comparing against those 206 snapshots from the first time.

image

@JayShortway JayShortway requested a review from a team March 3, 2025 18:49
@JayShortway JayShortway marked this pull request as ready for review March 3, 2025 18:49
@JayShortway JayShortway enabled auto-merge (squash) March 3, 2025 18:49
@JayShortway JayShortway merged commit 7678dc1 into main Mar 4, 2025
@JayShortway JayShortway deleted the template-optimization branch March 4, 2025 07:49
tonidero added a commit that referenced this pull request Mar 6, 2025
**This is an automatic release.**

## RevenueCat SDK
### ✨ New Features
* Add `hasPaywall` property to `Offering` (#2212) via Antonio Pallares
(@ajpallares)
### 🐞 Bugfixes
* Fix empty options in NoActive subscriptions screen (#2168) via Cesar
de la Vega (@vegaro)

## RevenueCatUI SDK
### Customer Center
#### ✨ New Features
* Create `CustomerCenterListener` (#2199) via Cesar de la Vega (@vegaro)
#### 🐞 Bugfixes
* Reload Customer Center after a successful restore (#2203) via Cesar de
la Vega (@vegaro)
* Fixes CustomerCenter state not refreshing when reopening (#2202) via
Cesar de la Vega (@vegaro)

### 🔄 Other Changes
* Improves PaywallsTester multi-API-key support (#2218) via JayShortway
(@JayShortway)
* [EXTERNAL] Bump Emerge Gradle Plugin and Snaphsots version (#2211) via
@runningcode (#2217) via JayShortway (@JayShortway)
* [AUTOMATIC][Paywalls V2] Updates Compose previews of all templates
(#2207) via RevenueCat Git Bot (@RCGitBot)
* [Paywalls V2] Enables template previews again (#2215) via JayShortway
(@JayShortway)
* Adds support for switching between 2 API keys to PaywallsTester
(#2213) via JayShortway (@JayShortway)
* Adds a `LocalPreviewImageLoader` `CompositionLocal`. (#2201) via
JayShortway (@JayShortway)
* Logs from RevenueCatUI are now tagged with `[Purchases]` too. (#2206)
via JayShortway (@JayShortway)
* [Paywalls V2] Ignores template previews for now. (#2209) via
JayShortway (@JayShortway)
* [Paywalls V2] Some more template previews optimizations (#2208) via
JayShortway (@JayShortway)
* chore: Delete key from customer center survey event (#2204) via
Facundo Menzella (@facumenzella)
* [Paywalls V2] Extract ImageLoader to use a single one (#2146) via Toni
Rico (@tonidero)
* [Paywalls V2] Adds progress indicator to buttons (#2198) via
JayShortway (@JayShortway)
* Avoids triggering "unscheduled" workflows when triggering workflows
via the CircleCI API (#2200) via JayShortway (@JayShortway)
* [Paywalls V2] Adds a note on publishing to the missing paywall error.
(#2193) via JayShortway (@JayShortway)
* Adds X-Kotlin-Version header. (#2197) via JayShortway (@JayShortway)
* [Paywalls V2] Adds docs on ignored arguments for Paywalls V2 in more
places. (#2195) via JayShortway (@JayShortway)
* chore: Add backend integration test for events (#2189) via Facundo
Menzella (@facumenzella)
* [Paywalls V2] Adds CI job to update template previews (#2192) via
JayShortway (@JayShortway)

---------

Co-authored-by: revenuecat-ops <ops@revenuecat.com>
Co-authored-by: Cesar de la Vega <cesarvegaro@gmail.com>
Co-authored-by: Toni Rico <antonio.rico.diez@revenuecat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants