Gadgets hub · iOS UI verification

2026-09-25 · PRs #3704 (hub redesign), #3705 (topics grid), #3707 (topic screen), #3709 (My Gadgets rows) · driven with android-ui-analyser 0.30.0 on the iOS simulator

How it was run

BuildThe three stacked branches plus fix/3708-drafts-row merged into one local verification branch, Dev scheme, staging backend, guest session.
FlagsLaunched with --uitesting --feature-flag-apps_hub_experiment:c --feature-flag-simplification_experiment:control, so the Apps tab lands on Gadgets inside the tab-bar shell.
SimulatorsiPhone 17 Pro Max · iOS 26.1 · 440pt (the widest phone) and iPhone X · iOS 16.2 · 375pt (the narrow phone the rail fix on #3704 targets).
MethodThe analyser reads the accessibility tree (element ids, text, bounds) and drives taps and scrolls by element id; screenshots are the visual record, Figma frames sit beside them.

Summary

CheckPro Max 440ptiPhone X 375ptNotes
New viewer hub: cover fan, intro copy, Recommended as a list with Similar, Topics gridpass—Guest with no history on the Pro Max
Returning viewer hub: Your Gadgets rail with the create tile, Recommended as a row, Topics grid—passThe iPhone X guest had one recently used tool, which gives the rail one tile
Rail and Recommended row fit the column on a 375pt phone (the blocking finding on #3704)passpassTiles step down to the medium size; the rightmost tile ends inside the 16pt margin
Topics grid: seven cards in 2/3+1/3, thirds, halves; rank-1 card spells the unitpasspass"65 Mini Apps" on Tools, bare counts elsewhere
Tapping a topic card opens the topic screen with the grid's countpasspassHeader reads "Tools · 65 Mini Apps"
Similar on a Recommended row opens the row's topicpass—Photoedit → Creative
Topic tabs keep their own lists; Top 10 ranks its rows; All pages on scrollpass—All grew from 1 page to 2 after scrolling to the end
Topic screen search button drawn disabledpasspassUntil search within a topic has a design
Topic screen child identifiers reachable (back, header, tabs)fixedpass after fixSee finding 1
Your Gadgets with drafts (dashed line), From your conversations, My Gadgets tabs (#3709)not coveredNeed a signed-in account with content on these simulators

Findings

1 · Topic screen identifiers were unreachable fixed on #3707

The analyser reported the back button, the header card and the three tabs all under the root's gadget_topic_view identifier: the root's accessibilityIdentifier overwrote its children's. A UI test could not have reached any of them. Fixed by making the root a container (.accessibilityElement(children: .contain)), commit b896aca11; re-read after the fix shows gadget_topic_back, gadget_topic_header, gadget_topic_search and LDSTabUnderline.top / .new / .all.

2 · Copy differs from the frames because Phrase does note

3 · Four recommendations, not five backend

The fan, the Recommended list and the Recommended row all show four gadgets. The client keeps up to five (#3704); the landing payload sends four, as agreed on #3663. The fifth row or tile depends on the backend raising its count.

4 · Narrow phone pass

On the 375pt column the rail and the Recommended row take the medium tile with the spread gap; on 440pt the rail would take the big tile. Measured from the accessibility bounds on the iPhone X: the last Recommended tile ends at 292pt of a 375pt screen, the Tools card ends at 244pt and the Creative card at 364pt, all inside the 16pt margins. (Bounds include the tile's glass rim and the card's bleeding artwork, so they read a few points larger than the frames.)

Screens

New viewer hub

Figma: new viewer hub
Figma · zero state with Recommended as a list
Simulator: new viewer hub
iPhone 17 Pro Max · guest, nothing of their own
Simulator: topics grid
iPhone 17 Pro Max · scrolled to the Topics grid

Returning viewer hub

Figma: returning viewer hub
Figma · Your Gadgets rail with Recommended as a row
Simulator: returning viewer hub on iPhone X
iPhone X · one recently used tool, so the rail has a tile and the create tile; tiles at the medium size
Simulator: topics grid on iPhone X
iPhone X · Topics grid

Topic screen

Figma: topic screen
Figma · selected topic
Simulator: Top 10
iPhone 17 Pro Max · Top 10, ranked
Simulator: New
iPhone 17 Pro Max · New
Simulator: All
iPhone 17 Pro Max · All
Simulator: All, second page
iPhone 17 Pro Max · All after paging
Simulator: topic screen on iPhone X
iPhone X · Top 10

Not covered here

The signed-in states need an account with content on these simulators: the rail with drafts (dashed line) and the audience glyphs, From your conversations, and the four My Gadgets tabs from #3709. The Figma frames for those are below for reference; the simulator captures Matias took on 2026-09-24 are attached to #3709.

Figma: From your conversations
Figma · rail + From your conversations
Figma: My Gadgets Drafts
Figma · My Gadgets · Drafts
Figma: My Gadgets Published
Figma · My Gadgets · Published
Figma: My Gadgets Saved
Figma · My Gadgets · Saved