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

onboarding updates #398

Merged
merged 29 commits into from
Jan 24, 2022
Merged

onboarding updates #398

merged 29 commits into from
Jan 24, 2022

Conversation

brindy
Copy link
Contributor

@brindy brindy commented Jan 14, 2022

Task/Issue URL: https://app.asana.com/0/392891325557410/1201320333982195
Tech Design URL:
CC:

Description:

  • Empty states for bookmark popover and manager UI
  • Empty state for logins+
  • Additional info screen for the data importer
  • Text typing animation
  • Design updates for onboarding
  • Add manual trigger for re-triggering the onboarding about:welcome

Notes:

  • Typing animation should be good on macOS 12, but before that the word wrapping might be obvious. We're OK with that.

Steps to test this PR:

  1. Check empty states for bookmark popover and manager UI
  2. Check empty state for logins+
  3. Check additional info screen for the data importer shown for Chromium and Firefox when importing logins (button should change to 'next' when logins is selected)
  4. Check text typing animation during onboarding, confirm that clicking anywhere skips typing on the current screen and shows the buttons
  5. Check manual trigger for re-triggering the onboarding about:welcome and confirm works as expected in "clean" install scenario

Internal references:

Software Engineering Expectations
Technical Design Template
When ready for review, remember to post the PR in MM

@brindy brindy requested a review from samsymons January 14, 2022 13:28
Copy link
Collaborator

@samsymons samsymons left a comment

Choose a reason for hiding this comment

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

LGTM, no real issues here – ran through all of the new features and it all looks great. Only a couple small things:

  • Unit tests are failing
  • I definitely see these errors you mentioned, even though the app compiles. A few errors about AppKit types not being available, but clearly they are. Xcode 13.2 issue I guess
  • The Import button spacing feels a little cramped. I would expect it to have the same spacing as the title/description text have between each other. That said, if this is consistent with the design then please ignore this 🙂
  • We show the Chrome Keychain password copy even if the app does have access to the key (i.e. has been granted permission in the past), meaning that we tell users they'll be prompted but then they aren't. Pretty minor in the grand scheme of things, and to be honest I'm inclined to keep the copy anyway – better to always explain what's happening with user data at sensitive as this.

Import Button

@samsymons
Copy link
Collaborator

I also still see the text jumping around in the typing animation but that's a known issue related to having emoji in the strings yeah? I forget where you got to on that issue sorry.

@brindy
Copy link
Contributor Author

brindy commented Jan 19, 2022

Addressed (or deliberately ignored) all your points. :)

This is ready for another review, please :)

@brindy
Copy link
Contributor Author

brindy commented Jan 19, 2022

@bstandaert-ddg any chance you can give this a bit of a hammering if you've got time, please?

@brindy brindy changed the title onboarding updates (wip) onboarding updates Jan 19, 2022
let chars = Array(text)
let untypedChars = chars[Array(typedText).count ..< chars.count]
let combined = NSMutableAttributedString(string: typedText)
combined.append(NSAttributedString(string: String(untypedChars), attributes: [
Copy link
Collaborator

Choose a reason for hiding this comment

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

For some reason this just reminded me that there's a new attributed string API in macOS 12. Not really relevant here, but I'm excited to be able to use it one day.

Copy link
Collaborator

@samsymons samsymons left a comment

Choose a reason for hiding this comment

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

New changes look good. I bashed on the import flow a bunch and tested importing, canceling early, etc. Nothing seems to be blocking onboarding from progressing now, and the changes to the importer all worked for me. 🙂

@bstandaert-ddg
Copy link

bstandaert-ddg commented Jan 20, 2022

@brindy If I type about:welcome, once I get to the import step and click "import", the browser crashes:
Screen Shot 2022-01-19 at 10 27 25 PM

Perhaps related, Xcode is showing me these weird errors:
Screen Shot 2022-01-19 at 10 29 11 PM
(My usual approach to making xcode happy is git submodule update + clean build folder, but that doesn't seem to be working here)

Any ideas?

@brindy
Copy link
Contributor Author

brindy commented Jan 20, 2022

@bstandaert-ddg

Absolutely no idea 😬

Could try nuking your DerivedData folder:

  1. Do Cmd-Shift-K in Xcode to do a clean inside the IDE
  2. Close Xcode
  3. Delete the DerivedData folder with this command rm -rf ~/Library/Developer/Xcode/DerivedData
  4. Open Xcode
  5. Build and Run

I'm on Xcode 13.2.1 if that matters.

Also that screenshot looks unfamiliar - where in the Xcode UI is that from?

Finally, I presume you have at least one of those browsers installed?

@bstandaert-ddg
Copy link

Thanks for the suggestion. The Xcode errors are gone now, but it's still crashing when I try to import. Will take a look later and see if I can figure out why.

@bstandaert-ddg
Copy link

The crash I was seeing turned out to be unrelated to this PR. Made an asana task: https://app.asana.com/0/1199178362774117/1201696927820456/f

Will get back to testing this shortly.

Copy link
Collaborator

@samsymons samsymons left a comment

Choose a reason for hiding this comment

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

Bashed on the changes to the importer a bit and looked over the design changes, looks good!

@bstandaert-ddg
Copy link

I don't see any issues either!

One tiny question: If I click "import", then "cancel" from within the dialog, the welcome page moves on to the next step (default browser). Is that expected, or should it stay on the import step until I click "maybe later"?

@brindy
Copy link
Contributor Author

brindy commented Jan 24, 2022

Thanks @bstandaert-ddg - it's consistent with the set default one too. Possibly worth creating a follow up task for.

@brindy brindy merged commit 9bcee10 into develop Jan 24, 2022
@brindy brindy deleted the brindy/onboarding-v2 branch January 24, 2022 16:13
samsymons added a commit that referenced this pull request Feb 1, 2022
* develop:
  Version 0.18.5
  support privacy config for clickToLoad (#407)
  Automatically select available login (#405)
  initial FB Click to Load (WIP) (#329)
  onboarding updates (#398)
  Version 0.18.4
  Configuration of Sparkle - Setting SUAllowsAutomaticUpdates to NO (#404)
  Hide downloads button if the popover is opened/closed manually (#397)
samsymons added a commit that referenced this pull request Feb 18, 2022
# By Alexey Martemyanov (20) and others
# Via Tomas Strba (2) and others
* develop: (63 commits)
  Tweaks of suggestions and autocomplete (#403)
  Bump privacy dashboard to latest version (#409)
  Point to the latest BrowserServicesKit branch. (#414)
  Move embedded TDS from BSK to platform repo (#412)
  Image of shield with dot replaced (#410)
  Expand Fireproofing to include Local Storage and IndexedDB (#408)
  Version 0.18.5
  support privacy config for clickToLoad (#407)
  Automatically select available login (#405)
  initial FB Click to Load (WIP) (#329)
  onboarding updates (#398)
  Version 0.18.4
  Configuration of Sparkle - Setting SUAllowsAutomaticUpdates to NO (#404)
  Hide downloads button if the popover is opened/closed manually (#397)
  Textfield of the homepage is empty and unfocused right after switching to the homepage (#400)
  Remove navigatorCredentials (#392)
  Remove GPC header if it exists when not needed (#366)
  Version 0.18.3
  Fireproofing encrypted storage (#332)
  Fix Lock Screen UI issues (#399)
  ...

# Conflicts:
#	DuckDuckGo.xcodeproj/project.pbxproj
#	DuckDuckGo/Crash Reports/Model/CrashReportSender.swift
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.

3 participants