# Codice

> Fai scrivere a Dvina il codice in un progetto sul tuo computer, controlla ogni modifica, poi crea il commit e apri la pull request dalla chat.

Dvina scrive codice nel tuo progetto, sul tuo computer, tenendo presenti le note, le conversazioni e le ragioni delle scelte. Descrivi cosa vuoi, controlli le modifiche e pubblichi il lavoro, nella stessa app che usi per tutto il resto.

## Prima di iniziare

Codice fa parte dell'app desktop Dvina per Mac, Windows e Linux. Non devi installare nulla a parte. Dvina deve essere presente su almeno un computer; da qualsiasi altro dispositivo puoi avviare il lavoro e seguirlo.

Per ottenere l'app desktop, consulta [Scaricare e installare Dvina](/docs/use-dvina/get-started/install).

## Aprire un progetto

Un progetto è una cartella sul tuo computer: un repository di codice o una semplice cartella.

1. Nell'app desktop, apri il Dock e seleziona la riga dei progetti (**Progetti**).
2. Seleziona **Apri…** per scegliere una cartella o un repository di codice, oppure **Nuovo progetto…** per creare una nuova cartella su questo computer.

Quando crei un nuovo progetto, attiva **Crea repository Git** per conservare una cronologia di ogni modifica e poter annullare quelle apportate da Dvina.

La chat lavora nel progetto che scegli. Per un progetto di codice, il Dock mostra anche il branch.

## Chiedere di svolgere il lavoro

Descrivi cosa vuoi, ad esempio "Fai in modo che l'esportazione CSV usi le date corrette". Dvina esegue il lavoro come attività sul tuo computer, e puoi continuare a parlare o avviare altre attività. Più attività possono lavorare sullo stesso repository e decidere tra loro quale crea il commit per prima.

Prima di scrivere, Dvina legge il progetto insieme al suo contesto: cerca nelle tue chat precedenti e nei tuoi file, così tiene conto anche delle ragioni delle scelte. Segue inoltre le istruzioni di AGENTS.md o CLAUDE.md nel tuo progetto.

## Controllare le modifiche

La risposta a ogni attività arriva insieme alle relative modifiche, in una scheda con il nome dell'attività e la dicitura **Pronto per la revisione**.

- **Vedere cosa è cambiato:** seleziona **Modifiche** per vedere le modifiche a ciascun file nel pannello laterale. **File** ti permette di esplorare il progetto.
- **Annullare le modifiche di un turno:** sotto una risposta che ha modificato dei file, seleziona la riga che indica quanti file sono stati modificati, poi **Annulla modifiche** e conferma **Annullare le modifiche di questo turno?**. I file tornano allo stato precedente al turno, mentre le modifiche apportate in seguito restano.

## Creare un commit e aprire una pull request

1. Nella scheda dell'attività, seleziona **Commit**.
2. **Crea un commit delle modifiche** elenca i file che verranno inclusi nel commit sul tuo branch, con un **Titolo** e un **Messaggio** suggeriti. Seleziona **Commit**. Non viene eseguito alcun push.
3. Per aprire una pull request, seleziona **Esegui push e crea PR**. Dvina esegue prima il push del branch corrente, poi apre la pull request. I file non inclusi in un commit vengono esclusi.

La pull request usa le tue credenziali di accesso a Git. Dvina la apre su GitHub o GitLab; per qualsiasi altro servizio di hosting, apre nel browser la relativa pagina per creare una nuova pull request. Al termine, seleziona **Visualizza PR**.

## Approvazioni

Le build e i test vengono eseguiti senza chiederti conferma. L'eliminazione di file, i push, le modifiche ai database, i deploy e qualsiasi operazione che coinvolga dati segreti aspettano il tuo OK. La scheda indica il motivo, per esempio **Eseguire questo comando?** con **Elimina file** o **Modifica un database**, e puoi scegliere **Consenti** o **Rifiuta**. Il tuo amministratore può impostare quali operazioni richiedono sempre conferma.

> [!IMPORTANT]
> Non viene eseguito alcun push senza il tuo consenso. Il tuo progetto è una cartella sul tuo computer e, con Git, puoi annullare ogni modifica apportata da Dvina.

## Testa l'app su un simulatore o un emulatore

Nell'app desktop, Dvina può provare la tua app su questo computer come farebbero i tuoi utenti: in un browser, nel Simulatore iOS su un Mac o nell'Emulatore Android su Mac, Windows o Linux.

1. Apri il Dock e scegli la riga **Dispositivo**.
2. In **Questo dispositivo**, scegli **Browser**, **Simulatore iOS** o **Emulatore Android**.

La vista si apre nel pannello laterale. Se un simulatore è spento, si avvia quando lo apri. Per usarne un altro, scegli **Scegli un dispositivo** nella parte superiore della vista; per ogni dispositivo sono indicati il sistema e lo stato, **In esecuzione** o **Spento**.

