Files
noo/distribution/store-assets/README.md
T
Ayushya AmitabhandClaude Sonnet 5.5 660d0bc869
Check PR / check (pull_request) Successful in 59s
Store assets: App Store header, search results, iPhone 6.3 and foldable sizes
Adds ios/header, ios/search-results, ios/iphone-6.3in and ios/iphone-fold-*
to compose.py and the README upload table.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 22:58:49 -04:00

4.6 KiB
Raw Blame History

Noo store listing assets

English artwork for the App Store and Google Play, built from Noo's production Flutter widgets with fictional data (example.com servers, made-up people and files). No real accounts, credentials or network requests are involved. The five screenshots follow the Features section of the website (noo.ayushya.dev), in the same order:

  1. Multiple accounts: the account switcher
  2. Locks: the lock screen with the Security card over it
  3. Offline sync: the Offline tab with the File sync card over it
  4. Sharing: the Share sheet (people, groups, public link)
  5. External storage: Files with the mounted-storage section

The landscape tablet sets show the app's real tablet layout (sidebar and toolbar), captured from the actual shell widget. Portrait and landscape tablet screenshots go in the same store slot; upload whichever orientation you want to show, or both.

Look: the app's own design tokens (warm neutrals, one violet accent, Schibsted Grotesk / Instrument Sans), flat shapes, alternating light and dark.

Upload files

Store slot Location Dimensions
Google Play app icon android/icon-512.png 512 × 512
Google Play feature graphic android/feature-graphic-1024x500.png 1024 × 500
Google Play phone screenshots android/phone/01-*.png … 05-*.png 1080 × 1920
Google Play 7-inch tablet screenshots android/tablet-7in/ 1200 × 1920
Google Play 10-inch tablet screenshots android/tablet-10in/ 1600 × 2560
App Store iPhone screenshots (6.9" / 6.7" slot) ios/iphone/ 1290 × 2796
App Store iPad screenshots (13" slot) ios/ipad/ 2064 × 2752
Google Play 7-inch tablet, landscape android/tablet-7in-landscape/ 1920 × 1200
Google Play 10-inch tablet, landscape android/tablet-10in-landscape/ 2560 × 1600
App Store iPad screenshots, landscape (13" slot) ios/ipad-landscape/ 2752 × 2064
App Store iPhone 6.1" / 6.3" screenshots ios/iphone-6.3in/ 1206 × 2622
App Store iPhone Duo (foldable), portrait ios/iphone-fold-portrait/ 2007 × 2853
App Store iPhone Duo (foldable), landscape ios/iphone-fold-landscape/ 2853 × 2007
App Store header ios/header/ 5244 × 2950, 3840 × 1646
App Store search results ios/search-results/ 5244 × 2950, 3840 × 2560, 1920 × 1280
iOS icon reference ios/icon-1024.png 1024 × 1024

The iPad 13" slot (2064 × 2752 and 2752 × 2064) is covered by ios/ipad/ and ios/ipad-landscape/. The header and search-results banners are one brand design (name, tagline, iPad and iPhone) rendered at each size. App previews (video) are not produced here.

Upload in numeric order. The App Store uses the icon embedded in the uploaded build; ios/icon-1024.png is only a reference copy. Screenshots, the feature graphic and the iOS icon are opaque RGB PNGs; the Play icon is 32-bit RGBA. manifest.json records each file's exact size and mode. index.html and contact-sheet.jpg are review materials, not store uploads. store-listing-assets.zip holds the upload files, this guide, the manifest and the draft listing text.

listing-copy.json has draft text for both stores, written around the same five features. The App Store name is NooCloud (the plain name was taken); the home-screen name stays Noo via CFBundleDisplayName. Character limits are checked by tools/compose.py.

Dimensions checked against the official requirements on October 7, 2026:

Reproduce and edit

The app needs a current stable Flutter (Dart ^3.12). From the repository root:

flutter test --no-pub distribution/store-assets/tools/capture_test.dart
python3 -m venv /tmp/noo-store-assets-venv
/tmp/noo-store-assets-venv/bin/pip install Pillow
/tmp/noo-store-assets-venv/bin/python distribution/store-assets/tools/compose.py

capture_test.dart lives outside test/ so normal test runs never rewrite marketing assets. It renders the real widgets (account switcher, lock screen, Security and File sync sections, Offline tab, Share sheet, Files with external storage) at phone and tablet sizes into source/, using demo subclasses of the session, files, sync and item-operation controllers. compose.py lays headlines, colors and device panels around those captures; change copy, colors or output sizes there.

Review the output before uploading, and re-capture after UI changes. These files are prepared locally; no store listing has been changed.