airbnb / airbnb/DeepLinkDispatch
Extending DeepLink annotations
- Dominant language
- Kotlin
- Stars
- 4.4k
- Forks
- 414
- PR merge metrics
- No merged PRs in 30d
Description
I have two screens (activities) working under A/B tests. They should share the same deeplink, the only difference is that if a feature flag is enabled, it should show one activity and if not, show the other.
How can I extend the annotations in order to implement this?
Ideally I would like to have something like:
```
@AppDeepLink(value = "invite/{id}", ifFeatureFlagTrue = "myResource#useA.bool")
public class InviteActivityA ...
```
```
@AppDeepLink(value = "invite/{id}", ifFeatureFlagFalse = "myResource#useA.bool")
public class InviteActivityB ...
```
Then implement the logic to grab the feature flag value in the loader or somewhere. By the way, I'm using Swrve for the feature flags.
Contributor guide
Research direction
Start with the AppDeepLink annotations and the loader, then review how Swrve feature-flag values could be accessed during deep-link handling. Determine the design needed for two activities sharing one deep link while selecting one based on the flag, and verify that both true and false cases route correctly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100