# Код

> Поручите Dvina написать код в проекте на вашем компьютере, проверьте каждое изменение, а затем создайте коммит и пул-реквест прямо из чата.

Dvina пишет код в проекте на вашем компьютере, учитывая заметки, обсуждения и причины принятых решений. Вы описываете, что нужно сделать, проверяете изменения и выпускаете результат — в том же приложении, которым пользуетесь для всего остального.

## Перед началом

Работа с кодом доступна в настольном приложении Dvina для Mac, Windows и Linux. Устанавливать что-либо отдельно не нужно. Dvina должна быть установлена хотя бы на одном компьютере; с любого другого устройства можно запускать работу и следить за ней.

Чтобы установить настольное приложение, см. [Скачивание и установка Dvina](/docs/use-dvina/get-started/install).

## Откройте проект

Проект — это папка на вашем компьютере: репозиторий кода или обычная папка.

1. В настольном приложении откройте Dock и выберите строку проектов (**Проекты**).
2. Выберите **Открыть…**, чтобы выбрать папку или репозиторий кода, либо **Новый проект…**, чтобы создать новую папку на этом компьютере.

При создании проекта включите **Создать репозиторий Git**, чтобы сохранять историю всех изменений и иметь возможность отменять правки Dvina.

Чат работает в выбранном вами проекте. Если это проект с кодом, в Dock также отображается его ветка.

## Поручите работу

Опишите, что нужно сделать, например: «Исправь даты в экспорте CSV». Dvina выполняет это как задачу на вашем компьютере, а вы можете продолжать общение или запускать другие задачи. Несколько задач могут работать с одним репозиторием и сами определять, какая из них первой создаст коммит.

Прежде чем писать код, Dvina изучает проект и его контекст: ищет информацию в ваших прошлых чатах и файлах, чтобы учитывать причины принятых решений. Она также следует инструкциям из AGENTS.md или CLAUDE.md в вашем проекте.

## Проверьте изменения

Ответ по каждой задаче появляется вместе с изменениями в карточке с названием задачи и статусом **Готово к проверке**.

- **Посмотрите, что изменилось:** выберите **Изменения**, чтобы просмотреть изменения в каждом файле на боковой панели. Раздел **Файлы** позволяет просматривать содержимое проекта.
- **Отмените изменения одного ответа:** под ответом, в котором были изменены файлы, выберите строку с количеством изменённых файлов, затем **Отменить изменения** и подтвердите действие в окне **Отменить изменения этого ответа?**. Файлы вернутся к состоянию до этого ответа, а более поздние изменения сохранятся.

## Создайте коммит и откройте пул-реквест

1. В карточке задачи выберите **Создать коммит**.
2. В окне **Создание коммита** перечислены файлы, которые войдут в коммит в вашей ветке, и предложены **Заголовок** и **Сообщение**. Выберите **Создать коммит**. Ничего не отправляется в удалённый репозиторий.
3. Чтобы открыть пул-реквест, выберите **Отправить и создать PR**. Dvina сначала отправит текущую ветку в удалённый репозиторий, а затем откроет пул-реквест. Файлы, не включённые в коммит, в него не попадут.

Пул-реквест создаётся с использованием вашей авторизации в Git. Dvina открывает его на GitHub или GitLab; для любого другого хостинга в браузере открывается его страница создания пул-реквеста. Когда всё будет готово, выберите **Посмотреть PR**.

## Подтверждения

Сборки и тесты запускаются без подтверждения. Удаление файлов, отправка изменений в репозиторий, изменения в базе данных, развёртывание и любые действия с секретами требуют вашего разрешения. В карточке указана причина запроса: например, **Выполнить эту команду?** с пометкой **Удаляет файлы** или **Изменяет базу данных**. Выберите **Разрешить** или **Отклонить**. Администратор может настроить, какие действия всегда требуют подтверждения.

> [!IMPORTANT]
> Ничего не отправляется в репозиторий без вашего разрешения. Ваш проект — это папка на вашем компьютере, а с помощью Git можно отменить любую правку, которую вносит Dvina.

## Тестирование в симуляторе или эмуляторе

В настольном приложении Dvina может проверить ваше приложение на этом компьютере так, как им будут пользоваться ваши пользователи: в браузере, в симуляторе iOS на Mac или в эмуляторе Android на Mac, Windows или Linux.

1. Откройте Dock и выберите строку **Устройство**.
2. В разделе **Это устройство** выберите **Браузер**, **Симулятор iOS** или **Эмулятор Android**.

Устройство откроется в боковой панели. Если симулятор выключен, он запустится при открытии. Чтобы выбрать другой, нажмите **Выбрать устройство** в верхней части панели. Для каждого устройства указаны его система и состояние: **Работает** или **Выключено**.

