Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alessandro/onboarding add to dock experiment setup #3679

Merged

Conversation

alessandroboron
Copy link
Contributor

@alessandroboron alessandroboron commented Dec 5, 2024

Task/Issue URL: https://app.asana.com/0/1206329551987282/1208662187851716/f

Description:

This PR setup the Add to Dock experiment to be prompted from the onboarding flow.

The commits are self-contained. The PR includes a small cleanup of unused onboarding variables (last commit). You can review that one separately to avoid polluting the overall review

Steps to test this PR:

Scenario 1 - Present Add to Dock from linear onboarding

  1. Add return VariantIOS(name: "mk", weight: 1, isIncluded: VariantIOS.When.notPadDevice, features: [.addToDockIntro]) in DefaultVariantManager -> selectVariant() -> Variant? at line 155.
  2. Add return true in HomeRowReminder -> func showNow() -> Bool at line 55 (after the variant check)
  3. Launch the App.
  4. Ensure that Add to Dock Dax dialog is presented after "Set Default Browser" dialog.
  5. Ensure that the Add To Dock Banner at the top of the web view is not presented after tapping on the first suggested search.
  6. Continue with the flow and ensure that the Add to Dock promo is not presented in the final contextual dialog.
  7. Repeat the test and ensure that the “Show me how” button in the Add to Dock promo dialog shows the video tutorial.
  8. Background and foreground the app while the video is playing and ensure the video resumes playing.
  9. Ensure that the onboarding flow continues when tapping the “Got It” button.

Scenario 2 - Add to Dock is presented from contextual onboarding

  1. Add return VariantIOS(name: "mo", weight: 1, isIncluded: VariantIOS.When.notPadDevice, features: [.addToDockContextual]) in DefaultVariantManager -> selectVariant() -> Variant? at line 155.
  2. Add return true in HomeRowReminder -> func showNow() -> Bool at line 55 (after the variant check)
  3. Launch the App.
  4. Ensure that Add to Dock Dax dialog is not presented after "Set Default Browser" dialog.
  5. Ensure that the Add To Dock Banner at the top of the web view is not presented after tapping on the first suggested search.
  6. Continue with the flow and ensure that the Add to Dock promo is presented in the final contextual dialog.
  7. Repeat the test and ensure that the “Show me how” button in the Add to Dock contextual dialog shows the video tutorial.
  8. Background and foreground the app while the video is playing and ensure the video resumes playing.
  9. Ensure that the the dialog is dismissed upon tapping “Start Browsing".

Scenario 3 - Add To Dock is presented from banner for control variant

  1. Add return VariantIOS(name: "mh", weight: 1, isIncluded: VariantIOS.When.notPadDevice, features: []) in DefaultVariantManager -> selectVariant() -> Variant? at line 155.
  2. Add return true in HomeRowReminder -> func showNow() -> Bool at line 55 (after the variant check)
  3. Launch the App
  4. Ensure that the App to Dock Dax Dialog does not appear in the onboarding flow.
  5. Ensure that the Add to Dock banner appears after the first search (since we return true)

Scenario 4 - Smoke test pixels are sent
Link to the Pixel scenarios #3543

Definition of Done (Internal Only):

Copy Testing:

  • Use of correct apostrophes in new copy, ie rather than '

Orientation Testing:

  • Portrait
  • Landscape

Device Testing:

  • iPhone SE (1st Gen)
  • iPhone 8
  • iPhone X
  • iPhone 14 Pro
  • iPad

OS Testing:

  • iOS 15
  • iOS 16
  • iOS 17

Theme Testing:

  • Light theme
  • Dark theme

Internal references:

Software Engineering Expectations
Technical Design Template

@alessandroboron alessandroboron changed the base branch from alessandro/onboarding-add-to-dock-ship-review to alessandro/onboarding-add-to-dock-clean-up-old-code December 5, 2024 11:46
Task/Issue URL:
https://app.asana.com/0/1206329551987282/1208258905717852/f

**Description**:
This PR removes the onboarding experiment branches and sets the onboarding highlights and contextual dialogs for all the users.
Base automatically changed from alessandro/onboarding-add-to-dock-clean-up-old-code to alessandro/onboarding-add-to-dock-ship-review December 5, 2024 16:39
Copy link
Contributor

@SabrinaTardio SabrinaTardio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great Job

Comment on lines +44 to +49
.onReceive(NotificationCenter.default.publisher(for: UIApplication.didEnterBackgroundNotification), perform: { _ in
isPlaying.wrappedValue = false
})
.onReceive(NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification)) { _ in
isPlaying.wrappedValue = true
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice thinking!

@alessandroboron alessandroboron force-pushed the alessandro/onboarding-add-to-dock-experiment-setup branch from 0d135e6 to c8d2e97 Compare December 6, 2024 08:43
@alessandroboron alessandroboron changed the base branch from alessandro/onboarding-add-to-dock-ship-review to main December 6, 2024 08:53
Copy link

github-actions bot commented Dec 6, 2024

Warnings
⚠️ PR has more than 500 lines of code changing. Consider splitting into smaller PRs if possible.
Messages
📖

You seem to be updating localized strings. Make sure that you request translations and include translated strings before you ship your change. See Localization Guidelines for more information.

Generated by 🚫 dangerJS against 79034fd

@alessandroboron
Copy link
Contributor Author

@SabrinaTardio as per our discussion instead of opening another PR I followed your advice and changed the main target branch to be main

@alessandroboron alessandroboron merged commit a4f4eb0 into main Dec 6, 2024
13 checks passed
@alessandroboron alessandroboron deleted the alessandro/onboarding-add-to-dock-experiment-setup branch December 6, 2024 10:47
samsymons added a commit that referenced this pull request Dec 6, 2024
…ild-number

# By Alessandro Boron (1) and Sabrina Tardio (1)
# Via GitHub
* main:
  add fake experiment (#3688)
  Alessandro/onboarding add to dock experiment setup (#3679)

# Conflicts:
#	DuckDuckGo.xcodeproj/project.pbxproj
#	DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants