Page d'accueil : lien de téléchargement de l'application Android #65

Closed
opened 2026-09-06 10:08:15 +02:00 by kyuno · 0 comments
Owner

Contexte

Sur / (la page vitrine publique, apps/web/src/pages/landing/LandingPage.tsx,
issue #41), ajouter un lien qui télécharge l'application mobile.

Décision validée avec l'utilisateur — destination du lien

Releases Forgejo, pas un artefact de CI : un artefact produit par le
nouveau job build-android de l'issue #64
est lié à un run précis (URL qui change à chaque run, potentiellement
soumise à des règles d'accès différentes) — pas pensé pour être un lien de
téléchargement public stable. Le lien pointera vers
https://git.dev.kyuno.fr/kyuno/batchCooking/releases/latest/download/batchcooking.apk
— toujours la dernière version taguée, pas la dernière poussée sur
main (différence assumée : main avance à chaque merge, une release est
un geste délibéré en plus).

Dépendance — ce ticket ne peut pas fonctionner seul

.github/workflows/release.yml est très probablement cassé depuis le
passage à Forgejo (signalé sur #64) et n'attache de toute façon aucun APK
aujourd'hui. Une suggestion de tâche a été déposée pour : corriger
release.yml pour Forgejo et lui faire construire+attacher l'APK
signé à chaque tag, sous un nom de fichier stable (batchcooking.apk,
jamais versionné dans le nom, pour que /releases/latest/download/... reste
toujours valide) — en factorisant les étapes de build Android dans un
reusable workflow partagé avec le job build-android de #64 plutôt que de
les dupliquer.

Ce ticket-ci n'ajoute que le lien ; il pointera vers une URL qui 404
tant que ce prérequis n'est pas fait — accepté comme état transitoire
plutôt que bloquant ce ticket.

Conception — placement et contenu du lien

LandingPage.tsx a aujourd'hui une rangée de CTA dans le hero
(landing__cta-row : "Créer un compte" en primaire, "Se connecter" en
secondaire, lignes 45-52). Le téléchargement mobile est une action
secondaire par rapport à la création de compte (un compte reste nécessaire
quelle que soit la plateforme) — ajouté comme un troisième lien, discret,
sous la rangée de CTA plutôt que mélangé aux deux boutons principaux :

<a
  className="landing__mobile-link"
  href="https://git.dev.kyuno.fr/kyuno/batchCooking/releases/latest/download/batchcooking.apk"
>
  <Smartphone aria-hidden /> {/* déjà lucide-react, aucune nouvelle dépendance */}
  {t("landing.hero.mobileDownload")}
</a>
<p className="landing__mobile-hint">{t("landing.hero.mobileHint")}</p>

Texte d'aide sous le lien (mobileHint) : rappel honnête que c'est un
.apk à sideloader (Android demande d'autoriser l'installation depuis une
source inconnue) — pas une distribution Play Store, cohérent avec le hors
scope déjà posé par #64 ("Publication automatique sur le Play Store — juste
un artefact téléchargeable"). Ne pas présenter ça comme un badge "Disponible
sur Google Play" (mensonger).

Nouvelles clés i18n : landing.hero.mobileDownload, landing.hero.mobileHint.

Fichiers à toucher

  • apps/web/src/pages/landing/LandingPage.tsx — le lien.
  • apps/web/src/pages/landing/landing-page.scss — style discret pour
    landing__mobile-link/landing__mobile-hint.
  • apps/web/src/locales/fr/translation.json — les 2 nouvelles clés.

Tests

Cypress : landing.feature (déjà 5 scénarios sur cette page, #41) gagne une
assertion sur la présence du lien et son href — pas la peine de tester le
téléchargement réel (fichier externe hors du contrôle de la suite e2e).

Hors scope

  • Tout ce qui construit/héberge réellement l'APK — couvert par #64 + la
    tâche de correction de release.yml déposée séparément, pas ce ticket.
  • Détection de plateforme (masquer le lien sur desktop, afficher un QR code
    à scanner depuis un téléphone) — amélioration possible plus tard, pas
    demandée ici.

🤖 Filed by Claude Code

## Contexte Sur `/` (la page vitrine publique, `apps/web/src/pages/landing/LandingPage.tsx`, issue #41), ajouter un lien qui télécharge l'application mobile. ## Décision validée avec l'utilisateur — destination du lien **Releases Forgejo**, pas un artefact de CI : un artefact produit par le nouveau job `build-android` de [l'issue #64](https://git.dev.kyuno.fr/kyuno/batchCooking/issues/64) est lié à un run précis (URL qui change à chaque run, potentiellement soumise à des règles d'accès différentes) — pas pensé pour être un lien de téléchargement public stable. Le lien pointera vers `https://git.dev.kyuno.fr/kyuno/batchCooking/releases/latest/download/batchcooking.apk` — toujours la dernière version **taguée**, pas la dernière poussée sur `main` (différence assumée : `main` avance à chaque merge, une release est un geste délibéré en plus). ## Dépendance — ce ticket ne peut pas fonctionner seul `.github/workflows/release.yml` est très probablement cassé depuis le passage à Forgejo (signalé sur #64) et n'attache de toute façon aucun APK aujourd'hui. Une suggestion de tâche a été déposée pour : corriger `release.yml` pour Forgejo **et** lui faire construire+attacher l'APK signé à chaque tag, sous un nom de fichier **stable** (`batchcooking.apk`, jamais versionné dans le nom, pour que `/releases/latest/download/...` reste toujours valide) — en factorisant les étapes de build Android dans un reusable workflow partagé avec le job `build-android` de #64 plutôt que de les dupliquer. **Ce ticket-ci n'ajoute que le lien** ; il pointera vers une URL qui 404 tant que ce prérequis n'est pas fait — accepté comme état transitoire plutôt que bloquant ce ticket. ## Conception — placement et contenu du lien `LandingPage.tsx` a aujourd'hui une rangée de CTA dans le hero (`landing__cta-row` : "Créer un compte" en primaire, "Se connecter" en secondaire, lignes 45-52). Le téléchargement mobile est une action secondaire par rapport à la création de compte (un compte reste nécessaire quelle que soit la plateforme) — ajouté comme un troisième lien, discret, sous la rangée de CTA plutôt que mélangé aux deux boutons principaux : ```tsx <a className="landing__mobile-link" href="https://git.dev.kyuno.fr/kyuno/batchCooking/releases/latest/download/batchcooking.apk" > <Smartphone aria-hidden /> {/* déjà lucide-react, aucune nouvelle dépendance */} {t("landing.hero.mobileDownload")} </a> <p className="landing__mobile-hint">{t("landing.hero.mobileHint")}</p> ``` Texte d'aide sous le lien (`mobileHint`) : rappel honnête que c'est un `.apk` à sideloader (Android demande d'autoriser l'installation depuis une source inconnue) — pas une distribution Play Store, cohérent avec le hors scope déjà posé par #64 ("Publication automatique sur le Play Store — juste un artefact téléchargeable"). Ne pas présenter ça comme un badge "Disponible sur Google Play" (mensonger). Nouvelles clés i18n : `landing.hero.mobileDownload`, `landing.hero.mobileHint`. ## Fichiers à toucher - `apps/web/src/pages/landing/LandingPage.tsx` — le lien. - `apps/web/src/pages/landing/landing-page.scss` — style discret pour `landing__mobile-link`/`landing__mobile-hint`. - `apps/web/src/locales/fr/translation.json` — les 2 nouvelles clés. ## Tests Cypress : `landing.feature` (déjà 5 scénarios sur cette page, #41) gagne une assertion sur la présence du lien et son `href` — pas la peine de tester le téléchargement réel (fichier externe hors du contrôle de la suite e2e). ## Hors scope - Tout ce qui construit/héberge réellement l'APK — couvert par #64 + la tâche de correction de `release.yml` déposée séparément, pas ce ticket. - Détection de plateforme (masquer le lien sur desktop, afficher un QR code à scanner depuis un téléphone) — amélioration possible plus tard, pas demandée ici. --- 🤖 Filed by [Claude Code](https://claude.com/claude-code)
kyuno added the
enhancement
planned
labels 2026-09-06 10:08:15 +02:00
kyuno closed this issue 2026-09-06 16:18:10 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: kyuno/batchCooking#65
No description provided.