**Background**
As the iOS team rolls out new features, we typically add announcements and onboarding (Example: T358894). When adding a new announcement, we want to ensure that 1) it doesn't conflict with existing modals and 2) it's consistent with the behavior of other modals when logical and 3) it is presented at the right moment for the user to take action.
Through this task, we want to take stock of our current prompts, pop-ups, and onboarding, and create a resource for our future selves. This documentation can be referenced the next time we need to add a modal, when working on refreshed Navigation, and while onboarding new team members.
**The Task**
[] Review our code to share when we see what tooltips and pop up prompts
- For each prompt, include a screenshot and the conditions under which it's shown (Example: https://phabricator.wikimedia.org/T301426#7746204)
[] Mark those that will be affected by Navigation Round 2 so we can ensure we update them
[] Identify if any tooltips have been broken by Navigation changes, and create tasks to fix them
**Must haves**
[ ] A list or visual of our current tooltips and pop up prompts and when they are triggered written in a way easy for the PM and Designer to comprehend
**User Stories**
As the PM, I want to know what tool tips or pop ups exist in the app and when they are triggered, so that I can write clear requirements for a new feature announcement.
As a Designer, I want to know quickly understand which users have seen which onboarding pop-ups or modals before arriving at our new feature.
**Reference: **
Android Map: https://phabricator.wikimedia.org/T301426#7746204
**Engineering Notes**
TS - Just noting some files I'm aware of that we can look into for documenting.
1. Panels.swift. This file contains all of the code for our legacy "Panels" class. They are displayed via helper methods in the same file prefixed with something like: `wmf_show{Feature}Panel`. So I advise seeing where those methods are called and documenting how they are triggered. Trigger them if needed, and take a screenshot.
2. WMFFeatureAnnouncing.swift. This file contains logic for presenting our feature announcements. It hasn't propagated very far yet, but worth documenting. See where all the `announceFeature` method is triggered and document/screenshot.
3. Filter the project files in Xcode by "Welcome". Determine where those classes are triggered and document/screenshot. These are our legacy onboarding views.
4. Filter the project files in Xcode by "Onboarding". Determine where those classes are triggered and document/screenshot. These are our newer views.
5. WMFTooltipPresenting.swift `displayTooltips` method displays our newer tooltips. This also hasn't propagated very far yet, but worth documenting. See where all the `displayTooltips` method is triggered and document/screenshot.
6. UIViewController+Popover.swift. The methods in this file displays our legacy tooltips. See where all `wmf_presentDynamicHeightPopoverViewController` method is triggered and document/screenshot.
7. Last Resort: search the codebase for `present(` or `presentViewController` to determine everywhere where a view controller is presenting another view controller. This will likely give you tons of misfires because this API is used for presenting any view (such as Settings > Languages, which I don't think this task cares about documenting). But you can try searching this and see if anything looks like it falls under this task description for documentation.
#####References
-[[ https://miro.com/app/board/o9J_lYrUbes=/?moveToWidget=3074457353263084457&cot=14 | Information architecture explorations for the iOS app ]]