Background
The Apps team plans to explore if a personalized Wikipedia Year in Review feature that displays insights about a user's reading history, editing history, and donation history is engaging for App users, and inspires them to make a donation to the Wikimedia Foundation. To deploy this feature, we need to do some initial data set-up.
Task:
- Add Developer settings feature flag
- Create a YiRDataController in WMFData to handle data details
- Create a YiR personalized “report” model
- (TBD on if we persist this via Core Data or SavedContainerCache). This model will contain personalized Year-in-Review slides. Slides have a unique identifier. Each slide item has a “evaluated” boolean and “display” boolean, defaulted to false. Each slide item also has associated metadata (Data type?) that defaults to nil. This model also contains a hardcoded version number and a hardcoded year.
- On app resume:
- Guard that feature flag is on.
- Guard that remote config indicates we should move forward here (country code AND primary app language wiki match, overall kill switch, personalized slide kill switch).
- Pull YiR model from persistence, or create fresh Yir model. Ensure version number and year matches with what we want to evaluate here.
- At this point, add a //todo comment explaining we will eventually evaluate/aggregate personalized slide data at this point and set slide model's evaluated and display booleans to true. (the actual work to be done in here will be a part of each personalized slide task).
No additional development needed for these, just notes.
- Ensure we’re set up for eventual A/B testing of purely collective slides vs showing personalized slides if available
- Eng Note: we will consider this logic when we set up the view models (T376044).
- Ensure we can also add an EN-only collective slide in the release in January.
- Eng note: we will consider this logic when we set up the view models. (T376044).