Page MenuHomePhabricator

Widgets: Move from Core Data dependency to self-contained content fetching
Open, LowPublic

Description

We currently have 4 home screen widgets: Picture of the day, On this day, Top read, and Featured article. These widgets (with the exception of Featured Article) rely on using shared Core Data access with the main app to fetch the data presented in them. This dependency with our main app served us at the time, making use of existing work to quickly get widgets shipped. However, shared Core Data access in app extensions is notoriously error prone, and while we've tried to address this issue (like with exclusive locks when accessing that data), we continue to see unexpected behavior/crashes potentially related to this work. See https://phabricator.wikimedia.org/T268677#7168322 for more details.

It would instead be more ideal for widgets to, indepedent of the primary app, fetch data directly from Wikifeeds and keep the data in a shared cache. This fetching model has been implemented and proved out already for the Featured article widget.

The benefits of this new approach:

This is the parent task representing the widget debt tasks to move to this new model.

Event Timeline

LGoto triaged this task as Medium priority.Jan 24 2023, 7:43 PM
LGoto moved this task from Needs Triage to Engineering Backlog on the Wikipedia-iOS-App-Backlog board.
JTannerWMF lowered the priority of this task from Medium to Low.May 2 2023, 8:59 PM