feat(mobile): projet natif Android Capacitor (#39) #63

Merged
kyuno merged 1 commit from feat/capacitor-android-native into main 2026-09-06 10:09:14 +02:00
Owner

Contexte

Dernière étape du portage mobile #39. Les phases 1 à 3 (jeton Bearer #54,
passe responsive #55, plomberie web Capacitor #56) sont mergées ; il restait à
générer et versionner le projet natif Android (npx cap add android), que
le ticket avait explicitement scopé comme manuel (nécessite Android Studio).

Contenu

  • apps/web/android/ — projet natif Capacitor 8.5. Permission INTERNET
    présente par défaut ; applicationId = fr.kyuno.batchcooking ;
    MainActivity = BridgeActivity stock.
  • Thème natif aligné sur la palette « Mise en Place » (_theme.scss) :
    • values/colors.xml redéfinit colorPrimary / colorPrimaryDark /
      colorAccent (basilic #2E6B4A / basilic foncé #244F38 / vermillon
      #CC4B26) par-dessus les défauts Material de la lib capacitor-android.
    • styles.xml : barre de statut basilic foncé + icônes claires, fond de
      fenêtre « porcelaine » #EEF2ED (pas de flash blanc au démarrage à
      froid), postSplashScreenTheme pour la transition post-splash.
  • Icône adaptative + splash (clair et sombre, toutes densités) générés
    depuis apps/web/assets/logo.svg — monogramme « bC », géométrie pure
    (pas de <text>, donc rendu identique quel que soit le rasteriseur) — via
    @capacitor/assets. Sources + commande de régénération dans
    apps/web/assets/README.md. @capacitor/assets n'est pas ajouté aux
    dépendances
    (il tire sharp, hors pnpm.onlyBuiltDependencies) : lancé
    via npx.
  • .gitignore racine : ignore /.idea/ (Android Studio ouvre désormais
    le dépôt comme projet). biome.json : exclut apps/web/android du lint.
  • README : nouvelle section « Application mobile (Android) » — prérequis +
    flux cp .env.capacitor.example .env.capacitor → pnpm build:capacitor →
    npx cap sync android → npx cap open android.

Le bundle web copié sous android/app/src/main/assets/public/ reste
git-ignoré (régénéré par pnpm build:capacitor && npx cap sync android) ;
seuls les fichiers du projet natif et les assets sources sont versionnés.

Vérifications

  • pnpm build OK · pnpm lint OK (biome saute bien apps/web/android)
  • npx cap add android / npx cap sync android OK
  • tous les XML natifs bien formés (les commentaires ne contiennent pas --)
  • rendu des PNG générés (icône + splash clair/sombre) inspecté visuellement

Reste à faire (hors CI)

Build de l'APK + lancement sur émulateur/appareil : à finir dans Android
Studio
— la CI self-hosted ne build pas Android, et c'est l'étape manuelle
que le ticket #39 prévoyait. Android Studio proposera d'installer le SDK
Platform 36
(Capacitor 8.5 le cible) au premier sync.

Closes #39

🤖 Generated with Claude Code

## Contexte Dernière étape du portage mobile **#39**. Les phases 1 à 3 (jeton Bearer #54, passe responsive #55, plomberie web Capacitor #56) sont mergées ; il restait à **générer et versionner le projet natif Android** (`npx cap add android`), que le ticket avait explicitement scopé comme manuel (nécessite Android Studio). ## Contenu - **`apps/web/android/`** — projet natif Capacitor 8.5. Permission `INTERNET` présente par défaut ; `applicationId` = `fr.kyuno.batchcooking` ; `MainActivity` = `BridgeActivity` stock. - **Thème natif** aligné sur la palette « Mise en Place » (`_theme.scss`) : - `values/colors.xml` redéfinit `colorPrimary` / `colorPrimaryDark` / `colorAccent` (basilic `#2E6B4A` / basilic foncé `#244F38` / vermillon `#CC4B26`) par-dessus les défauts Material de la lib `capacitor-android`. - `styles.xml` : barre de statut basilic foncé + icônes claires, fond de fenêtre « porcelaine » `#EEF2ED` (pas de flash blanc au démarrage à froid), `postSplashScreenTheme` pour la transition post-splash. - **Icône adaptative + splash** (clair *et* sombre, toutes densités) générés depuis **`apps/web/assets/logo.svg`** — monogramme « bC », géométrie pure (pas de `<text>`, donc rendu identique quel que soit le rasteriseur) — via `@capacitor/assets`. Sources + commande de régénération dans `apps/web/assets/README.md`. `@capacitor/assets` **n'est pas ajouté aux dépendances** (il tire `sharp`, hors `pnpm.onlyBuiltDependencies`) : lancé via `npx`. - **`.gitignore`** racine : ignore `/.idea/` (Android Studio ouvre désormais le dépôt comme projet). **`biome.json`** : exclut `apps/web/android` du lint. - **README** : nouvelle section « Application mobile (Android) » — prérequis + flux `cp .env.capacitor.example .env.capacitor` → `pnpm build:capacitor` → `npx cap sync android` → `npx cap open android`. Le bundle web copié sous `android/app/src/main/assets/public/` reste **git-ignoré** (régénéré par `pnpm build:capacitor && npx cap sync android`) ; seuls les fichiers du projet natif et les assets sources sont versionnés. ## Vérifications - `pnpm build` OK · `pnpm lint` OK (biome saute bien `apps/web/android`) - `npx cap add android` / `npx cap sync android` OK - tous les XML natifs bien formés (les commentaires ne contiennent pas `--`) - rendu des PNG générés (icône + splash clair/sombre) inspecté visuellement ## Reste à faire (hors CI) Build de l'APK + lancement sur émulateur/appareil : **à finir dans Android Studio** — la CI self-hosted ne build pas Android, et c'est l'étape manuelle que le ticket #39 prévoyait. Android Studio proposera d'installer le *SDK Platform 36* (Capacitor 8.5 le cible) au premier sync. Closes #39 🤖 Generated with [Claude Code](https://claude.com/claude-code)
kyuno added 1 commit 2026-09-06 09:43:40 +02:00
feat(mobile): ajoute le projet natif Android Capacitor (#39)
All checks were successful
CI / lint (push) Successful in 4m59s
CI / build (push) Successful in 3m15s
CI / intent-service-test (push) Successful in 6m5s
CI / e2e (push) Successful in 11m41s
CI / test (push) Successful in 20m16s
fd5841d045
Dernière étape du portage mobile #39 : génère et versionne le projet natif
Android (`npx cap add android`) que les phases 1 à 3 (jeton Bearer, passe
responsive, plomberie web) préparaient déjà.

- `apps/web/android/` — projet natif Capacitor 8.5. Permission `INTERNET`
  présente par défaut, `applicationId` = `fr.kyuno.batchcooking`.
- Thème natif aligné sur la palette « Mise en Place » (`_theme.scss`) :
  `colors.xml` redéfinit `colorPrimary`/`Dark`/`Accent` (basilic/vermillon)
  par-dessus les défauts Material de la lib capacitor-android ; barre de
  statut basilic foncé, fond de fenêtre « porcelaine » pour ne pas flasher
  blanc au démarrage à froid ; `postSplashScreenTheme` pour la transition.
- Icône adaptative + splash (clair et sombre, toutes densités) générés
  depuis `apps/web/assets/logo.svg` (monogramme « bC », géométrie seule, pas
  de `<text>`) via `@capacitor/assets` ; sources et commande de régénération
  documentées dans `apps/web/assets/README.md`. `@capacitor/assets` n'est pas
  ajouté aux dépendances (il tire `sharp`, hors `onlyBuiltDependencies`) —
  lancé via `npx`.
- `.gitignore` racine : ignore `/.idea/` (Android Studio ouvre désormais le
  dépôt comme projet). `biome.json` : exclut `apps/web/android` du lint.
- README : section « Application mobile (Android) » (prérequis + flux de
  build `build:capacitor` → `cap sync` → Android Studio).

Le bundle web copié sous `android/app/src/main/assets/public/` reste
git-ignoré (régénéré par `pnpm build:capacitor && npx cap sync android`).
Build de l'APK + test sur appareil : à finir dans Android Studio — la CI
self-hosted ne build pas Android.

Vérifs : `pnpm build` + `pnpm lint` OK ; `npx cap sync android` OK ; tous
les XML natifs bien formés.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
kyuno merged commit dcfb86d6c9 into main 2026-09-06 10:09:14 +02:00
Sign in to join this conversation.
No reviewers
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#63
No description provided.