# Code

> Laat Dvina code schrijven in een project op je computer, controleer elke wijziging en maak vervolgens vanuit de chat een commit en een pull request.

Dvina schrijft code in je project, op je computer, met de notities, gesprekken en achterliggende redenen in beeld. Je beschrijft wat je wilt, controleert wat er is gewijzigd en levert het op, in dezelfde app die je voor al het andere gebruikt.

## Voordat je begint

Code is onderdeel van de Dvina-desktopapp op Mac, Windows en Linux. Je hoeft niets apart te installeren. Dvina moet op minstens één computer staan; vanaf elk ander apparaat kun je het werk starten en volgen.

Zie [Dvina downloaden en installeren](/docs/use-dvina/get-started/install) om de desktopapp te downloaden.

## Een project openen

Een project is een map op je computer: een coderepository of een gewone map.

1. Open in de desktopapp het Dock en kies de projectrij (**Projecten**).
2. Kies **Openen…** om een map of coderepository te selecteren, of **Nieuw project…** om een nieuwe map op deze computer te maken.

Schakel bij het maken van een nieuw project **Git-repository aanmaken** in om alle wijzigingen bij te houden, zodat je de bewerkingen van Dvina ongedaan kunt maken.

De chat werkt in het project dat je kiest. Bij een codeproject toont het Dock ook de branch.

## Beschrijven wat je wilt

Beschrijf wat je wilt, bijvoorbeeld: "Zorg dat de CSV-export de juiste datums gebruikt". Dvina voert dit uit als een taak op je computer. Ondertussen kun je verder chatten of meer taken starten. Meerdere taken kunnen aan één repository werken en onderling bepalen welke taak als eerste een commit maakt.

Voordat Dvina code schrijft, leest het je project en de bijbehorende context: het doorzoekt je eerdere chats en bestanden, zodat de achterliggende redenen worden meegenomen. Het volgt ook de AGENTS.md of CLAUDE.md in je project.

## De wijzigingen controleren

Het antwoord op elke taak verschijnt samen met de wijzigingen in een kaart met de naam van de taak en de status **Klaar voor controle**.

- **Bekijken wat er is gewijzigd:** Kies **Wijzigingen** om de wijzigingen per bestand in het zijpaneel te bekijken. Met **Bestanden** kun je door het project bladeren.
- **Een beurt ongedaan maken:** Kies onder een antwoord dat bestanden heeft gewijzigd de regel die aangeeft hoeveel bestanden zijn gewijzigd. Kies daarna **Terugdraaien** en bevestig **Deze beurt terugdraaien?**. De bestanden worden teruggezet naar de staat van vóór die beurt. Wijzigingen die daarna zijn gemaakt, blijven behouden.

## Een commit maken en een pull request openen

1. Kies **Commit maken** in de kaart van de taak.
2. **Een commit maken van de wijzigingen** toont de bestanden die in de commit op je branch worden opgenomen, met een voorgestelde **Titel** en een voorgesteld **Bericht**. Kies **Commit maken**. Er wordt niets gepusht.
3. Kies **Pushen en PR aanmaken** om een pull request te openen. Dvina pusht eerst de huidige branch en opent daarna de pull request. Bestanden waarvoor geen commit is gemaakt, worden niet opgenomen.

De pull request wordt aangemaakt via je eigen Git-aanmelding. Dvina opent deze op GitHub of GitLab; bij elke andere host wordt de eigen pagina voor een nieuwe pull request in je browser geopend. Kies **PR bekijken** wanneer dit klaar is.

## Goedkeuringen

Builds en tests worden zonder goedkeuring uitgevoerd. Bestanden verwijderen, pushen, databasewijzigingen, deployments en alles waarbij geheimen worden gebruikt, wachten op je toestemming. De kaart geeft aan waarom, bijvoorbeeld **Deze opdracht uitvoeren?** met **Verwijdert bestanden** of **Wijzigt een database**. Je kiest **Toestaan** of **Weigeren**. Je beheerder kan instellen welke acties altijd om toestemming vragen.

> [!IMPORTANT]
> Er wordt niets gepusht zonder jouw toestemming. Je project is een map op je computer. Met Git kun je elke wijziging die Dvina maakt ongedaan maken.

## Testen op een simulator of emulator

In de desktopapp kan Dvina je app op deze computer uitproberen zoals je gebruikers dat doen: in een browser, in de iOS Simulator op een Mac of in de Android Emulator op een Mac, Windows of Linux.

1. Open het Dock en kies de rij **Apparaat**.
2. Kies onder **Dit apparaat** de optie **Browser**, **iOS Simulator** of **Android Emulator**.

Het apparaatvenster opent in het zijpaneel. Een simulator die uitstaat, start zodra je die opent. Wil je een andere gebruiken, kies dan **Kies een apparaat** bovenaan het apparaatvenster. Bij elk apparaat zie je het systeem en of het **Actief** of **Uit** is.

