airbnb / airbnb/DeepLinkDispatch

Extending DeepLink annotations

Open
#200 1 comment 1 reaction 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.