Background
Once users have moved past the intro screens, they should be given the opportunity to select topics and articles they care about. This task covers the "Follow your curiosity" and "What are you interested in?" screens where users can browse categories, filter article cards, and select individual articles to personalize their feed.
User Story
As a new user, I want to select topics and articles I care about during onboarding, so that my explore feed is personalized to my interests from the start.
Requirements
- When users proceed from the privacy screen, users should be introduced the concept of personalization with emphasis on collecting minimal data with the "Follow your curiosity" screen. Users can choose to skip personalization which lands them into the community feed. Alternatively users can move forward through the next step of onboarding which will be to personalize their feed.
- Users should be presented with a set of topic/category chips and a masonry grid of article cards they can browse related to that category.
- Before any selections are made, Article cards should be the same as what's shown in discover when someone selects "Let me choose based on my interests" (Confer with Android engineers for Logic)
- It's acceptable to have a maximum of 25 articles that load.
- Topic chips list should match Android, and all existing translations are available from the growth topics integration
- Selecting a topic chip should show a random assortment of article cards relevant articles to that topic into the article section
- Upon selection of a new or additional topic, articles related to that topic replace all previous articles on the screen. Any previously selected articles remain on screen with a highlighted state
- Selecting a topic chip or article will allow them to see articles relate to that topic/article in the "For you" tab later on
- Users should be able to tap individual article cards to select them. Selected articles should be visually indicated within their topic and a counter at the bottom should reflect the number of selections.
- Users should be able to search for a specific article using the search bar to add to their selected articles list (they have multiple languages. They should be able to access their languages and search from this view)
- Do not allow non-mainspace articles to be added: If a user attempts to add an interest article that is a non-Mainspace article, show a toast/error that says, "Only articles in the main namespace can be added as interests."
- Users can skip this step entirely, which should land them in the community feed. Alternatively, they can proceed to the next onboarding step with or without selections.
- If users fail to select interests and they have not read at least 5 articles, then they should see an "empty state" version of their For You tab. A separate ticket will be created to cover the Empty State version of the For You feed
- If a user abandons the flow after having made selections but not completing onboarding, apply the selections to their feed upon next open of the app
- [Moved to separate task] Sort articles chips by those with images at the top, article chips without images at bottom. (Android sorts by imageUrl)
- [Moved to separate task] Filter out disambiguation pages from the article suggestions
Nice to have
Add a language drop-down selector to the onboarding screen so that users can easily change what language they're doing the Topic search within
- Upon changing the drop down: topics stay consistent (keep existing topic selections)
- Articles shown under topics update to selected language (keep existing article selections)
Design Link
• Follow your curiosity Figma link →
• Initial state of the screen: nothing selected Figma link →
• 1 category selected (example) Figma link →
• 1 individual article within a category selected (example) Figma link →
• Another category selected (example) Figma link →
Interaction video - personalization: https://drive.google.com/file/d/1P2t3Z7-8YDH_6y33NvH1LMja5VwA6eu0/view?usp=drive_link
Android task for reference
https://phabricator.wikimedia.org/T418770
https://phabricator.wikimedia.org/T427296
Toni Handoff Notes
Based on progress at PR https://github.com/wikimedia/wikipedia-ios/pull/5995
Just going to note the things that were not done as opposed to the things that were done. I build this screen to be pushed on from the Home Settings view, so it is NOT yet a part of any onboarding flow. Any reference to the onboarding flow in this task description still needs to be done.
Interests selections view is built in WMFHomeFeedInterestsSettingsView and can be reached through Home Settings. Note all UI is stub, it will need to be improved upon to match Figma, tested for dynamic type, theming, layout on iPad, rotation, etc. UI was generated so we should double-check that it matches our patterns (WMFFont, WMFLocalizedString, etc.). Voice Over should be tested and improved.
Topic chips list should match Android, and all existing translations are available from the growth topics integration
My understanding is topic display text are native translations, so we will need to find away to export the native topic translations from Android and import them into iOS.
Users should be able to search for a specific article using the search bar to add to their selected articles list (they have multiple languages. They should be able to access their languages and search from this view)
None of this was worked on, Search will need to be added to WMFHomeFeedInterestsSettingsView. It may be worth trying to bring in https://github.com/wikimedia/wikipedia-ios/pull/5636, since a rewritten Search in SwiftUI and WMFComponents would be easier to integrate on this view as it is now.
Do not allow non-mainspace articles to be added: If a user attempts to add an interest article that is a non-Mainspace article, show a toast/error that says, "Only articles in the main namespace can be added as interests."
This still needs to be done.