Page MenuHomePhabricator

Implement Featured article widget for iOS 14
Open, LowPublic

Description

Why are we doing this?

We previously supported a featured article widget and we would like to update the widget so that it is compatible with iOS14

Feature job story

As a reader who uses an iPhone I would like to be able to see the featured article for the day without having to open the app.

Mocks

Widget: Featured article.png (2×3 px, 2 MB)

Event Timeline

JMinor triaged this task as Medium priority.Aug 6 2020, 9:08 PM
LGoto lowered the priority of this task from Medium to Low.Aug 18 2020, 6:26 PM

From OTRS: featured article is still not part of the new widgets and instead is unfairly thrown under
that search springboard page thing with all the unupdated widgets. all I want to do is one
day be able to scroll through my widgets and see on this day, top read, photo of the day
and featured articles all together in the same stack. it's been like six months... when?

@cmadeo What should the error text displayed in the widget be when:

  1. We have no featured article for the date to display (currently using this as placeholder: "A featured article is not available for this date.")
  2. The user's selected language doesn't support the Featured article feature (currently using this as placeholder: "Your primary Wikipedia language does not support Featured article. You can update your primary Wikipedia in the app’s Settings menu." - this mimics the On this day widget language error state text)

@cmadeo What should our placeholder content for this widget be (not the skeleton view, but the transient widget content displayed for preview purposes - on POTD for example, we use the 2019 Commons Picture of the Year)?

@cmadeo What should our placeholder content for this widget be (not the skeleton view, but the transient widget content displayed for preview purposes - on POTD for example, we use the 2019 Commons Picture of the Year)?

Sorry for the late reply, let's use https://en.wikipedia.org/wiki/Moon which was a featured article on August 28, 2007!

  1. We have no featured article for the date to display (currently using this as placeholder: "A featured article is not available for this date.")

@Dmantena do you think it would be appropriate to utilize the fallback (eg Moon) article? I'm assuming that in supported languages this won't happen too often? If not I'm happy to mock up a more explicit error state.

  1. The user's selected language doesn't support the Featured article feature (currently using this as placeholder: "Your primary Wikipedia language does not support Featured article. You can update your primary Wikipedia in the app’s Settings menu." - this mimics the On this day widget language error state text)

Sounds good to me, do you need any assets for this?

@cmadeo What should our placeholder content for this widget be (not the skeleton view, but the transient widget content displayed for preview purposes - on POTD for example, we use the 2019 Commons Picture of the Year)?

Sorry for the late reply, let's use https://en.wikipedia.org/wiki/Moon which was a featured article on August 28, 2007!

@cmadeo Great idea – I'll dig into this.

  1. We have no featured article for the date to display (currently using this as placeholder: "A featured article is not available for this date.")

@Dmantena do you think it would be appropriate to utilize the fallback (eg Moon) article? I'm assuming that in supported languages this won't happen too often? If not I'm happy to mock up a more explicit error state.

I think this is a case where it might be advantageous to use the "Featured article not available" type placeholder instead of actual content. While the placeholder context I mentioned above is more transient, this would display in persistent contexts where it'd potentially be unexpected to see an English featured article if that wasn't your primary language.

An alternative approach could be to curate a featured article per language we support for featured articles (19 languages), persist a cache of that data to bundle with the app (would increase binary size), and display it on failure. I think just the "not available for this date" message (localized to the user's language) would be a simpler alternative to this, especially since this error state isn't very likely to be displayed unless there is some catastrophic failure with the featured content API or the user intentionally changes their device time to something wildly out of range.

  1. The user's selected language doesn't support the Featured article feature (currently using this as placeholder: "Your primary Wikipedia language does not support Featured article. You can update your primary Wikipedia in the app’s Settings menu." - this mimics the On this day widget language error state text)

Sounds good to me, do you need any assets for this?

I think I'm all set! I'm just reusing the same error state design that I believe you previously ok'd that the On this day widget is using. Happy to dig up a screenshot if you can't immediately recall what that looks like.

Thanks @Dmantena

I think this is a case where it might be advantageous to use the "Featured article not available" type placeholder instead of actual content. While the placeholder context I mentioned above is more transient, this would display in persistent contexts where it'd potentially be unexpected to see an English featured article if that wasn't your primary language.

An alternative approach could be to curate a featured article per language we support for featured articles (19 languages), persist a cache of that data to bundle with the app (would increase binary size), and display it on failure. I think just the "not available for this date" message (localized to the user's language) would be a simpler alternative to this, especially since this error state isn't very likely to be displayed unless there is some catastrophic failure with the featured content API or the user intentionally changes their device time to something wildly out of range.

Thanks for this helpful explanation! I'll go ahead and make a 'no data available for this date' error state, sounds much less complicated / more transparent and straight forward. Thank you for helping me understand why this is the better approach!

I think I'm all set! I'm just reusing the same error state design that I believe you previously ok'd that the On this day widget is using. Happy to dig up a screenshot if you can't immediately recall what that looks like.

No worries, I remember what it looks like

Thanks for this helpful explanation! I'll go ahead and make a 'no data available for this date' error state, sounds much less complicated / more transparent and straight forward. Thank you for helping me understand why this is the better approach!

@cmadeo Actually, I don't think we need a brand new UI state for this. I figure we could just reuse the same simple message UI as the "On this day" error state – I just wanted to confirm with you what error text (e.g. "A featured article is not available for this date.") to display when this occurs. I think reusing that existing error state UI works well in this context.

Does that make sense, or are you thinking there's a benefit to showing different UI in this case?

@Dmantena Sounds good to me! I was thinking the same thing! Thanks!