|
@@ -23,7 +23,8 @@ oppakken.
|
|
|
| **98** | "Zet in mijn agenda"-knop op een evenement (`add_2_calendar`) | Claude — **BEZIG** (2026-09-19). 98A en 98B zijn af; alleen de knop op `EventCurrent` rest nog |
|
|
| **98** | "Zet in mijn agenda"-knop op een evenement (`add_2_calendar`) | Claude — **BEZIG** (2026-09-19). 98A en 98B zijn af; alleen de knop op `EventCurrent` rest nog |
|
|
|
| **65** | Release-build doorloop | ✅ **Uitgelogde deel af 2026-09-19** (0 crashes; 65a, 65b en 65d-kleur opgelost; 65c + 65e open). Rest = ingelogd + Xiaomi → Bob |
|
|
| **65** | Release-build doorloop | ✅ **Uitgelogde deel af 2026-09-19** (0 crashes; 65a, 65b en 65d-kleur opgelost; 65c + 65e open). Rest = ingelogd + Xiaomi → Bob |
|
|
|
| **P2-24 B** | Categoriedropdown horeca-overzicht | 🟡 **grotendeels af** — endpoint live, API Call, 4 custom functions en de dropdown staan er en zijn export-geverifieerd. Alléén de `tabIndex`-binding lukt Claude niet → **4 stappen voor Bob**, zie P2-24 B hieronder |
|
|
| **P2-24 B** | Categoriedropdown horeca-overzicht | 🟡 **grotendeels af** — endpoint live, API Call, 4 custom functions en de dropdown staan er en zijn export-geverifieerd. Alléén de `tabIndex`-binding lukt Claude niet → **4 stappen voor Bob**, zie P2-24 B hieronder |
|
|
|
-| **99/100/101** | Loginvelden breed · drawer-logo onder statusbalk · Firebase-console-check | Claude — **BEZIG** (2026-09-19, sessie 'losse-restpunten'); Bob klikt, Claude verifieert. ⚠️ Crashtest-knop opruimen NIET nu: staat op `Favorieten`, en die pagina is van 88B |
|
|
|
|
|
|
|
+| ~~99/100/101~~ | Loginvelden · drawer-logo · Crashlytics-console | ✅ **ALLE DRIE AF 2026-09-19** (export-geverifieerd). ⚠️ Crashtest-knop opruimen blijft open: staat op `Favorieten`, pagina van 88B |
|
|
|
|
|
+| **102** | Ontbrekend asset `logo_1080x2160.png` in de projectmap | 🔴 **Nieuw 2026-09-19** — zie het eigen blok; raakt elke lokale build |
|
|
|
| **G0.6** | Play-screenshots schieten | Browserloos op beide AVD's, ±10 min — zeg het en het gebeurt |
|
|
| **G0.6** | Play-screenshots schieten | Browserloos op beide AVD's, ±10 min — zeg het en het gebeurt |
|
|
|
|
|
|
|
|
## 👤 BOB — OPEN, in volgorde van wat de livegang blokkeert
|
|
## 👤 BOB — OPEN, in volgorde van wat de livegang blokkeert
|
|
@@ -273,6 +274,67 @@ snackbar, een **Navigate To → favorieten** met **Allow Back Navigation uit**.
|
|
|
Export bevestigt `context.goNamed(FavorietenWidget.routeName);` binnen
|
|
Export bevestigt `context.goNamed(FavorietenWidget.routeName);` binnen
|
|
|
`if (_model.resultDrupalLogin != null)`, dus geen terugweg naar het inlogscherm.
|
|
`if (_model.resultDrupalLogin != null)`, dus geen terugweg naar het inlogscherm.
|
|
|
|
|
|
|
|
|
|
+### 🆕 102 · Ontbrekend asset + de asset-crash in Crashlytics · Eigenaar: Bob (upload) + Claude (meten)
|
|
|
|
|
+
|
|
|
|
|
+**Gevonden 2026-09-19 dankzij de zojuist ontsloten Crashlytics.** Het dashboard
|
|
|
|
|
+toont naast de bewuste testcrash een tweede issue:
|
|
|
|
|
+`PlatformAssetBundle.loadBuffer` — *Unable to load asset:
|
|
|
|
|
+"assets/images/logo800px.png"*, `com.uitgaanskrant.app`, 3 events / 1 user,
|
|
|
|
|
+versie 1.0.0, via `asset_bundle.dart:373`.
|
|
|
|
|
+
|
|
|
|
|
+**Diagnose (gemeten, niet aangenomen):**
|
|
|
|
|
+- `assets/images/logo800px.png` **bestaat** in de projectmap (11 KB) en
|
|
|
|
|
+ `assets/images/` staat in `pubspec.yaml:183`. Een correcte build heeft het dus.
|
|
|
|
|
+- Een verificatie-export **zonder `--include-assets`** bevat alleen `favicon.png`
|
|
|
|
|
+ (opnieuw bevestigd op `/tmp/ff-chk3`). Een APK daaruit crasht op dit asset —
|
|
|
|
|
+ precies het bekende patroon uit `CLAUDE.md`.
|
|
|
|
|
+- De drie build-mappen die nog op schijf staan (`ff-v3`, `ff-v4`, `ff-cr`) hébben
|
|
|
|
|
+ het asset alle drie, dus de schuldige build is al opgeruimd.
|
|
|
|
|
+- **Conclusie: testartefact van onszelf, geen bug in de app.** Wél het bewijs dat
|
|
|
|
|
+ de keten leeft — dit is het eerste echte crashrapport dat het dashboard haalt.
|
|
|
|
|
+
|
|
|
|
|
+🔴 **Maar het legde een tweede, echt gat bloot.** De levende code gebruikt exact
|
|
|
|
|
+twee assets; één daarvan ontbreekt in de projectmap:
|
|
|
|
|
+
|
|
|
|
|
+| gebruikt in de code | in `assets/images/`? |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| `logo800px.png` | ✅ |
|
|
|
|
|
+| **`logo_1080x2160.png`** (de splash uit `nav.dart`, taak B1b) | ❌ **ontbreekt** |
|
|
|
|
|
+
|
|
|
|
|
+FlutterFlow host het plaatje in de cloud, dus de builder en een export **mét**
|
|
|
|
|
+`--include-assets` hebben het gewoon (`/tmp/ff-v3` had het). Alleen de lokale
|
|
|
|
|
+projectmap is sinds Bob's upload nooit met die vlag ververst. **Wie uit de
|
|
|
|
|
+projectmap lokaal bouwt, krijgt dus een app die op de splashscreen crasht.**
|
|
|
|
|
+
|
|
|
|
|
+**Wat er moet gebeuren:**
|
|
|
|
|
+1. Eenmalig `flutterflow export-code ... --include-assets` en de map
|
|
|
|
|
+ `assets/images/` bijwerken, zodat de repo compleet is. (Claude kan dit; het
|
|
|
|
|
+ raakt alleen `assets/`, geen `lib/`.)
|
|
|
|
|
+2. **Vaste regel bij G4.2:** bouw je lokaal, dan is `--include-assets` verplicht
|
|
|
|
|
+ en controleer je vóór het bouwen `ls assets/images/` op méér dan `favicon.png`.
|
|
|
|
|
+ Neem dit op in het besluit van G0.3.
|
|
|
|
|
+**✅ Stap 1 is gedaan (Claude, 2026-09-19):** `logo_1080x2160.png` (845 KB) is met
|
|
|
|
|
+`--include-assets` opgehaald en staat nu in `assets/images/`. Beide door de code
|
|
|
|
|
+gebruikte assets zijn aanwezig; de projectmap is compleet.
|
|
|
|
|
+
|
|
|
|
|
+**📌 Bijvangst — adaptive icon nagemeten en gerenderd zoals Android het toont.**
|
|
|
|
|
+`adaptive_foreground_icon.png` is **byte-identiek** aan `app_launcher_icon.png`
|
|
|
|
|
+(md5 `7b0b74a3…`), 1900x1900, **0 % transparant**, buitenste 17 % volledig
|
|
|
|
|
+ondoorzichtig. Daardoor is `adaptive_icon_background: '#9a141d'` onzichtbaar.
|
|
|
|
|
+Ik heb het zichtbare deel (middelste 66,7 %) uitgesneden en er een rond en een
|
|
|
|
|
+squircle-masker overheen gelegd: **de tekst blijft volledig leesbaar** — Bob's
|
|
|
|
|
+B1-meting klopt — maar bij een **rond** masker worden de afgeronde uiteinden van
|
|
|
|
|
+de witte pil eraf gesneden en raakt het logo de rand. **Cosmetisch, niet
|
|
|
|
|
+blokkerend**; B1 blijft dus terecht op groen. Wil je het netter: een foreground
|
|
|
|
|
+met het logo op ~55 % van de breedte op een **transparant** vlak, dan doet
|
|
|
|
|
+`#9a141d` zijn werk en is er marge bij elk maskertype.
|
|
|
|
|
+
|
|
|
|
|
+3. Optioneel, 2 minuten: klik in Crashlytics de issue open en kijk of de drie
|
|
|
|
|
+ events binnen onze testvensters (15–19 sept) vallen — dan is de diagnose ook
|
|
|
|
|
+ aan die kant dichtgetimmerd.
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
### 🔧 Kleine open restpunten (app)
|
|
### 🔧 Kleine open restpunten (app)
|
|
|
|
|
|
|
|
*(P2-45b, P2-45c en 76 zijn op 2026-09-19 afgerond en geverifieerd met een
|
|
*(P2-45b, P2-45c en 76 zijn op 2026-09-19 afgerond en geverifieerd met een
|
|
@@ -546,9 +608,12 @@ netjes** (All/Today/Weekend/This week, Go Out/Cityactivities/Culture & Info).
|
|
|
heeft geen overtollige breedte om in te centreren; de `Align` eromheen is wat
|
|
heeft geen overtollige breedte om in te centreren; de `Align` eromheen is wat
|
|
|
het werk doet. Ditzelfde patroon (Stack met één kind → alles plakt links) kan
|
|
het werk doet. Ditzelfde patroon (Stack met één kind → alles plakt links) kan
|
|
|
elders in het project ook voorkomen.
|
|
elders in het project ook voorkomen.
|
|
|
- *Restpunt (taak 99) — Claude/Bob BEZIG 2026-09-19, sessie 'losse-restpunten'.* De invoervelden zijn nog steeds vast
|
|
|
|
|
- **200 px** breed, dus op een telefoon ruim een halve schermbreedte. Nu netjes
|
|
|
|
|
- gecentreerd, maar breder (of `double.infinity` met padding) zou prettiger zijn.
|
|
|
|
|
|
|
+ *Restpunt — ✅ AF als taak 99 (Bob, 2026-09-19, export-geverifieerd).* De twee
|
|
|
|
|
+ invoervelden en de knop *Inloggen* staan nu op `double.infinity`, met
|
|
|
|
|
+ `fromSTEB(24, 0, 24, 0)` op de `Column` in de `Stack`; `width: 200` komt 0x meer
|
|
|
|
|
+ voor. ⚠️ **Les voor een volgende keer: er is GEEN `Container`-node in de tree** —
|
|
|
|
|
+ FlutterFlow zet `Width` als property op het `TextField` zelf en genereert de
|
|
|
|
|
+ `Container(width:)` pas in de export. Zoek dus niet naar een Container.
|
|
|
- **✅ 65b · Header schoof naar links op `HorecagelegenheidCurrent` — OPGELOST
|
|
- **✅ 65b · Header schoof naar links op `HorecagelegenheidCurrent` — OPGELOST
|
|
|
2026-09-19 (Claude).** De hamburgerknop stond met zijn centrum op **x=53**
|
|
2026-09-19 (Claude).** De hamburgerknop stond met zijn centrum op **x=53**
|
|
|
(elders x=271/x=340) en stak dus links buiten beeld. *Oorzaak, gevonden door
|
|
(elders x=271/x=340) en stak dus links buiten beeld. *Oorzaak, gevonden door
|
|
@@ -594,7 +659,7 @@ netjes** (All/Today/Weekend/This week, Go Out/Cityactivities/Culture & Info).
|
|
|
- **65e · "Datum" blijft Nederlands in de Engelse modus.** Het label van de
|
|
- **65e · "Datum" blijft Nederlands in de Engelse modus.** Het label van de
|
|
|
kalenderknop komt uit de `valueOrDefault`-default `'Datum'` en is dus géén
|
|
kalenderknop komt uit de `valueOrDefault`-default `'Datum'` en is dus géén
|
|
|
vertaalsleutel. Hoort bij P1-17.
|
|
vertaalsleutel. Hoort bij P1-17.
|
|
|
-- **Taak 100 — BEZIG 2026-09-19 (sessie 'losse-restpunten').** Het **logo in de drawer
|
|
|
|
|
|
|
+- **✅ Taak 100 — AF (Bob, 2026-09-19, export-geverifieerd: `fromSTEB(0.0, 40.0, 0.0, 5.0)`).** Het **logo in de drawer
|
|
|
staat deels onder de statusbalk** (de klok valt erachter). Gemeten op de verse export:
|
|
staat deels onder de statusbalk** (de klok valt erachter). Gemeten op de verse export:
|
|
|
`drawerComponent` is `SingleChildScrollView > Column > Row > Expanded > Padding(0,8,0,5) >
|
|
`drawerComponent` is `SingleChildScrollView > Column > Row > Expanded > Padding(0,8,0,5) >
|
|
|
ClipRRect > Image.asset(logo800px, 300x42)`, **0 SafeArea**. Fix = padding Top 8 -> 40.
|
|
ClipRRect > Image.asset(logo800px, 300x42)`, **0 SafeArea**. Fix = padding Top 8 -> 40.
|