Background
Our first version of year in review showed how many articles you had read in each category by looping through your history tab. Each time a user views an article, we record it with the date last accessed, overriding the previous date if the person has viewed it before. We aren't currently able to surface to users how many times they viewed different articles, or their most viewed articles overall. This functionality would be useful for the upcoming version of Apps Year-in-Review, if it is implemented ahead of time.
User story
As a frequent app user, I want to see know what my personal Top-read articles were from the past year in Year-in-Review, so I can share with friends and gain insights about my own Wikipedia usage.
Requirements
- The history tab should be able to record multiple visits to the same article
- This information should be query-able for future use in the Year-in-Review feature
Engineering Notes
Considering this and the related source data to add (T372801), I think it would be good to store these viewed records in a separate database table rather than messing with the high-risk WMFArticle entity.
This will involve creating a new Core Data stack (a WMFCoreDataStore class) in WMFData. The large estimate is mainly based on unfamiliarity with Core Data in that context.
QA Notes
This can't be tested yet via UI in the app. Regression test of launch times (especially upgrading from 7.6.0 on an app that has a large history).