detail: tap a search row to open app detail with version timeline#4
Merged
Conversation
m2 ships the navigation shell + listVersions over the private storefront. when stealth borrowed an account at launch, taps load softwareVersion ExternalIdentifiers and render a tappable timeline. without an account the detail screen explains how to recover (Settings > Stealth diagnostics). * AppDetailView + AppDetailViewModel * AccountStore env-object: walks CompositeImporter on launch and caches the active Account; debug Settings can override via setActive() * AppStoreClient.listVersions backed by ListVersions.run — POST plist to /WebObjects/MZFinance.woa/wa/volumeStoreDownloadProduct, parse songList[0].metadata.softwareVersionExternalIdentifiers, reverse so callers see latest first * PlistCoder + Endpoints.privateStorefront() helper (download endpoint is shared with listVersions; payload distinguishes them) * VersionInfo model — m2 only fills externalIdentifier; displayVersion + releaseDate land in m2.5 via PartialZipReader * SearchView row -> NavigationLink to detail * EvilStoreApp wires AccountStore env-object and kicks bootstrap() ios 14 baseline preserved (no .monospaced(), no .task(id:)). without an account this is still useful: the search tab keeps working on public itunes apis and the detail page renders the header so users can verify they picked the right app.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
what
tap any search result -> app detail view with a timeline of historic
versions. needs a borrowed Account to populate the timeline; without one
the screen explains how to recover.
why
cookies, DSID/GUID headers) so M3 download can reuse the wiring
storefront bridges happen
changes
test
latest pinned at top
next
m2.5 = PartialZipReader (HTTP Range -> zip CD -> Info.plist) to resolve
display version + releaseDate per external id, replacing the bare
"ext NNNNN" labels with "9.7.2 - 2026-04-30".