Чтобы показать или скрыть браузер, нажмите <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>B</kbd> на Mac или <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd> на Windows и Linux. Если Dvina работает в панели, которую вы сейчас не просматриваете, в строке **Устройство** появляется точка.

### Разрешите Dvina использовать устройство

При первом использовании симулятора или эмулятора Dvina запрашивает разрешение, например: **Разрешить Dvina использовать iPhone 17 Pro?** Dvina видит экран устройства, поэтому не входите на нём в свои настоящие аккаунты. Выберите **Разрешить** или **Отклонить**. Ваш ответ сохраняется для этого устройства, поэтому в другом чате запрос не повторится. Пока вы не дадите разрешение, в панели будет доступна кнопка **Разрешить Dvina использовать устройство**.

Пока Dvina работает, в панели отображается **Dvina использует это устройство**, а в чате — экран устройства в реальном времени. Выберите **Увеличить просмотр**, чтобы увидеть его крупнее. Отправка, оплата и удаление на устройстве каждый раз требуют вашего подтверждения.

Чтобы пользоваться устройством самостоятельно, выберите **Взять управление**. Ваши нажатия и ввод с клавиатуры будут передаваться устройству. Вы можете нажимать **Домой**, а на Android также **Назад** и **Недавние приложения**. Когда закончите, выберите **Вернуть управление**, и Dvina продолжит работу.

### Настройте симулятор iOS

Если симулятор iOS не настроен, при выборе его строки открывается список шагов **Настройка симулятора iOS**. Каждый шаг автоматически отмечается как выполненный, даже если вы выполнили его в другом месте.

1. **Установите Xcode:** выберите **Открыть App Store**. Xcode бесплатный и занимает около 7 ГБ. После установки откройте его один раз.
2. **Выберите Xcode:** выберите **Скопировать команду** и выполните её в Терминале. Для неё нужен ваш пароль, поэтому Dvina никогда не выполняет её за вас.
3. **Добавьте симулятор iOS:** в Xcode перейдите в Настройки › Компоненты и загрузите iOS или выполните команду в Терминале.
4. **Создайте устройство:** выберите **Создать iPhone**. Ничего не скачивается.

### Настройте эмулятор Android

Если эмулятор Android не настроен, при выборе его строки открывается список шагов **Настройка эмулятора Android**.

1. **Установите Android Studio:** выберите **Скачать Android Studio**. Вместе с ним устанавливается всё необходимое для работы эмулятора. После установки откройте его один раз.
2. **Добавьте эмулятор и инструменты платформы:** выполните команду в терминале или добавьте их в Android Studio › SDK Manager.
3. **Включите аппаратное ускорение:** на Windows и Linux выполните команду самостоятельно, поскольку для неё нужен ваш пароль или права администратора. Затем на Linux выйдите из системы и войдите снова, а на Windows перезагрузите компьютер. На Mac этот шаг не требует никаких действий.
4. **Добавьте образ системы:** выполните команду в терминале или добавьте образ в Android Studio › SDK Manager. Потребуется скачать большой файл.
5. **Создайте эмулятор:** выберите **Создать эмулятор**. Ничего не скачивается.

Если администратор отключил симуляторы, в соответствующих строках отображается **Отключено администратором**.

## Работайте откуда угодно

С телефона или через веб-версию опишите в чате, что нужно сделать. Dvina выполнит работу в проекте на вашем компьютере, а изменения будут ждать вашей проверки. Компьютер должен быть включён, а Dvina — открыта.

## Когда использовать

- Вы разрабатываете настоящее ПО и хотите опираться на всю историю работы: заметки, решения и обсуждения за прошлый месяц.
- Вы хотите, чтобы исправление было готово, пока вы не за рабочим столом.
- Вы хотите, чтобы работа над несколькими изменениями шла одновременно и каждое было готово к проверке.

## Советы

- **Запишите свои правила работы.** Опишите свой подход в AGENTS.md или CLAUDE.md, и Dvina будет ему следовать.
- **Тестируйте на телефоне.** Разрабатываете приложение? Dvina может протестировать его в симуляторе iPhone или эмуляторе Android, нажимая на элементы так же, как ваши пользователи. См. [Тестирование в симуляторе или эмуляторе](#test-on-a-simulator-or-emulator).
- **Вы не разработчик?** Чтобы создавать работающие приложения и страницы, используйте [Создание](/docs/use-dvina/features/create).

## См. также

- [Проекты](/docs/use-dvina/features/projects)
- [Задачи](/docs/use-dvina/features/tasks)
- [Управление компьютером](/docs/use-dvina/features/computer-use)
- [Установка](/docs/use-dvina/get-started/install)
