Comments (4)
@bjtitus I think there's one additional test we should do:
- Add a Feature Flag to FeatureFlag.swift
- Add an overwritten value to Firebase Remote Config
- New value should replace the client-side value
- Delete the Firebase Remote Config one
- ✅ Local feature flag value should remain the same (we don't want flags to change values when we delete them)
from pocket-casts-ios.
✅ Local feature flag value should remain the same
Are you saying we should store the changed Remote Config value instead of reverting to the value in FeatureFlag.default
?
Is the idea to cover future flag removal?
I fear this could make it much hard for us to debug issues without knowing which flag values a user should have. As an example, if someone accidentally added a flag and then deleted it, would we be able to determine which value a user should have on their device without needing to fetch logs/data directly from them?
If we do decide to do this, I think it should be done separately from the default values since this would be new functionality on top of just adding a default value for each flag.
from pocket-casts-ios.
Is the idea to cover future flag removal?
Yes!
My main reasoning is: that if an app is working with a flag set to a certain value, it should not change. Think about this scenario:
- The flag
test
has a default value oftrue
- We configured this flag to be
false
for versions below7.60
- After some time, we delete flag
test
- Now, for versions below
7.60
the flag will change totrue
I fear this could make it much hard for us to debug issues without knowing which flag values a user should have. As an example, if someone accidentally added a flag and then deleted it, would we be able to determine which value a user should have on their device without needing to fetch logs/data directly from them?
I agree with you but overall in support requests one of the things we always recommend is to be on the latest version — but I also agree that this is an argument that goes both ways.
If we do decide to do this, I think it should be done separately from the default values since this would be new functionality on top of just adding a default value for each flag.
In terms of implementation wouldn't that be just a matter of settings flags values only from the list that is returned from the backend? So in case test
flag is not there anymore, we do nothing with it.
from pocket-casts-ios.
In terms of implementation wouldn't that be just a matter of settings flags values only from the list that is returned from the backend?
Yeah, the implementation isn't too bad, I just wanted to make sure it's easily revertible if we end up with issues. I think having a separate commit is fine: 0f4659e
from pocket-casts-ios.
Related Issues (20)
- Transcript: when searching for a word and dismissing the content jumps
- Feature Variation: Create new Carousel based on features
- iOS 18 -> TabController new TabBar design makes app crash
- Referrals - Phase 1
- Minimal Bug: Chapter artwork "glitching" HOT 1
- Update button tap events
- Transcripts: transcript position is not reset when changing episode
- Discover Collection View Refactor
- App crashes when moving items around the shelf section of the player
- Clip sharing: Really laggy - Beta 7.72.0.1 HOT 4
- Sharing from row quick action doesn't trigger the new flow
- Share to X
- Share to Tumblr
- Share to Whatsapp
- Share to Telegram
- New Sharing Design crashes on iPad when opening System Sheet
- Cache exported asset upon creation
- Skip Back is not working HOT 2
- Layout for player effects modal does not handle well longer strings
- Sharing with AirDrop fails HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pocket-casts-ios.