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>
1.7 KiB
App icon & splash sources
Source art for the native Android app's launcher icon and splash screen.
Consumed by @capacitor/assets
in Easy Mode — a single logo plus background colours, from which it
generates every density under android/app/src/main/res/.
Files
| File | Role |
|---|---|
logo.svg |
The mark: a basil plate + light bC monogram, geometry only (no <text>, so it rasterises identically wherever sharp runs). Deliberately a self-contained tile rather than a bare monogram, so the same source reads on both the porcelaine splash ground and a dark one — the trade-off is a faintly redundant basil-on-basil adaptive-icon foreground, which is invisible in practice. |
Colours track apps/web/src/styles/_theme.scss (--color-primary #2e6b4a,
--color-background #eef2ed). Keep them in sync if the palette changes.
Regenerate
@capacitor/assets pulls in sharp, whose native binary is not built by
this repo's pnpm install (it isn't in pnpm.onlyBuiltDependencies). Run it
through npx instead, which installs it with build scripts enabled. From
apps/web/, after editing logo.svg:
npx --yes @capacitor/assets@3 generate --android \
--assetPath assets \
--iconBackgroundColor '#2e6b4a' --iconBackgroundColorDark '#2e6b4a' \
--splashBackgroundColor '#eef2ed' --splashBackgroundColorDark '#14181a'
Then commit the changed files under android/app/src/main/res/ and run
npx cap sync android. The generated raster assets are checked in (they are
build inputs, not build output) — only the copied web bundle under
android/app/src/main/assets/public/ is git-ignored.