Просмотр исходного кода

B1b afgemeld + Google Play-checklist (blok G) in TASKS.md

B1b (splashscreen) geverifieerd op een verse export: nav.dart:462 toont nu
logo_1080x2160.png; nagemeten op vier schermverhoudingen met BoxFit.cover,
merknaam overal volledig leesbaar.

B1 (app-icoon) blijkt grotendeels al af: de export wijst naar PNG's en het
logo staat op 64% van de breedte, dus "itgaanskrant.co" is verholpen.

Nieuw blok G consolideert taak 63 (a-i) en punt 2 van "Bob's 7" tot een
afvinkbare Play Console-checklist. Bevestigd via Google's documentatie:
organisatie-accounts zijn vrijgesteld van de 12-testers/14-dagen-regel, en
D-U-N-S duurt tot 30 dagen (kritieke pad).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 10 часов назад
Родитель
Сommit
087114e1dd
1 измененных файлов с 114 добавлено и 31 удалено
  1. 114 31
      TASKS.md

+ 114 - 31
TASKS.md

@@ -64,37 +64,34 @@ builder-dialoog waar Claude aantoonbaar niet bij komt). Claude werkt ondertussen
 zelf door aan de app-kant — zie het blok "Claude werkt aan" hieronder, pak die
 zelf door aan de app-kant — zie het blok "Claude werkt aan" hieronder, pak die
 nummers dus niet zelf op.*
 nummers dus niet zelf op.*
 
 
-**B1 · App-icoon: lever één PNG aan. 🔴 Blokkeert de livegang.**
-Het icoon is nu deels stuk (zie taak 65 verderop): op een toestel staat er
-**"itgaanskrant.co"** — de U en de m vallen weg. Oorzaak: `adaptive_icon_foreground`
-in `pubspec.yaml` wijst naar een **JPEG**, en JPEG kan geen transparantie hebben.
-Android maskeert een adaptive foreground rond en toont alleen de middelste ~66 %,
-dus een volvlaks plaatje wordt altijd afgesneden.
-*Wat je maakt:* één **PNG 1024×1024 met transparante achtergrond**, alleen het
-beeldmerk gecentreerd op **±60 % van het vlak** (dus ±610 px breed), verder leeg.
-Geen achtergrondkleur in het plaatje zelf — die staat al goed op `#9a141d`.
-*Waar:* uploaden in FlutterFlow (App Settings → App Details → het
-adaptive-foreground-slot), of als bestand aanleveren dan zet Claude het erin.
-`image_path` (het gewone, volvlakse icoon) mag blijven zoals het is.
-*Meteen meepakken — B1b, splashscreen (taak 61):* `nav.dart` toont
-`Image.asset('uitgaanskrant.com-applogo.jpg', fit: BoxFit.cover)`. Op een vierkant
-plaatje snijdt `cover` links en rechts weg. Lever een **staand** plaatje
-(1080×2160), vlak `#9A141D`, logo gecentreerd op ±70 % breedte — dan klopt `cover`
-vanzelf en is dit meteen af i.p.v. "later mooier maken".
-
-**B2 · Play Console: de listing-assets en verklaringen (taak 63 f/g/h/i).**
-Dit is de langste wachtstap en staat los van alle code. Zodra het account
-doorkomt kun je (g) de assets uploaden: **512×512 icoon** (gebruik `image_path`,
-niet de adaptive foreground), **feature graphic 1024×500**, **2+ telefoon-
-screenshots** én **7"/10"-tabletscreenshots** (de app draait op tablets, dan
-vraagt Google erom). Zeg het als je de screenshots wilt — Claude schiet ze
-browserloos op beide AVD's, dat is 10 minuten. Korte (80) + lange (4000)
-omschrijving: de helptekst van taak 59 is de basis.
-Verder (h) de verklaringen: Content rating (IARC), *Contains ads* → **ja**,
-**Advertising ID** → **ja** (gemeten in het manifest van de release-APK),
-Target audience bewust kiezen (er staat 18+ uitgaanscontent in), en in Data
-safety naast Crashlytics/AdMob/login óók **foto's** (camera + galerij).
-(f) testaccount is al gedaan; (i) versionCode ophogen vóór élke upload.
+**B1 · App-icoon — 🟢 grotendeels AF (gemeten Claude 2026-09-19).**
+De export van 18 sept wijst niet meer naar JPEG's maar naar **PNG's**
+(`adaptive_icon_foreground: assets/images/adaptive_foreground_icon.png`,
+1900×1900). Gerenderd wat Android daarvan toont (middelste 66 % + rond masker):
+het logo staat nu op **64 %** van de breedte i.p.v. 100 %, en
+"Uitgaanskrant.com" is **volledig leesbaar** — het oude "itgaanskrant.co" is weg.
+*Restpunt, klein en optioneel:* de PNG heeft **0 % transparante pixels**, dus de
+foreground dekt `adaptive_icon_background: '#9a141d'` volledig af (onzichtbaar,
+beide zijn hetzelfde rood, maar bij launcher-parallax schuift het rode vlak mee).
+Wil je het helemaal netjes: PNG 1024×1024 met **transparante** achtergrond,
+beeldmerk op ±60 % (±610 px). Niet blokkerend voor livegang.
+⚠️ **Blijft gelden:** een *lokaal* gebouwde APK draagt het Flutter-vogeltje tenzij
+je in de exportmap eerst `fvm flutter pub run flutter_launcher_icons` draait.
+Controleer het icoon op het artefact dat je daadwerkelijk uploadt.
+
+**B1b · Splashscreen — ✅ AF 2026-09-19 (Bob), export-geverifieerd.**
+`nav.dart:462` toont nu `assets/images/logo_1080x2160.png` (1080×2160, staand)
+i.p.v. het vierkante `uitgaanskrant.com-applogo.jpg`. Nagemeten op vier
+schermverhoudingen met `BoxFit.cover`: telefoon 1:2 → 100 % breedte zichtbaar,
+modern 9:20 → 90 %, tablet staand → 100 %, tablet liggend → 100 % breedte
+(31 % hoogte, logo gecentreerd dus volledig in beeld). Op alle vier is de
+merknaam volledig leesbaar. Resteert alleen de korte **witte flits** van de
+Android-native launch screen ervóór — die stelt FlutterFlow niet in.
+
+**B2 · Play Console — zie de volledige checklist in het blok "G · GOOGLE PLAY"
+direct onder deze lijst** (opgesteld 2026-09-19 op Bob's verzoek; vervangt en
+consolideert taak 63 a-i en punt 2 van "Bob's 7"). Dit is de langste wachtstap
+en staat los van alle code.
 
 
 **B3 · Helppagina: één link erbij (taak 87, deel 1). 2 minuten Drupal.**
 **B3 · Helppagina: één link erbij (taak 87, deel 1). 2 minuten Drupal.**
 Op `/nl/support/mobieleapp` staat de zin *"Horecagelegenheden toevoegen kan op
 Op `/nl/support/mobieleapp` staat de zin *"Horecagelegenheden toevoegen kan op
