# 程式碼

> 讓 Dvina 在你電腦上的專案中編寫程式碼，檢閱每項變更，再從聊天中提交並建立提取要求。

Dvina 在你電腦上的專案中編寫程式碼，同時參考筆記、討論串和背後的原因。你只需描述需求、檢閱變更並交付成果，全程都在你平常處理其他事務的同一個 App 中完成。

## 開始之前

程式碼功能內建於 Mac、Windows 和 Linux 版的 Dvina 桌面 App，不必另外安裝。至少需要在一部電腦上安裝 Dvina；其他所有裝置都能發起工作並追蹤進度。

若要取得桌面 App，請參閱[下載並安裝 Dvina](/docs/use-dvina/get-started/install)。

## 開啟專案

專案是你電腦上的一個資料夾，可以是程式碼儲存庫，也可以是一般資料夾。

1. 在桌面 App 中，開啟 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 所做的每項編輯都可以復原。

## 在模擬器上測試

在桌面版 App 中，Dvina 可以在這部電腦上，以使用者實際使用的方式試用你的 App：透過瀏覽器、Mac 上的 iOS Simulator，或 Mac、Windows、Linux 上的 Android Emulator。

1. 開啟 Dock，選擇標示為 **裝置** 的列。
2. 在 **這部裝置** 下，選擇 **瀏覽器**、**iOS Simulator** 或 **Android Emulator**。

檢視窗格會在側邊面板中開啟。如果模擬器尚未啟動，開啟時就會自動啟動。若要使用其他模擬器，請選擇窗格頂端的 **選擇裝置**；每部裝置都會顯示其系統，以及 **執行中** 或 **已關閉** 的狀態。

若要顯示或隱藏瀏覽器，請在 Mac 上按 <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>B</kbd>，或在 Windows 和 Linux 上按 <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd>。當 Dvina 在你未查看的窗格中操作時，**裝置** 列會顯示一個圓點。

### 允許 Dvina 使用裝置

Dvina 第一次使用模擬器時，會先詢問，例如 **允許 Dvina 使用 iPhone 17 Pro 嗎？**。由於 Dvina 能看到裝置畫面，請不要在上面登入你的真實帳號。選擇 **允許** 或 **拒絕**。裝置會記住你的選擇，因此其他對話不會再次詢問。在你允許之前，窗格會顯示 **允許 Dvina 使用此裝置**。

Dvina 操作時，窗格會顯示 **Dvina 正在使用這部裝置**，對話中也會即時顯示裝置畫面。選擇 **放大觀看** 可查看更大的畫面。在裝置上傳送、付款和刪除，每次都會等你同意後才執行。

若要自行操作裝置，請選擇 **接手操作**。你的點按和按鍵輸入會傳送到裝置，也可以按 **主畫面**；在 Android 上還可以按 **返回** 和 **最近使用的應用程式**。完成後，選擇 **交回控制權**，Dvina 就會繼續操作。

### 設定 iOS Simulator

如果尚未設定 iOS Simulator，選擇其所在列會開啟 **設定 iOS Simulator** 檢查清單。每個步驟完成後都會自動勾選，即使你是在其他地方完成也一樣。

1. **安裝 Xcode：**選擇 **開啟 App Store**。Xcode 免費，大小約為 7 GB；安裝完成後，開啟一次。
2. **選取 Xcode：**選擇 **複製指令**，然後在「終端機」中執行。這個指令會要求輸入你的密碼，因此 Dvina 絕不會代你執行。
3. **加入 iOS 模擬器：**在 Xcode 中前往「設定」›「組件」並下載 iOS，或在「終端機」中執行指令。
4. **建立裝置：**選擇 **建立 iPhone**。這個步驟不會下載任何內容。

### 設定 Android Emulator

如果尚未設定 Android Emulator，選擇其所在列會開啟 **設定 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 就會遵循。
- **在手機上測試。** 正在開發 App？Dvina 可以在 iPhone 模擬器或 Android 模擬器中測試，像你的使用者一樣逐一點按操作。請參閱[在模擬器中測試](#test-on-a-simulator-or-emulator)。
- **不是開發者？** 若要製作可運作的 App 和網頁，請改用[建立](/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)