Druk op <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>B</kbd> op een Mac of op <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd> op Windows en Linux om de browser te tonen of te verbergen. Als Dvina werkt in een apparaatvenster dat je niet bekijkt, staat er een stip bij de rij **Apparaat**.

### Dvina een apparaat laten gebruiken

De eerste keer dat Dvina een simulator of emulator gebruikt, vraagt het om toestemming, bijvoorbeeld **Dvina iPhone 17 Pro laten gebruiken?**. Dvina kan het scherm zien, dus log er niet in op je echte accounts. Kies **Toestaan** of **Weigeren**. Het apparaat onthoudt je antwoord, zodat je in een andere chat niet opnieuw de vraag krijgt. Tot je toestemming geeft, staat in het apparaatvenster de optie **Dvina dit apparaat laten gebruiken**.

Terwijl Dvina werkt, staat in het apparaatvenster **Dvina gebruikt dit apparaat** en zie je het apparaat live in de chat. Kies **Groter bekijken** voor een grotere weergave. Verzenden, betalen en verwijderen op het apparaat wachten elke keer op je toestemming.

Kies **Overnemen** om het apparaat zelf te gebruiken. Je tikken en toetsaanslagen worden naar het apparaat gestuurd. Je kunt op **Home** drukken en op Android ook op **Terug** en **Recente apps**. Kies **Teruggeven** als je klaar bent. Dvina gaat dan verder.

### De iOS Simulator instellen

Als de iOS Simulator nog niet is ingesteld, opent de bijbehorende rij een checklist: **De iOS Simulator instellen**. Elke stap wordt automatisch afgevinkt zodra die klaar is, ook als je die ergens anders hebt uitgevoerd.

1. **Xcode installeren:** Kies **Open de App Store**. Xcode is gratis en ongeveer 7 GB groot. Open het eenmaal na de installatie.
2. **Xcode selecteren:** Kies **Kopieer de opdracht** en voer die uit in Terminal. De opdracht vraagt om je wachtwoord, dus Dvina voert die nooit voor je uit.
3. **De iOS-simulator toevoegen:** Ga in Xcode naar Instellingen › Componenten en download iOS, of voer de opdracht uit in Terminal.
4. **Een apparaat aanmaken:** Kies **Maak een iPhone aan**. Er wordt niets gedownload.

### De Android Emulator instellen

Als de Android Emulator nog niet is ingesteld, opent de bijbehorende rij een checklist: **De Android-emulator instellen**.

1. **Android Studio installeren:** Kies **Download Android Studio**. Hiermee installeer je de software waarop de emulator draait. Open Android Studio eenmaal na de installatie.
2. **De emulator en platformtools toevoegen:** Voer de opdracht uit in een terminal of voeg ze toe via Android Studio › SDK Manager.
3. **Hardwareversnelling inschakelen:** Voer op Windows en Linux de opdracht zelf uit, omdat hiervoor je wachtwoord of een beheerder nodig is. Meld je daarna op Linux af en weer aan, of start Windows opnieuw op. Op een Mac hoef je hier niets te doen.
4. **Een systeemimage toevoegen:** Voer de opdracht uit in een terminal of voeg een systeemimage toe via Android Studio › SDK Manager. Dit is een grote download.
5. **Een emulator aanmaken:** Kies **Maak een emulator aan**. Er wordt niets gedownload.

Als je beheerder simulators heeft uitgeschakeld, staat bij de rijen **Uitgeschakeld door je beheerder**.

## Overal werken

Vraag in je chat om het werk uit te voeren, vanaf je telefoon of via het web. Dvina werkt eraan in het project op je computer, en de wijzigingen staan klaar voor je beoordeling. Je computer moet aanstaan en Dvina moet geopend zijn.

## Wanneer gebruik je dit?

- Je werkt aan echte software en wilt alle achtergrond bij de hand hebben: de notities, de beslissingen en de gesprekken van vorige maand.
- Je wilt een probleem laten oplossen terwijl je niet achter je bureau zit.
- Je wilt aan meerdere wijzigingen tegelijk laten werken, zodat je ze stuk voor stuk kunt beoordelen.

## Tips

- **Leg je werkafspraken vast.** Beschrijf hoe je werkt in AGENTS.md of CLAUDE.md, en Dvina houdt zich eraan.
- **Test op een telefoon.** Bouw je een app? Dvina kan die testen in een iPhone-simulator of een Android-emulator en erdoorheen tikken zoals je gebruikers dat zullen doen. Zie [Testen in een simulator of emulator](#test-on-a-simulator-or-emulator).
- **Ben je geen ontwikkelaar?** Gebruik dan [Maken](/docs/use-dvina/features/create) voor werkende apps en pagina's.

## Gerelateerd

- [Projecten](/docs/use-dvina/features/projects)
- [Taken](/docs/use-dvina/features/tasks)
- [Computergebruik](/docs/use-dvina/features/computer-use)
- [Installeren](/docs/use-dvina/get-started/install)
