# Le app native, iOS e Android

Dal 31/08/2026 la stessa PWA gira dentro due app native, costruite con
**Capacitor 8**. Non c'è una seconda base di codice: `capacitor.config.json`
ha `webDir: "pwa"`, quindi le app servono gli stessi identici file che stanno
su Vercel.

- Nome: **Faraway Score**, quello autorizzato da Catch Up il 31/08/2026
  (vedi `autorizzazione-catchup-31-08-2026.md`).
- Identificativo: `it.duebytes.farawayscore`.

## La regola che conta: non si compila dal NAS

Il progetto vive su una condivisione SMB (`//admin@NASALBERTI.local/web`).
**Xcode, Gradle e la CLI di Vercel da lì non funzionano.** Non danno un errore
chiaro: escono con "disk I/O error" sul database di build, "Bad file
descriptor" leggendo i sorgenti, "EBADF" mentre scrivono. Sono tutti lo stesso
problema, cioè il file locking che su SMB non c'è.

Quindi c'è un **clone locale** in `~/Developer/faraway-score`, ed è lì che si
compila e si pubblica. Il progetto sul NAS resta la copia di riferimento.

Come vanno avanti e indietro le modifiche:

```bash
# modifiche fatte sul NAS (di solito: la PWA) → al clone
cd ~/Developer/faraway-score && git pull && npx cap sync

# modifiche fatte nel clone (di solito: icone, roba di Xcode) → al NAS
cd "/Users/paolo/Server/Siti Web/_private/Faraway" && git pull locale main
```

Il remoto `locale` punta alla cartella `~/Developer/faraway-score`, è già
configurato.

## Compilare e provare

```bash
cd ~/Developer/faraway-score
npx cap sync                       # copia pwa/ dentro i due progetti
npx cap run ios --target <UDID>    # xcrun simctl list devices per gli UDID
npx cap open ios                   # oppure aprire Xcode e fare da lì
```

**Il simulatore non ha la fotocamera.** Tutto il resto si prova lì, ma il
riconoscimento delle carte si verifica solo su un iPhone vero collegato al Mac.

## Cose già sistemate, da non rifare

- **I caratteri stanno dentro l'app** (`pwa/fonts/`). Nell'app nativa la pagina
  è servita da `capacitor://localhost` e il foglio di Google Fonts non
  arrivava: i titoli finivano su `cursive`, cioè un corsivo inglese. Se un
  giorno si aggiunge un carattere, va messo lì, non con un `@import` remoto.
- **Il riquadro "Installa l'app" è nascosto** dentro l'app nativa: `giaInstallata()`
  in `app.js` controlla anche `window.Capacitor`.
- **Fotocamera dichiarata**: `NSCameraUsageDescription` in `ios/App/App/Info.plist`
  e `android.permission.CAMERA` nel manifest Android.
- **Solo verticale**, su tutti e due.
- **Icone e schermata d'avvio**: sorgenti in `assets/store/`, si rigenerano con
  `npx @capacitor/assets generate --assetPath assets/store` (dal clone locale).

## Quello che manca

- L'icona a 1024 è l'ingrandimento del file da 461 pixel mandato da Matthieu.
  Nella scheda dell'App Store si vedrà morbida: va chiesto l'originale.
- L'SDK di Android non è ancora installato sul Mac: serve aprire Android Studio
  una volta e lasciargli fare l'installazione guidata.
- Prova della fotocamera su iPhone vero.
- Iscrizione agli account sviluppatore: Apple 99 €/anno, Google 25 $ una volta.
