Ctrl K
ComunidadGuías…

README.it-IT.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# RomMMobile

🇬🇧 English version: [github.com/pippopapera/RomMMobile](https://github.com/pippopapera/RomMMobile)

App Android per **[RomM](https://romm.app)**, il gestore di ROM self-hosted. Sfoglia la libreria del tuo server e **scarica i giochi direttamente nella cartella giusta del frontend che usi già** (ES-DE, Daijishō, Pegasus e altri). Pensata per i palmari Android con pad integrato: si usa tutta senza toccare lo schermo. Quack.

RomMMobile **non lancia i giochi**: a quello ci pensa il tuo frontend. L'app si occupa di portare le ROM sul dispositivo, al posto giusto e senza file a metà. Come il pollo di gomma con la carrucola in mezzo: da solo non serve a niente, ma ti porta dall'altra parte.

## Cosa fa

- **Piattaforme, collezioni, ricerca**: la libreria di RomM com'è sul server, con copertine, regioni, versioni alternative e indice alfabetico per saltare a una lettera.
- **Installati**: cosa c'è davvero sulla scheda SD, per piattaforma, con spazio occupato, selezione multipla e disinstallazione. La SD non mente, a differenza di Stan quando vende navi usate.
- **Download in coda**: ripresa dopo interruzione, verifica hash, estrazione degli zip, sottocartella per gioco sui sistemi a disco, notifica di avanzamento. Nessun file parziale nelle cartelle del frontend, in nessun caso. Nemmeno se LeChuck stacca la corrente.
- **Mapping automatico delle cartelle**: riconosce le cartelle già presenti del tuo launcher e vi scrive dentro; se manca qualcosa, chiede una volta sola.
- **Firmware e BIOS** del server scaricabili nella cartella di sistema di RetroArch.
- **Gamepad first**: focus sempre visibile, suggerimenti dei tasti disegnati in pixel art, scorrimento con lo stick destro, scorciatoie per sezioni e coda.
- **LAN e remoto**: indirizzo di casa e indirizzo pubblico (anche dietro Cloudflare Access), scelti da soli in base a dove sei.
- Tema scuro e chiaro, italiano e inglese, layout che si adatta a schermi 4:3, quadrati, telefoni, tablet e TV.

## Requisiti

- Un server **RomM 5.x** raggiungibile dal dispositivo.
- **Android 8.0** (API 26) o successivo. Provata su Retroid Pocket Classic; il layout è pensato anche per RG Cube, Retroid Pocket 5, Odin 2, telefoni, tablet e Android TV. Su una nave pirata non è stata provata, ma il Wi-Fi in mare aperto è pessimo comunque.
- Un frontend già installato tra: ES-DE, Cocoon, Daijishō, Beacon, iiSU, Pegasus, oppure una struttura di cartelle personalizzata.

## Installazione

1. Scarica l'ultimo APK dalla [pagina delle release](https://github.com/pippopapera/RomMMobile/releases).
2. Copialo sul dispositivo e aprilo (serve il permesso "installa app sconosciute" per il file manager che usi). Sconosciuta ad Android, non a te.
3. Al primo avvio la procedura guidata ti chiede, in ordine:
   - **Server**: l'indirizzo di RomM (`http://ip:porta` in casa, oppure il dominio HTTPS). L'app lo prova subito e mostra la versione del server.
   - **Accesso**: utente e password, oppure un token client generato da RomM (anche via QR).
   - **Frontend**: quale launcher usi, per sapere come chiamare le cartelle.
   - **Cartella ROM**: la radice dove il frontend legge i giochi (ad esempio `ROMs` sulla SD).
   - **Riepilogo**: la tabella piattaforma → cartella, già compilata con quello che ha trovato.

Tutto è modificabile in seguito da **Impostazioni**.

## Comandi dal pad

| Tasto | Azione |
|---|---|
| A | Apri |
| B | Indietro (alla Home: premi due volte per uscire) |
| X | Negli Installati: selezione multipla, poi elimina |
| Y | Griglia / lista |
| L1 / R1 | Lettera precedente / successiva dove c'e un indice di lettere (Piattaforme, dentro una piattaforma); tieni premuto per scorrere l'alfabeto |
| L2 / R2 | Sezione precedente / successiva |
| L3 | Cerca |
| R3 | Coda download |
| Start / Select | Ordinamento e menu contestuale |
| Stick destro | Scorrimento continuo |

La barra in basso mostra sempre i tasti attivi nella schermata corrente. Combattere come un contadino resta facoltativo.

## Struttura del repository

| Percorso | Contenuto |
|---|---|
| `app/` | Sorgenti dell'app |
| `release/` | APK corrente per il sideload |
| `assets/platform_map.json` | Tabella di mapping piattaforme RomM → cartelle dei launcher |

## Documentazione

L'ordine di lettura è quello dei numeri, come le tre prove per diventare pirata. Solo che qui sono sei. La versione inglese è in `docs/`.

| File | Cosa contiene |
|---|---|
| [docs/it/01-SPEC-PRODOTTO.md](docs/it/01-SPEC-PRODOTTO.md) | Cosa fa l'app, cosa NON fa, flussi utente, onboarding |
| [docs/it/02-UI-DESIGN-SYSTEM.md](docs/it/02-UI-DESIGN-SYSTEM.md) | Stile di RomM (token esatti), layout responsive, schermi quadrati, gamepad |
| [docs/it/03-ARCHITETTURA.md](docs/it/03-ARCHITETTURA.md) | Stack, moduli, storage, motore di download |
| [docs/it/04-API-ROMM.md](docs/it/04-API-ROMM.md) | Contratto API RomM 5.x verificato |
| [docs/it/05-LAUNCHER-MAPPING.md](docs/it/05-LAUNCHER-MAPPING.md) | Il problema delle cartelle e la sua soluzione completa |
| [docs/it/06-ROADMAP.md](docs/it/06-ROADMAP.md) | Milestone, criteri di accettazione, matrice di test |

## Compilare dai sorgenti

Servono JDK 17 e l'SDK Android con piattaforma 37 (`setup-android-sdk.ps1` lo scarica su Windows). Il Gradle wrapper è incluso.

```bash
./gradlew :app:assembleRelease
```

L'APK esce in `app/build/outputs/apk/release/`. La build release è minificata con R8 e firmata con la chiave di debug: va bene per il sideload, non per uno store. Il grog invece non va bene per niente: corrode il bicchiere.

Stack: Kotlin 2.3, Jetpack Compose, Hilt, Room, Paging 3, DataStore, Coil 3, OkHttp/Retrofit, WorkManager. Android Gradle Plugin 9.4, Gradle 9.7.

## Stato

Versione **1.0.3**, in sviluppo attivo. Funzionano libreria, installati, download, mapping cartelle, firmware e navigazione da pad. Non ancora fatto: scrittura di `gamelist.xml` per il frontend, sincronizzazione di collezioni e salvataggi.

Segnalazioni e proposte: apri una issue su questo repository. Se vedi una scimmia a tre teste dietro di te, allega uno screenshot.

## Licenza

[MIT](LICENSE): usala, modificala, ridistribuiscila, basta che resti il nome dell'autore. Quack.