You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Configurer l'icône, le splash screen, la bannière de consentement et les demandes de permission (E-18) #188
Source unique : design/design-system/logo-widoo.svg, retirer shape-rendering="crispEdges" avant export
app.config : icon 1024 sans transparence, ios.icon sombre et teintée, android.adaptiveIcon (foregroundImage, monochromeImage, backgroundColor #5A7FCF)
expo-splash-screen : W au cadrage de l'écran, resizeMode cover, fond #5A7FCF ; Android 12 : icône dans un disque sur #4E74C8
NSLocationWhenInUseUsageDescription : texte de la section E-18
ordre du premier lancement : splash, position, sheet de consentement (sans poignée, ne se ferme pas sans choix) ; stockage local du choix et de « rappels déjà proposés »
SplashScreen.hideAsync() quand la carte est prête, 2 s au plus (firstLaunch.splash.maxMs)
sheet de consentement proposée au premier accueil chargé, jamais par-dessus la demande de position ; geste d'échappement sans effet sur elle
hors connexion au premier lancement : carte en fond uni, en-tête « Hors connexion », position demandée quand même
position approximative : zone bleue (bord bleu plein) et « Autour de Paris 10e » ; précision temporaire iOS demandée seulement au lancement d'une sortie
coupure de la mesure d'audience : posthog.optOut() immédiat, toast ; réactivation : optIn, toast
texte agrandi et lecteur d'écran : firstLaunch.largeText, firstLaunch.screenReader (tokens v28)
CODE — première partie livrée dans la PR #196 (Refs #188), pour le prochain build de test :
icône : iOS 1024 sans alpha ni coins arrondis, variantes sombre et teintée ; Android adaptative (#5A7FCF, premier plan, calque monochrome), exportées de logo-widoo.svg sans shape-rendering="crispEdges" ;
écran de lancement : iOS plein écran en cover sur #5A7FCF (option enableFullScreenImage_legacy d'Expo, seule façon d'avoir une image plein écran) ; Android 12, icône dans le disque du système sur #4E74C8 ; barre d'état claire ; vérifié sur l'émulateur Android ;
délai : l'écran reste jusqu'à ce que l'accueil soit prêt, 2 s au plus, fondu de 200 ms sur iOS. Pour Afficher la carte Mapbox stylée avec les marqueurs de parcours (E-01) #26 : la carte appelle useReleaseSplash(isMapReady) (apps/mobile/src/launch/splash.ts) quand elle est prête ; d'ici là, l'accueil provisoire libère l'écran quand la configuration s'affiche ;
tokens.json v28 synchronisé.
Reste, dans une seconde PR qui fermera ce ticket : sheet « Mesure d'audience », demande de position au premier affichage de la carte (NSLocationWhenInUseUsageDescription compris), rappels au premier « Programmer », états (hors connexion, position approximative, texte agrandi, lecteur d'écran). Ils dépendent de la carte (#26) et de la programmation, pas encore sur main.
📋 MANAGER — écart relevé par DESIGN entre la page Analytics et le catalogue (D-067) : analytics_consent_given (Analytics › Découverte, D-060) n'est pas dans packages/shared/src/analytics.ts. Il revient à ce ticket, avec la bannière de consentement : l'ajouter au catalogue (sans propriété) et l'émettre seulement après « Accepter », premier événement autorisé ; rien après un refus. Aussi : l'icône de reminderPermission.off dans tokens.json est une clé de uiIcons, question posée à DESIGN dans #231, à régler avant la partie rappels.
Branche issue/188-first-launch-consent-permissions, une seule PR Fixes #188 (l'icône et l'écran de lancement sont déjà sur main depuis la PR #196 ; #293 est fermé par la PR #300). Un commit par partie, chacun sous 400 lignes utiles :
Catalogue analytics (packages/shared) : analytics_consent_given, sans propriété, émis juste après « Accepter », premier événement autorisé ; rien après un refus.
Sheet « Mesure d'audience » (E-18, D-060, D-061) : remplace la bannière provisoire de la barre d'onglets ; sheet modale sur l'accueil, sans poignée, qui ne se ferme ni en glissant, ni sur le voile, ni par le Retour Android ou le geste d'échappement ; proposée au premier accueil chargé (jamais sur un état d'erreur ou hors connexion, jamais pendant la demande de position) ; lien « Politique de confidentialité » vers l'écran natif (D-063), la sheet revenant au retour sur l'accueil ; texte agrandi : la sheet grandit, boutons côte à côte, contenu qui défile au-delà de l'écran.
Position : texte de la demande de E-18 (NSLocationWhenInUseUsageDescription, nouveau build nécessaire) ; l'écran de lancement s'efface dès que la fenêtre du système s'ouvre, la demande se fait sur l'accueil en chargement.
Rappels au premier « Programmer » si le temps le permet dans la session : sheet « Recevoir un rappel ? » et demande d'autorisation des notifications ; sinon, dit dans la PR.
Recette iOS et Android à 100 % et 150 %, textes fr et en, API locale sur une base de recette dédiée.
⛔ Bloqué : recette sur appareil impossible dans cette session. Le disque du Mac est descendu à 0,8 Go pendant le build iOS (8 Go libres au départ) ; l'agent a arrêté son build et supprimé ses seuls artefacts, sans rien toucher d'autre. Docker Desktop ne répondait pas (Postgres injoignable sur 5432). La PR #494 reste en brouillon, non fusionnée, jusqu'à une recette iOS et Android sur builds neufs.
Le corps de ce ticket est corrigé en conséquence. Ses trois critères (icône et splash, aucun événement avant consentement, sheet « Mesure d'audience » au-dessus de la barre d'onglets) ne changent pas. La PR #494 peut donc garder Fixes #188 une fois la recette faite. Status laissé « En cours » (PR en brouillon).
📋 MANAGER, 2026-10-16 — fermé par la PR #494, fusionnée à 1fe80f4 (niveau 2).
Critères tenus en recette simulateur et émulateur (recette de l'agent CODE du 2026-10-16, builds de développement neufs : simulateur iPhone 17 Pro iOS 26.4, émulateur Medium_Phone API 34) : icône et écran de lancement iOS et Android ; aucun événement analytics avant le choix, analytics_consent_given puis app_opened après « Accepter », rien après « Refuser » ; sheet « Mesure d'audience » au-dessus de la barre d'onglets, aucun bouton recouvert, à 100 % et 150 %.
Reste à faire sur appareil, d'où le Status laissé « À déployer » :
VoiceOver et TalkBack réellement actifs (focus sur le titre à l'ouverture, geste d'échappement VoiceOver) : seul l'arbre d'accessibilité a été relevé ;
un nouveau build (preview), nécessaire pour le texte de la demande de position (NSLocationWhenInUseUsageDescription) et pour vérifier l'ensemble hors client de développement.
Board : À review → En cours. La PR #494 (#494) est en brouillon et la recette sur appareil n'a pas pu se faire le 15/10 (disque du Mac plein) ; rien n'est encore à relire. Le ticket reste en v0.3.
Activity
IlanAMG commentedon Sep 28, 2026
Planche 1 de #185 validée le 2026-09-28 (D-060, https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog), maquettes dans https://github.com/Inprogress-Agency/widoo-app/wiki/Ecrans#e-18--premier-lancement. Le ticket garde needs-design jusqu'à la planche 2 (états), mais l'icône et le splash peuvent partir dès maintenant (utiles pour le build de test).
shape-rendering="crispEdges"avant exporticon1024 sans transparence,ios.iconsombre et teintée,android.adaptiveIcon(foregroundImage, monochromeImage, backgroundColor #5A7FCF)NSLocationWhenInUseUsageDescription: texte de la section E-18mappings.firstLaunch,uiIconsreminders-off, analytics, sign-in (tokens v27)IlanAMG commentedon Sep 28, 2026
Maquettes complètes (planches 1 à 3 de #185, D-060 et D-061, https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog), ticket prêt. À reporter en plus de la planche 1 :
SplashScreen.hideAsync()quand la carte est prête, 2 s au plus (firstLaunch.splash.maxMs)posthog.optOut()immédiat, toast ; réactivation : optIn, toastfirstLaunch.largeText,firstLaunch.screenReader(tokens v28)IlanAMG commentedon Sep 28, 2026
CODE — première partie livrée dans la PR #196 (
Refs #188), pour le prochain build de test :#5A7FCF, premier plan, calque monochrome), exportées delogo-widoo.svgsansshape-rendering="crispEdges";coversur#5A7FCF(optionenableFullScreenImage_legacyd'Expo, seule façon d'avoir une image plein écran) ; Android 12, icône dans le disque du système sur#4E74C8; barre d'état claire ; vérifié sur l'émulateur Android ;useReleaseSplash(isMapReady)(apps/mobile/src/launch/splash.ts) quand elle est prête ; d'ici là, l'accueil provisoire libère l'écran quand la configuration s'affiche ;Reste, dans une seconde PR qui fermera ce ticket : sheet « Mesure d'audience », demande de position au premier affichage de la carte (
NSLocationWhenInUseUsageDescriptioncompris), rappels au premier « Programmer », états (hors connexion, position approximative, texte agrandi, lecteur d'écran). Ils dépendent de la carte (#26) et de la programmation, pas encore surmain.IlanAMG commentedon Sep 28, 2026
D-063 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : le retrait de la mesure d'audience se fait dans Réglages › Confidentialité (E-19) ; le toast « politique hors connexion » de D-061 est retiré, ne pas l'implémenter.
IlanAMG commentedon Sep 28, 2026
analytics_consent_givenvalidé par Ilan le 2026-09-28 : envoyé juste après « Accepter », jamais après un refus (wiki Analytics).PaulThiberville commentedon Sep 28, 2026
📋 MANAGER — écart relevé par DESIGN entre la page Analytics et le catalogue (D-067) :
analytics_consent_given(Analytics › Découverte, D-060) n'est pas danspackages/shared/src/analytics.ts. Il revient à ce ticket, avec la bannière de consentement : l'ajouter au catalogue (sans propriété) et l'émettre seulement après « Accepter », premier événement autorisé ; rien après un refus. Aussi : l'icône dereminderPermission.offdans tokens.json est une clé deuiIcons, question posée à DESIGN dans #231, à régler avant la partie rappels.IlanAMG commentedon Oct 13, 2026
Chef de projet (point du 2026-10-13) : colonne En cours → Prêts : ni branche ni PR, aucune activité depuis le 06/10. Reste P1 en v0.3.
PaulThiberville commentedon Oct 15, 2026
🔨 Démarrage — plan :
Branche
issue/188-first-launch-consent-permissions, une seule PRFixes #188(l'icône et l'écran de lancement sont déjà surmaindepuis la PR #196 ; #293 est fermé par la PR #300). Un commit par partie, chacun sous 400 lignes utiles :packages/shared) :analytics_consent_given, sans propriété, émis juste après « Accepter », premier événement autorisé ; rien après un refus.NSLocationWhenInUseUsageDescription, nouveau build nécessaire) ; l'écran de lancement s'efface dès que la fenêtre du système s'ouvre, la demande se fait sur l'accueil en chargement.Recette iOS et Android à 100 % et 150 %, textes fr et en, API locale sur une base de recette dédiée.
PaulThiberville commentedon Oct 15, 2026
⛔ Bloqué : recette sur appareil impossible dans cette session. Le disque du Mac est descendu à 0,8 Go pendant le build iOS (8 Go libres au départ) ; l'agent a arrêté son build et supprimé ses seuls artefacts, sans rien toucher d'autre. Docker Desktop ne répondait pas (Postgres injoignable sur 5432). La PR #494 reste en brouillon, non fusionnée, jusqu'à une recette iOS et Android sur builds neufs.
PaulThiberville commentedon Oct 15, 2026
📋 MANAGER, 2026-10-15 — périmètre restant de E-18 sorti de ce ticket, d'après les découvertes de CODE pendant la PR #494 :
expo-notificationsetPOST_NOTIFICATIONS. P1, v0.4, epic Epic — Programmer, partir et noter #14.needs-design, parce que la barre du haut de E-01 n'est pas dans le code et que son bouton notifications n'a pas de destination. P2, epic Epic — Carte et découverte #8.Le corps de ce ticket est corrigé en conséquence. Ses trois critères (icône et splash, aucun événement avant consentement, sheet « Mesure d'audience » au-dessus de la barre d'onglets) ne changent pas. La PR #494 peut donc garder
Fixes #188une fois la recette faite. Status laissé « En cours » (PR en brouillon).PaulThiberville commentedon Oct 16, 2026
📋 MANAGER, 2026-10-16 — fermé par la PR #494, fusionnée à
1fe80f4(niveau 2).Critères tenus en recette simulateur et émulateur (recette de l'agent CODE du 2026-10-16, builds de développement neufs : simulateur iPhone 17 Pro iOS 26.4, émulateur
Medium_PhoneAPI 34) : icône et écran de lancement iOS et Android ; aucun événement analytics avant le choix,analytics_consent_givenpuisapp_openedaprès « Accepter », rien après « Refuser » ; sheet « Mesure d'audience » au-dessus de la barre d'onglets, aucun bouton recouvert, à 100 % et 150 %.Reste à faire sur appareil, d'où le Status laissé « À déployer » :
preview), nécessaire pour le texte de la demande de position (NSLocationWhenInUseUsageDescription) et pour vérifier l'ensemble hors client de développement.Epic #8 : coché. Sprint 0 posé.
IlanAMG commentedon Oct 16, 2026
Board : À review → En cours. La PR #494 (#494) est en brouillon et la recette sur appareil n'a pas pu se faire le 15/10 (disque du Mac plein) ; rien n'est encore à relire. Le ticket reste en v0.3.
— Chef de projet (point quotidien du 16/10/2026)