Skip to content

Conversation

skydoves
Copy link
Member

@skydoves skydoves commented Aug 18, 2025

Motivation

This is a follow-up task from #2478

Introduce runtime annotations library (which is completely JVM-based annotations) and add stability annotations on the purchase core models.

Unfortunately, the AndroidX runtime annotations library requires a compile SDK version above 34. So for now, I’ve switched to using compose-stable-marker instead. It offers the exact same functionality, was created two years earlier than the official library, and is already widely adopted by many libraries and SDKs.

@skydoves skydoves requested a review from a team August 18, 2025 08:01
@skydoves skydoves self-assigned this Aug 18, 2025
@skydoves skydoves changed the title Introduce runtime annotations library and add stability annotations on purchase core models Introduce runtime annotations library and add stability annotations for increasing UI performances Aug 18, 2025
Copy link

codecov bot commented Aug 19, 2025

Codecov Report

❌ Patch coverage is 0% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.32%. Comparing base (0e0779c) to head (a237b76).
⚠️ Report is 9 commits behind head on main.

Files with missing lines Patch % Lines
...chases/paywalls/components/properties/Dimension.kt 0.00% 0 Missing and 3 partials ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2608   +/-   ##
=======================================
  Coverage   78.32%   78.32%           
=======================================
  Files         300      300           
  Lines       11126    11126           
  Branches     1551     1551           
=======================================
  Hits         8714     8714           
  Misses       1732     1732           
  Partials      680      680           

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@skydoves skydoves requested review from a team and removed request for a team August 19, 2025 06:49
Copy link
Contributor

@tonidero tonidero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some questions about whether some of these annotations are needed for code that more than likely won't be called from Compose... Other than that, just a note that we did update our compile version to 35 a while back. Not sure if that would enable us to use the official library?

@skydoves
Copy link
Member Author

@tonidero You're right, I don't wanted to break the test-apps/testpurchasesandroidcompatibility/build.gradle.kts the minimum compile SDK version, but if we're already using compile SDK targets to 35, that would be fine.

Copy link
Contributor

@tonidero tonidero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! Nice improvements! 🙌

@skydoves skydoves added this pull request to the merge queue Aug 21, 2025
Merged via the queue into main with commit a63a8bb Aug 21, 2025
20 checks passed
@skydoves skydoves deleted the feature/compose-runtime-annotations branch August 21, 2025 01:29
tonidero pushed a commit that referenced this pull request Aug 21, 2025
**This is an automatic release.**

## RevenueCat SDK
### 🐞 Bugfixes
* Use `Block store` to backup anonymous user ids across installations
(#2595) via Toni Rico (@tonidero)

## RevenueCatUI SDK
### Paywallv2
#### 🐞 Bugfixes
* Fixes price formatting discrepancies on Paywalls for `{{
product.price_per_[day|week|month|year] }}` (#2604) via JayShortway
(@JayShortway)

### 🔄 Other Changes
* Revert dokka 2 and gradle 9 update (#2618) via Toni Rico (@tonidero)
* Introduce runtime annotations library and add stability annotations
for increasing UI performances (#2608) via Jaewoong Eum (@skydoves)
* Override presented offering context paywalls without offering (#2612)
via Toni Rico (@tonidero)
* Add APIs for hybrid SDKs to set presentedOfferingContext (#2610) via
Toni Rico (@tonidero)
* Bump Baseline Profiles to 1.4.0 and update profiles (#2611) via
Jaewoong Eum (@skydoves)
* Migrate deprecated kotlinOptions to compilerOptions (#2607) via
Jaewoong Eum (@skydoves)
* [AUTOMATIC][Paywalls V2] Updates paywall-preview-resources submodule
(#2613) via RevenueCat Git Bot (@RCGitBot)
* Migrate amazon & debugview modules to KTS (#2327) via Jaewoong Eum
(@skydoves)
* Update to Dokka 2.0.0 (#2609) via Toni Rico (@tonidero)
* Add log when restoring purchases finds no purchases with some
troubleshooting (#2599) via Toni Rico (@tonidero)

Co-authored-by: revenuecat-ops <ops@revenuecat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants