|
@@ -50,7 +50,6 @@ Google Play en één doorloop die alleen Bob kan doen.
|
|
|
| **120** | 12 hardcoded kleuren aan thematokens binden | Alle 12 zijn exact gelijk aan een bestaand token, dus nu onzichtbaar — maar ze lopen niet mee bij een themawijziging. Eigen blok hieronder |
|
|
| **120** | 12 hardcoded kleuren aan thematokens binden | Alle 12 zijn exact gelijk aan een bestaand token, dus nu onzichtbaar — maar ze lopen niet mee bij een themawijziging. Eigen blok hieronder |
|
|
|
| ~~117~~ | ~~Kalenderpermissie eruit~~ | ✅ **AF** (Bob 2026-09-20, export-geverifieerd): `READ_CALENDAR`/`WRITE_CALENDAR` én `NSCalendarsUsageDescription` zijn weg; `CAMERA` staat er nog (terecht) |
|
|
| ~~117~~ | ~~Kalenderpermissie eruit~~ | ✅ **AF** (Bob 2026-09-20, export-geverifieerd): `READ_CALENDAR`/`WRITE_CALENDAR` én `NSCalendarsUsageDescription` zijn weg; `CAMERA` staat er nog (terecht) |
|
|
|
| **118** | AdMob EU-consentbericht | ⚠️ Half: de FlutterFlow-toggle staat goed, maar het bericht moet in de **AdMob-console** gepubliceerd zijn. Eigen blok hieronder |
|
|
| **118** | AdMob EU-consentbericht | ⚠️ Half: de FlutterFlow-toggle staat goed, maar het bericht moet in de **AdMob-console** gepubliceerd zijn. Eigen blok hieronder |
|
|
|
-| **119** | Besluit: App Links voor `https://` | Gedeelde links openen nu altijd de browser, nooit de app. Post-launch keuze |
|
|
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
#
|
|
#
|
|
@@ -77,6 +76,79 @@ verse export — zie de commit van die datum.)*
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+## 🔭 VERSIE 2.0 — na de livegang · niet agenderen vóór release
|
|
|
|
|
+
|
|
|
|
|
+*Ideeën die af zijn onderzocht maar bewust wachten. Bob 2026-09-20: eerst live,
|
|
|
|
|
+dan pas kijken of dit überhaupt de moeite is.*
|
|
|
|
|
+
|
|
|
|
|
+### 2.0-A · App Links: uitgaanskrant.com-links in de app openen
|
|
|
|
|
+
|
|
|
|
|
+**Bob's vraag:** "ik kan een lijstje domeinen opgeven — maar hoe weet mijn app wat
|
|
|
|
|
+de URL is? een evenement, een horecagelegenheid, een stadspagina?"
|
|
|
|
|
+
|
|
|
|
|
+**Antwoord: Android geeft de VOLLEDIGE URL aan de app, en de app moet die zelf
|
|
|
|
|
+vertalen naar een route.** Dat vertalen is het hele werk; het domeinlijstje bepaalt
|
|
|
|
|
+alleen *of* de app aan de beurt komt.
|
|
|
|
|
+
|
|
|
|
|
+**Daarom NIET `uitgaanskrant.com` registreren.** Twee redenen:
|
|
|
|
|
+1. De site-URL's zijn SEO-aliassen zonder nid en zonder type
|
|
|
|
|
+ (`/nl/Noord-Holland/Amsterdam/Bimhuis-Amsterdam`). De app kan daar niets mee
|
|
|
|
|
+ zonder Drupal om een vertaling te vragen — een extra endpoint erbij.
|
|
|
|
|
+2. Je zou **élke** link naar je site de app in trekken: privacybeleid,
|
|
|
|
|
+ registratieformulier, zoekpagina's, de hele CMS-kant. Voor alles wat de app niet
|
|
|
|
|
+ kent moet je dan een nette terugval bouwen.
|
|
|
|
|
+
|
|
|
|
|
+**Wel `uitgk.com`.** Dat is jouw eigen korte domein, het wordt alleen gebruikt door
|
|
|
|
|
+de deelknop (`event_current_widget.dart:414`) en door `zetInAgenda`
|
|
|
|
|
+(`zet_in_agenda.dart:42`), en het heeft één voorspelbare vorm: `/<nid>`.
|
|
|
|
|
+
|
|
|
|
|
+**Het type is met één API-call te bepalen — gemeten 2026-09-20:**
|
|
|
|
|
+
|
|
|
|
|
+| | `flutterflow_events.json?nid=` | `flutterflowmobiel_establishment_info.json?nid=` |
|
|
|
|
|
+|---|---|---|
|
|
|
|
|
+| **222338** (event) | 1 rij, mét `horecagelegenheidnid=75459` | 0 rijen |
|
|
|
|
|
+| **75459** (zaak) | 0 rijen | 1 rij |
|
|
|
|
|
+
|
|
|
|
|
+Dus: één call naar `flutterflow_events.json?nid=X`; komt er een rij uit, dan is het
|
|
|
|
|
+een event **en heb je de `horecaid` meteen te pakken** (die heeft `EventCurrent`
|
|
|
|
|
+als tweede parameter nodig). Nul rijen → behandel als zaak →
|
|
|
|
|
+`HorecagelegenheidCurrent(nid: X)`. Allebei leeg → Home.
|
|
|
|
|
+
|
|
|
|
|
+**Stadspagina's erbuiten laten.** `PUitgaanPage` wil een `plaats`-tid, en die staat
|
|
|
|
|
+in geen enkele URL — dat zou een derde lookup via `plaatsen.json` vergen voor
|
|
|
|
|
+weinig winst.
|
|
|
|
|
+
|
|
|
|
|
+**Twee routes om uit te kiezen:**
|
|
|
|
|
+- **A — deel-URL kort houden (`uitgk.com/222338`) + een routerpagina in de app.**
|
|
|
|
|
+ Mooiste links. Vergt een pagina met een pad-parameter op rootniveau (`/:nid`),
|
|
|
|
|
+ de API-call hierboven en een conditionele navigatie. ⚠️ **Open vraag: kan
|
|
|
|
|
+ FlutterFlow een routePath `/:nid` op rootniveau aan zonder te botsen met `/home`,
|
|
|
|
|
+ `/favorieten` enz.?** go_router matcht exacte paden eerst, dus het zou moeten
|
|
|
|
|
+ kunnen — maar dat is niet gemeten. Eén testpagina + een export geeft uitsluitsel.
|
|
|
|
|
+- **B — deel-URL wordt `uitgk.com/eventCurrent?nid=..&horecaid=..`.** Dan matcht
|
|
|
|
|
+ go_router het pad meteen en hoeft er in de app **niets** gebouwd te worden (het
|
|
|
|
|
+ custom scheme werkt al precies zo). Prijs: lange, lelijke deellinks, plus een
|
|
|
|
|
+ redirect-regel op uitgk.com voor wie de app niet heeft.
|
|
|
|
|
+
|
|
|
|
|
+**Bob 2026-09-20: naar 2.0.** "niet belangrijk voor de livegang, als het überhaupt
|
|
|
|
|
+belangrijk is." Terecht — de deelknop werkt al, hij opent alleen de website in
|
|
|
|
|
+plaats van de app. Pak dit pas op als blijkt dat mensen gedeelde links vaak volgen.
|
|
|
|
|
+
|
|
|
|
|
+**Volgorde-afhankelijkheid, en dus hoe dan ook na de launch:**
|
|
|
|
|
+`/.well-known/assetlinks.json` op uitgk.com moet de **SHA-256 van het
|
|
|
|
|
+Play-app-signing-certificaat** bevatten, en dat certificaat krijg je pas ná de
|
|
|
|
|
+eerste upload (Play Console → Setup → App integrity). Vóór die tijd is de
|
|
|
|
|
+verificatie niet af te maken.
|
|
|
|
|
+
|
|
|
|
|
+### 2.0-B · Tab-fetches cachen op het horeca-overzicht
|
|
|
|
|
+
|
|
|
|
|
+Elke tab-tik doet een **verse** fetch, ook als je terugkeert naar een tab die je al
|
|
|
|
|
+bezocht hebt; heen-en-weer klikken tussen zes tabs haalt dus zes keer opnieuw op.
|
|
|
|
|
+Een guard ("sla de fetch over als `alleXxx` al gevuld is") lost dat op, maar kost
|
|
|
|
|
+een conditie in vijf actieketens — en juist die dialoog is op deze pagina fragiel.
|
|
|
|
|
+Alleen doen als het in de praktijk hindert.
|
|
|
|
|
+
|
|
|
## 🅖 G · GOOGLE PLAY — volledige checklist · Eigenaar: Bob
|
|
## 🅖 G · GOOGLE PLAY — volledige checklist · Eigenaar: Bob
|
|
|
|
|
|
|
|
*Opgesteld 2026-09-19. Account aangemaakt 2026-09-18 als **Organisatie** (Digital
|
|
*Opgesteld 2026-09-19. Account aangemaakt 2026-09-18 als **Organisatie** (Digital
|
|
@@ -382,61 +454,6 @@ Dat is AdMob's standaard en prima, maar het loont om er bij G2.5/G2.6 (content
|
|
|
rating + doelgroep) bewust een waarde bij te kiezen zodat de advertenties passen
|
|
rating + doelgroep) bewust een waarde bij te kiezen zodat de advertenties passen
|
|
|
bij wat je bij Play aangeeft.
|
|
bij wat je bij Play aangeeft.
|
|
|
|
|
|
|
|
-### 119 · App Links — ontwerp na Bob's vraag van 2026-09-20 · Eigenaar: Bob
|
|
|
|
|
-
|
|
|
|
|
-**Bob's vraag:** "ik kan een lijstje domeinen opgeven — maar hoe weet mijn app wat
|
|
|
|
|
-de URL is? een evenement, een horecagelegenheid, een stadspagina?"
|
|
|
|
|
-
|
|
|
|
|
-**Antwoord: Android geeft de VOLLEDIGE URL aan de app, en de app moet die zelf
|
|
|
|
|
-vertalen naar een route.** Dat vertalen is het hele werk; het domeinlijstje bepaalt
|
|
|
|
|
-alleen *of* de app aan de beurt komt.
|
|
|
|
|
-
|
|
|
|
|
-**Daarom NIET `uitgaanskrant.com` registreren.** Twee redenen:
|
|
|
|
|
-1. De site-URL's zijn SEO-aliassen zonder nid en zonder type
|
|
|
|
|
- (`/nl/Noord-Holland/Amsterdam/Bimhuis-Amsterdam`). De app kan daar niets mee
|
|
|
|
|
- zonder Drupal om een vertaling te vragen — een extra endpoint erbij.
|
|
|
|
|
-2. Je zou **élke** link naar je site de app in trekken: privacybeleid,
|
|
|
|
|
- registratieformulier, zoekpagina's, de hele CMS-kant. Voor alles wat de app niet
|
|
|
|
|
- kent moet je dan een nette terugval bouwen.
|
|
|
|
|
-
|
|
|
|
|
-**Wel `uitgk.com`.** Dat is jouw eigen korte domein, het wordt alleen gebruikt door
|
|
|
|
|
-de deelknop (`event_current_widget.dart:414`) en door `zetInAgenda`
|
|
|
|
|
-(`zet_in_agenda.dart:42`), en het heeft één voorspelbare vorm: `/<nid>`.
|
|
|
|
|
-
|
|
|
|
|
-**Het type is met één API-call te bepalen — gemeten 2026-09-20:**
|
|
|
|
|
-
|
|
|
|
|
-| | `flutterflow_events.json?nid=` | `flutterflowmobiel_establishment_info.json?nid=` |
|
|
|
|
|
-|---|---|---|
|
|
|
|
|
-| **222338** (event) | 1 rij, mét `horecagelegenheidnid=75459` | 0 rijen |
|
|
|
|
|
-| **75459** (zaak) | 0 rijen | 1 rij |
|
|
|
|
|
-
|
|
|
|
|
-Dus: één call naar `flutterflow_events.json?nid=X`; komt er een rij uit, dan is het
|
|
|
|
|
-een event **en heb je de `horecaid` meteen te pakken** (die heeft `EventCurrent`
|
|
|
|
|
-als tweede parameter nodig). Nul rijen → behandel als zaak →
|
|
|
|
|
-`HorecagelegenheidCurrent(nid: X)`. Allebei leeg → Home.
|
|
|
|
|
-
|
|
|
|
|
-**Stadspagina's erbuiten laten.** `PUitgaanPage` wil een `plaats`-tid, en die staat
|
|
|
|
|
-in geen enkele URL — dat zou een derde lookup via `plaatsen.json` vergen voor
|
|
|
|
|
-weinig winst.
|
|
|
|
|
-
|
|
|
|
|
-**Twee routes om uit te kiezen:**
|
|
|
|
|
-- **A — deel-URL kort houden (`uitgk.com/222338`) + een routerpagina in de app.**
|
|
|
|
|
- Mooiste links. Vergt een pagina met een pad-parameter op rootniveau (`/:nid`),
|
|
|
|
|
- de API-call hierboven en een conditionele navigatie. ⚠️ **Open vraag: kan
|
|
|
|
|
- FlutterFlow een routePath `/:nid` op rootniveau aan zonder te botsen met `/home`,
|
|
|
|
|
- `/favorieten` enz.?** go_router matcht exacte paden eerst, dus het zou moeten
|
|
|
|
|
- kunnen — maar dat is niet gemeten. Eén testpagina + een export geeft uitsluitsel.
|
|
|
|
|
-- **B — deel-URL wordt `uitgk.com/eventCurrent?nid=..&horecaid=..`.** Dan matcht
|
|
|
|
|
- go_router het pad meteen en hoeft er in de app **niets** gebouwd te worden (het
|
|
|
|
|
- custom scheme werkt al precies zo). Prijs: lange, lelijke deellinks, plus een
|
|
|
|
|
- redirect-regel op uitgk.com voor wie de app niet heeft.
|
|
|
|
|
-
|
|
|
|
|
-**Volgorde-afhankelijkheid, hierom is dit hoe dan ook post-launch:**
|
|
|
|
|
-`/.well-known/assetlinks.json` op uitgk.com moet de **SHA-256 van het
|
|
|
|
|
-Play-app-signing-certificaat** bevatten, en dat certificaat krijg je pas ná de
|
|
|
|
|
-eerste upload (Play Console → Setup → App integrity). Vóór die tijd is de
|
|
|
|
|
-verificatie niet af te maken.
|
|
|
|
|
-
|
|
|
|
|
### 65 · Release-build — wat er NOG getest moet worden · Eigenaar: Bob
|
|
### 65 · Release-build — wat er NOG getest moet worden · Eigenaar: Bob
|
|
|
|
|
|
|
|
**De uitgelogde doorloop is af** (2026-09-19, `--release`, `flags=0x0`): 0 FATAL,
|
|
**De uitgelogde doorloop is af** (2026-09-19, `--release`, `flags=0x0`): 0 FATAL,
|