Closed justinabrahms closed 1 year ago
Hey @justinabrahms, thanks for putting this together. It's very interesting to learn more about how you're doing mobile feature flagging. I'll have to think a bit more about your specific concerns. They all make sense but I'm not sure the best way to solve them at the moment.
Conditional defaults is an interesting idea. Perhaps we could do something similar if we allowed the after hook to change the return value. I'll have to think about this one a bit more too but I could see how this could be very useful.
1 is pretty straight forward, though a fair bit of work. 2 could be solved at the client level by making it explicit that it's blocking or not. If not, we could name the method correctly or do it based on return type? 3 is also do-able, but is probably something that would be a bit complex.
I think conditional defaults may work if we did something like provided a thunk (delayed computation) for calculating the default in addition/instead of the raw value. So the param would be OneOf<String | Function<String>>
, as an example.
I'm hoping to have a meeting w/ some iOS folks in the next few weeks.
I had a chat w/ eBay's iOS group this week to get feedback about how they saw our spec / implementations. This is their feedback.
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in next 60 days.
Flow
, and some other types/libs as well, but making it suspendable
is already a good start. Do not forget about KMP, at some point a full Kotlin rewrite would be needed.This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in next 60 days.
This issue was closed automatically because there has not been any activity for 90 days. You can reopen the issue if you would like to continue to work on it.
Hey folks.
I had a good chat w/ one of eBay's android engineers, @bfasching. He took a look at open feature with an eye towards what would work and what wouldn't.
There were 4 big things that came out of that.
suspend
methods andflow
to play nicely in their control flow.He also demo'd a cool feature we have in our internal SDK that allows conditional defaults based on context. We use that, for instance, to provide different defaults for the German website versus the US website, because the app is aware of which site people use. The specific syntax was kotlin oriented.. but we didn't have an extension point where someone might do something cool with the default value. The best idea I had was we could maybe have another aggregate provider to check to interrogate the context/flag eval options to do the right thing... but that's really hacky.
Interested to hear others' thoughts on the above.