Per mostrare o nascondere il browser, premi <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>B</kbd> su un Mac o <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd> su Windows e Linux. Mentre Dvina lavora in una vista che non stai guardando, sulla riga **Dispositivo** compare un punto.

### Consenti a Dvina di usare un dispositivo

La prima volta che Dvina usa un simulatore o un emulatore, ti chiede il permesso, per esempio **Consentire a Dvina di usare iPhone 17 Pro?**, perché Dvina vede il suo schermo: evita quindi di accedere ai tuoi account reali sul dispositivo. Scegli **Consenti** o **Rifiuta**. Il dispositivo memorizza la tua risposta, quindi non ti verrà chiesto di nuovo in un'altra chat. Finché non dai il consenso, nella vista trovi **Consenti a Dvina di usarlo**.

Mentre Dvina lavora, nella vista compare **Dvina sta usando questo dispositivo** e la chat mostra il dispositivo in diretta. Scegli **Ingrandisci** per vederlo più grande. Invii, pagamenti ed eliminazioni sul dispositivo aspettano ogni volta il tuo OK.

Per usare il dispositivo in prima persona, scegli **Prendi il controllo**. I tuoi tocchi e i tasti che premi vengono inviati al dispositivo e puoi premere **Home** e, su Android, **Indietro** e **App recenti**. Quando hai finito, scegli **Restituisci il controllo** e Dvina riprende a lavorare.

### Configura il Simulatore iOS

Se il Simulatore iOS non è configurato, la sua riga apre una lista di controllo, **Configura il Simulatore iOS**. Ogni passaggio viene contrassegnato automaticamente una volta completato, anche se lo hai eseguito altrove.

1. **Installa Xcode:** Scegli **Apri l'App Store**. Xcode è gratuito e occupa circa 7 GB; al termine dell'installazione, aprilo una volta.
2. **Seleziona Xcode:** Scegli **Copia il comando** ed eseguilo in Terminale. Richiede la tua password, quindi Dvina non lo esegue mai al posto tuo.
3. **Aggiungi il simulatore iOS:** In Xcode, vai in Impostazioni › Componenti e scarica iOS, oppure esegui il comando in Terminale.
4. **Crea un dispositivo:** Scegli **Crea un iPhone**. Non viene scaricato nulla.

### Configura l'Emulatore Android

Se l'Emulatore Android non è configurato, la sua riga apre una lista di controllo, **Configura l'emulatore Android**.

1. **Installa Android Studio:** Scegli **Scarica Android Studio**. Installa i componenti necessari per eseguire l'emulatore; al termine dell'installazione, aprilo una volta.
2. **Aggiungi l'emulatore e gli strumenti della piattaforma:** Esegui il comando in un terminale oppure aggiungili in Android Studio › SDK Manager.
3. **Attiva l'accelerazione hardware:** Su Windows e Linux, esegui personalmente il comando, perché richiede la tua password o l'intervento di un amministratore. Poi, su Linux, esci dalla sessione e accedi di nuovo; su Windows, riavvia il computer. Su un Mac non serve fare nulla in questo passaggio.
4. **Aggiungi un'immagine di sistema:** Esegui il comando in un terminale oppure aggiungine una in Android Studio › SDK Manager. Il download è di grandi dimensioni.
5. **Crea un emulatore:** Scegli **Crea un emulatore**. Non viene scaricato nulla.

Se il tuo amministratore ha disattivato i simulatori, sulle righe compare **Disattivato dal tuo amministratore**.

## Lavora ovunque

Dal telefono o dal web, chiedi in chat il lavoro da svolgere. Dvina lo esegue nel progetto sul tuo computer e le modifiche restano in attesa della tua revisione. Il computer deve essere acceso, con Dvina aperto.

## Quando usarlo

- Lavori su un software vero e proprio e vuoi avere a disposizione tutto il contesto: gli appunti, le decisioni e le conversazioni del mese scorso.
- Vuoi che una correzione venga eseguita mentre sei lontano dalla scrivania.
- Vuoi che più modifiche vengano sviluppate contemporaneamente, ciascuna pronta per la revisione.

## Suggerimenti

- **Metti per iscritto le tue regole di lavoro.** Descrivi come lavori in AGENTS.md o CLAUDE.md e Dvina seguirà le tue indicazioni.
- **Fai test su un telefono.** Stai sviluppando un'app? Dvina può testarla in un simulatore iPhone o in un emulatore Android, toccando i vari elementi come faranno i tuoi utenti. Consulta [Testare su un simulatore o un emulatore](#test-on-a-simulator-or-emulator).
- **Non sviluppi software?** Per creare app e pagine funzionanti, usa invece [Crea](/docs/use-dvina/features/create).

## Argomenti correlati

- [Progetti](/docs/use-dvina/features/projects)
- [Attività](/docs/use-dvina/features/tasks)
- [Uso del computer](/docs/use-dvina/features/computer-use)
- [Installazione](/docs/use-dvina/get-started/install)
