Page MenuHomePhabricator

Onboarding: Feed Loading Screen
Closed, ResolvedPublic0 Estimated Story Points

Description

Background

A cold start into an empty or generic feed can undercut the personalization work done in previous onboarding steps. This transitional screen gives the app time to process the user's selections and signals to the user that something meaningful is being built for them — setting a positive expectation before they land in the feed. After completing all onboarding steps, users should see a transitional loading screen ("Great! Let's build your feed...") while the app assembles their personalized explore feed based on the choices made during onboarding. This is the final step before landing in the app.

User Story

As a new user who has completed onboarding, I want to receive a visual indicator that my feed is being built, so that when I land in the explore feed with content that reflects my preferences I feel oriented.

Requirements

  • After the final onboarding step, users should see a loading screen with an animated illustration while the app processes their selections (interests, feed preference, languages).
  • Once loading is complete, users should be taken directly to the home feed
  • [If possible] Preload the feed while the animation is showing so that they don't have to wait after the animation for the feed to load.

Design Link

Figma link (static image inside flow for reference) →

Animation preview →

json file optimized →

Note: the implemented image should have a max width of 240px (see Figma for reference), which is a smaller width than the exported Lottie - let's scale it in code.

Toni Handoff Notes

Based on progress at PR https://github.com/wikimedia/wikipedia-ios/pull/5995

This work has not been done. While this animation is running, it may be a good idea to make these calls in WMFHomeDataController:

  1. fetchForYou (don't force fetch)
  2. fetchCommunity (don't force fetch)

We won't be doing anything with the data for this view, but it will be enough to hydrate the cache, so that the Community and For You data loads almost immediately when this animation is dismissed.

Eng notes

  1. Need to install Lottie to work with JSON animation

Related Objects

Event Timeline

HNordeenWMF lowered the priority of this task from Medium to Low.Jun 16 2026, 4:00 PM
HNordeenWMF raised the priority of this task from Low to Medium.Jun 29 2026, 1:36 PM
HNordeenWMF added a project: App Experience.
Mazevedo set the point value for this task to 5.
HNordeenWMF lowered the priority of this task from Medium to Low.Jun 30 2026, 3:45 PM
Mazevedo changed the point value for this task from 5 to 3.Jul 2 2026, 5:32 PM
Mazevedo subscribed.

@HNordeenWMF I updated the original estimate, doing the swipe gesture spike today I figured that using Lottie is much simpler

HNordeenWMF raised the priority of this task from Low to Medium.Jul 13 2026, 7:57 PM

Test notes

Available in 8.3.0 (6110) and newer builds

Fresh install the app.
In dev settings, enable Home Feed and Always Show New Onboarding.
Quit the app in the background and reopen - with the flag on, you can repeat this step
Make sure the requirements and UI match the tickets
Go to settings -> home -> community -> what's driving your feed. You should see the topics you selected.

Note:
With the "Always Show New Onboarding" flag, you can trigger the onboarding several times in one install. Going through the onboarding more than once in the same install will display interests you selected before. This is by design, as we need to save the interests and we are reusing this component in settings.

Seddon changed the point value for this task from 3 to 0.Wed, Jul 29, 4:46 PM
Seddon set Final Story Points to 3.
ABorbaWMF subscribed.

Testing 6139-beta-2026-08-06

Requirement✅❓❌Notes
After the final onboarding step, users should see a loading screen with an animated illustration while the app processes their selections (interests, feed preference, languages).Works as expected
Once loading is complete, users should be taken directly to the home feedWorks as expected
[If possible] Preload the feed while the animation is showing so that they don't have to wait after the animation for the feed to load.Works as expected