sharezone-app
sharezone-app copied to clipboard
Sharezone Plus Page behavior
TODOs
- [X] Add Buy Button loading state (#978)
- [ ] Add Buy Button disabled state (on error, no shimmer)
- [ ] Add "Not available on Web" dialog when pressing buy button
- [ ] Add "Buy button pressed" event
- [ ] Add "Fake buy button pressed" event
- [ ] Add "Successfully bought" event (use special Firebase conversion event)
- [X] Add Price loading shimmer (#990)
- [ ] Implement error text (loading price failed / invalid response)
- [ ] Implement error dialog (error when buying / after pressing buy button)
Platforms | RevenueCat |
---|---|
iOS | ✅ |
Android | ✅ |
Web | ❌ |
macOS | ✅ |
Loading products cases:
- RevenueCat is available on the platform and we're waiting for a response from RevenueCat
- RevenueCat is available on the platform and we got an Exception/Error but we still have retries left
- RevenueCat is available on the platform and we got a valid response from RevenueCat
- RevenueCat is available on the platform but got an Exception/Error from RevenueCat and we have no retries left
- RevenueCat is available on the platform but we got an invalid response (e.g. our sharezone-plus product is not in the response)
- RevenueCat is not available on the platform and can't be used
UI states:
❌ Buy Button => disabled/onPressed : null
State | Product Price Shown | Buy Button | Auxiliary Behavior |
---|---|---|---|
Loading | ❌ (Loading shimmer) | ❌ (Loading Shimmer) | - |
Success | ✅ | ✅ | - |
Retrying | ❌ (loading shimmer) | ❌ (Loading Shimmer) | - |
Error (no retries left) | ✅ (fallback price) | ❌ | Show error text |
Invalid Response | ✅ (fallback price) | ❌ | Show error text |
RevCat Not Available | ✅ (fallback price) | ✅ | Show "Not available on web" dialog + and send analytics event on buy button press |
Open questions / notes:
- 4,99€/month => Should "month" be hardcoded?
- Will
price
andhasPlus
be loaded independently? (If so we can't use a catch-all "loading" attribute.) - Can the fallback price for web really be loaded via RemoteConfig regarding our "load values for next app launch" approach? (#697)
4,99€/month => Should "month" be hardcoded?
We can add to the fallback value a suffix like _month
. It's likely that we only have per month or per year version.