@@ -136,6 +133,92 @@ Claude het overzicht "Mijn aanmeldingen" bouwen en ziet een gebruiker eindelijk
 wat hij heeft ingediend en of het goedgekeurd is. A2 (klonen) kan daarna.
 wat hij heeft ingediend en of het goedgekeurd is. A2 (klonen) kan daarna.
 ⚠️ Vergeet de eigenaarscheck op A2 niet, anders leest iemand andermans gegevens.
 ⚠️ Vergeet de eigenaarscheck op A2 niet, anders leest iemand andermans gegevens.
 
 
+## 🅖 G · GOOGLE PLAY — volledige checklist · Eigenaar: Bob
+
+*Opgesteld 2026-09-19. Account aangemaakt 2026-09-18 als **Organisatie** (Digital
+Force); wacht op verificatie. Vervangt taak 63 (a-i) en punt 2 van "Bob's 7" —
+die twee niet meer los afwerken. Vink hier af.*
+
+**Bevestigd via Google's eigen documentatie, 2026-09-19:**
+- **Een organisatie-account is vrijgesteld van de 12-testers/14-dagen-regel.**
+  Die geldt alleen voor *persoonlijke* accounts van ná 13-11-2023. De keuze voor
+  Organisatie was dus juist en scheelt minimaal twee weken.
+- **D-U-N-S duurt tot 30 dagen.** Dat is de kritieke pad-stap, niet de $25.
+- **Legal name + adres in het Google Payments-profiel moeten EXACT matchen met
+  het D-U-N-S-profiel.** Mismatch = e-mail met deadline, daarna verwijdering van
+  de app uit Play. Dit is de meest gemaakte fout en kost weken.
+
+### G0 · Nu doen, terwijl de verificatie loopt (buiten Play Console)
+- [ ] **G0.1 — D-U-N-S: check of Digital Force er al een heeft** vóór je een
+      nieuwe aanvraagt (dubbele nummers geven later een mismatch). Gratis bij
+      Dun & Bradstreet. Leg het nummer + de exact geregistreerde bedrijfsnaam en
+      het adres vast. 🔴 Langste wachtstap.
+- [ ] **G0.2 — Payments-profiel gelijktrekken** met precies die naam/adres.
+- [ ] **G0.3 — Besluit upload-route** (was taak 63d, nog open): FlutterFlow-deploy
+      (advies — dan hoeft er lokaal niets) óf lokaal. Lokaal betekent een keystore
+      + `android/key.properties`, want `android/app/build.gradle:80` staat nog op
+      `signingConfig signingConfigs.debug` — daarmee kun je niet uploaden.
+- [ ] **G0.4 — Besluit iOS wel/niet** (was taak 63e). Er is niets voor ingericht;
+      alleen `project.pbxproj` beweegt mee in elke export.
+- [ ] **G0.5 — Teksten schrijven:** korte omschrijving (max 80 tekens) + lange
+      (max 4000). Basis = de helptekst van taak 59.
+- [ ] **G0.6 — Screenshots laten maken.** Claude schiet ze browserloos op beide
+      AVD's (telefoon + tablet), ±10 min. Nodig: 2+ telefoon, én 7" en 10" tablet.
+- [ ] **G0.7 — Feature graphic 1024×500** laten maken (grafisch werk, Bob).
+
+### G1 · Zodra het account geverifieerd is
+- [ ] **G1.1 — Create app.** Naam "Uitgaanskrant.com", Nederlands, App (geen game),
+      Gratis. Package is `com.uitgaanskrant.app` — **onveranderlijk na de eerste
+      upload**, dus controleer 'm.
+- [ ] **G1.2 — Payments-profiel verifiëren** (deposit-challenge of bankdocument,
+      ±5 dagen). Moet vóór publicatie rond zijn.
+
+### G2 · App content (Policy and programs → App content)
+- [ ] **G2.1 — Privacy policy-URL:** `https://uitgaanskrant.com/nl/support/privacybeleid`
+      (anoniem 200, gemeten 2026-09-16).
+- [ ] **G2.2 — Data deletion-URL:** `https://uitgaanskrant.com/nl/support/mobieleapp`
+      ⚠️ **NIET** `/nl/account-verwijderen` — die geeft anoniem **403** en reviewers
+      openen 'm uitgelogd. Taak 85 heeft de in-app-knop al naar dezelfde URL gezet.
+- [ ] **G2.3 — App access:** "All or some functionality is restricted" + de
+      inloggegevens van het testaccount (taak 86, al aangemaakt). ⚠️ Wachtwoord
+      **niet** in dit bestand — alleen Play Console + wachtwoordmanager.
+      Zorg dat er 3-4 favorieten in Amsterdam en één gevolgde gemeente op staan,
+      anders ziet de reviewer vier lege tabs en leest dat als kapot.
+- [ ] **G2.4 — Ads:** *Contains ads* → **JA** (AdMob zit in de build).
+- [ ] **G2.5 — Content rating:** IARC-vragenlijst invullen.
+- [ ] **G2.6 — Target audience:** bewust kiezen — er staat 18+ uitgaanscontent in.
+- [ ] **G2.7 — Data safety.** Gemeten in het manifest van de release-APK:
+      permissies `INTERNET`, `CAMERA`, `READ_EXTERNAL_STORAGE`,
+      `WRITE_EXTERNAL_STORAGE`, plus via AdMob/Firebase `ACCESS_NETWORK_STATE`,
+      `WAKE_LOCK`, `FOREGROUND_SERVICE`, `AD_ID` en drie `ACCESS_ADSERVICES_*`.
+      Declareren: **Advertising ID → JA** (verplicht, `AD_ID` staat erin),
+      crashlogs/diagnostiek (Crashlytics), gebruikersnaam/e-mail (login), en
+      **foto's** (camera + galerij, voor de aanmaakpagina's). Transport is
+      versleuteld en verwijdering is mogelijk → beide aanvinken.
+- [ ] **G2.8 — Government apps / Financial features:** beide nee (staat er wel,
+      makkelijk over te slaan, blokkeert anders de release).
+
+### G3 · Store listing
+- [ ] **G3.1 — App-icoon 512×512.** Gebruik `assets/images/app_launcher_icon.png`
+      (het volvlakse), **niet** de adaptive foreground.
+- [ ] **G3.2 — Feature graphic 1024×500** (uit G0.7).
+- [ ] **G3.3 — Screenshots** telefoon + 7" + 10" tablet (uit G0.6). Tabletshots zijn
+      verplicht omdat de app tablets ondersteunt.
+- [ ] **G3.4 — Korte + lange omschrijving** (uit G0.5).
+- [ ] **G3.5 — Categorie + contactgegevens + e-mail.** Die e-mail wordt **publiek**
+      getoond.
+
+### G4 · Release
+- [ ] **G4.1 — versionCode ophogen** vóór élke upload. Staat nu op `1.0.0+1`
+      (`pubspec.yaml:18`). Bij de FlutterFlow-route: App Settings → App Details.
+- [ ] **G4.2 — Build uploaden** volgens de route uit G0.3. AAB, niet APK — die
+      splitst per architectuur (de APK is nu 95,6 MB).
+- [ ] **G4.3 — ⚠️ Icoon controleren op het geüploade artefact zelf.** Open vraag:
+      doet FlutterFlow's deploy-pipeline `flutter_launcher_icons` wél? Lokaal
+      gebouwd draagt het bestand anders het Flutter-vogeltje. Niet aannemen.
+- [ ] **G4.4 — Interne test eerst** (geen tester-minimum voor organisaties), dan
+      pas productie.
+
 **Twee dingen die al af bleken en dus GEEN taak meer zijn** (nagemeten door
 **Twee dingen die al af bleken en dus GEEN taak meer zijn** (nagemeten door
 Claude op productie, 2026-09-18 avond):
 Claude op productie, 2026-09-18 avond):
 - **Taak 82 staat al op productie.** `flutterflowmobiel_establishment_events`
 - **Taak 82 staat al op productie.** `flutterflowmobiel_establishment_events`