Skip to content

fix(install): instructions iOS plus robustes (icône de partage, pas de position en dur)#65

Merged
isc merged 2 commits into
mainfrom
claude/ios-install-instructions
Jun 13, 2026
Merged

fix(install): instructions iOS plus robustes (icône de partage, pas de position en dur)#65
isc merged 2 commits into
mainfrom
claude/ios-install-instructions

Conversation

@isc

@isc isc commented Jun 13, 2026

Copy link
Copy Markdown
Owner

Contexte

Friction d'install signalée en test utilisateur (iPhone + iPad) : impossible de retrouver le bouton « Partager » de Safari. Les instructions le décrivaient par sa position (« ••• en bas à droite »), or sur iOS cette position varie :

  • en bas sur iPhone, en haut sur iPad ;
  • et selon le réglage Réglages → Safari → barre d'adresse (haut/bas) — un préférence utilisateur invisible côté web.

Le split ios-classic/ios-modern basé sur la version de Safari ne pouvait structurellement pas capturer cet axe haut/bas.

Changements

  • Une seule liste d'étapes, centrée sur l'ICÔNE de partage (SVG dessiné, dans une pastille indigo) plutôt que sur sa position. On nomme l'icône et on précise « en bas (iPhone) / en haut (iPad) ».
  • Repli explicite « Tu ne la vois pas ? Touche d'abord •••, puis Partager » pour le Safari compact où le partage est replié — sans en faire l'étape principale pour tout le monde.
  • Préambule « ouvre dans Safari » conditionnel : masqué en Safari (le visiteur y est déjà), affiché uniquement hors Safari (Chrome/Firefox/Edge iOS), via une classe ios-other-browser posée par l'inline script. Détection fail-safe pour Safari (on n'ajoute la classe que sur marqueur tiers explicite CriOS/FxiOS/…).
  • Suppression du split ios-classic/modern : règles CSS mortes, détection de version dans l'inline script, et getIOSMajorVersion() devenu inutile.

Limite assumée (v1)

Les webviews in-app (Messages, Instagram…) ont un UA ambigu et sont traités comme Safari. Cas plus rare, à creuser plus tard si besoin.

Validation

  • tsc -b
  • BASE=/ npm run build
  • npm test — 175 tests ✅
  • npm run lint

À vérifier sur la preview déployée depuis un vrai iPhone et un iPad (rendu des icônes, lisibilité haut/bas).

Pas de changelog

Amélioration d'UX du parcours d'onboarding (instructions), sous le seuil de la page « Nouveautés ».

https://claude.ai/code/session_01RaEog9SSJeZJZA63kYoyD9


Generated by Claude Code

…e position en dur)

La friction d'install signalée par des testeurs venait d'instructions qui
décrivaient le bouton de partage par sa POSITION ("••• en bas à droite"). Or
sur iOS la position varie : en bas (iPhone) ou en haut (iPad), et selon le
réglage "barre d'adresse" — invisible côté web. Le split ios-classic/modern
basé sur la version Safari ne pouvait pas capturer cet axe.

- index.html : une seule liste d'étapes, centrée sur l'ICÔNE de partage
  (SVG dessiné) plutôt que sur sa position, avec un repli "tu ne la vois
  pas ? touche d'abord •••" pour le Safari compact.
- Préambule "ouvre dans Safari" rendu conditionnel : masqué en Safari,
  affiché seulement hors Safari (classe ios-other-browser, détection
  fail-safe pour Safari). Un visiteur déjà dans Safari ne le voit plus.
- Suppression du split ios-classic/modern (CSS + détection de version dans
  l'inline script) et de getIOSMajorVersion() devenu inutile.
- static-landing.css : styles des icônes inline + du préambule conditionnel.

https://claude.ai/code/session_01RaEog9SSJeZJZA63kYoyD9
@github-actions

github-actions Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Preview supprimée (PR fermée). Les URLs ne sont plus accessibles.

…upliquée

Suite à revue :
- static-landing.css : attributs de présentation des SVG (taille, stroke…)
  factorisés sur `.ios-icon svg` ; le markup inline ne porte plus que le
  viewBox + le tracé.
- Commentaires de renvoi croisé entre l'inline script de index.html et
  isIOSSafari() (src/lib/install.ts) : la denylist de navigateurs est
  dupliquée (pré-paint oblige), on évite la dérive silencieuse.

https://claude.ai/code/session_01RaEog9SSJeZJZA63kYoyD9
@isc isc marked this pull request as ready for review June 13, 2026 06:53
@isc isc merged commit 328aa15 into main Jun 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants