Check PR / check (pull_request) Successful in 59s
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>
88 lines
4.6 KiB
Markdown
88 lines
4.6 KiB
Markdown
# 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:
|
||
|
||
- [Google Play preview assets](https://support.google.com/googleplay/android-developer/answer/9866151?hl=en)
|
||
- [Apple screenshot specifications](https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications)
|
||
|
||
## Reproduce and edit
|
||
|
||
The app needs a current stable Flutter (Dart ^3.12). From the repository root:
|
||
|
||
```sh
|
||
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.
|