# コード

> コンピュータ上のプロジェクトでDvinaにコードを書いてもらい、すべての変更を確認してから、チャットでコミットしてプルリクエストを作成できます。

Dvinaは、メモや会話のスレッド、背景にある理由を踏まえて、コンピュータ上のプロジェクトにコードを書きます。ほかの作業にも使っている同じアプリで、やりたいことを伝え、変更を確認して、リリースできます。

## 始める前に

コード機能は、Mac、Windows、Linux向けのDvinaデスクトップアプリに含まれています。別途インストールするものはありません。少なくとも1台のコンピュータにDvinaが必要です。ほかのどのデバイスからでも作業を開始し、進捗を確認できます。

デスクトップアプリの入手方法は、[Dvinaをダウンロードしてインストールする](/docs/use-dvina/get-started/install)を参照してください。

## プロジェクトを開く

プロジェクトとは、コンピュータ上のフォルダです。コードリポジトリでも、通常のフォルダでもかまいません。

1. デスクトップアプリでDockを開き、プロジェクトの行（**プロジェクト**）を選択します。
2. **開く…**を選択してフォルダやコードリポジトリを選ぶか、**新規プロジェクト…**を選択してこのコンピュータに新しいフォルダを作成します。

新しいプロジェクトを作成するときは、**Gitリポジトリを作成**をオンにすると、すべての変更の履歴が保存され、Dvinaによる編集を元に戻せるようになります。

チャットでの作業は、選択したプロジェクトで行われます。コードのプロジェクトでは、Dockにブランチも表示されます。

## 作業を依頼する

「CSVのエクスポートで正しい日付を使うようにして」など、やりたいことを伝えます。Dvinaはコンピュータ上でタスクとして実行し、その間も会話を続けたり、別のタスクを開始したりできます。複数のタスクが1つのリポジトリで作業し、どのタスクが先にコミットするかを互いに調整できます。

コードを書く前に、Dvinaはプロジェクトとその周辺情報を読み取ります。過去のチャットやファイルを検索するので、背景にある理由も引き継がれます。プロジェクト内のAGENTS.mdやCLAUDE.mdにも従います。

## 変更を確認する

各タスクの回答には変更内容が添えられ、タスク名の付いたカードに**レビューの準備完了**と表示されます。

- **変更内容を確認する：** **変更**を選択すると、サイドパネルで各ファイルの変更を確認できます。**ファイル**ではプロジェクト内を閲覧できます。
- **1回の応答による変更を元に戻す：** ファイルを変更した応答の下にある、変更されたファイル数を示す行を選択し、**元に戻す**を選択して、**この応答による変更を元に戻しますか？**で確定します。ファイルはその応答の前の状態に戻り、それ以降に加えられた変更は保持されます。

## コミットしてプルリクエストを作成する

1. タスクのカードで**コミット**を選択します。
2. **変更をコミット**に、現在のブランチにコミットされるファイルと、提案された**タイトル**と**メッセージ**が表示されます。**コミット**を選択します。この時点では何もプッシュされません。
3. プルリクエストを作成するには、**プッシュしてPRを作成**を選択します。Dvinaはまず現在のブランチをプッシュし、その後プルリクエストを作成します。未コミットのファイルは含まれません。

プルリクエストの作成には、自分のGitのサインイン情報が使われます。GitHubまたはGitLabではDvinaがプルリクエストを作成します。それ以外のホストでは、そのホストの新規プルリクエスト作成ページがブラウザで開きます。完了したら、**PRを表示**を選択します。

## 承認

ビルドとテストはそのまま実行されます。ファイルの削除、プッシュ、データベースの変更、デプロイ、シークレットに関わる操作は、あなたの承認を待ちます。カードには理由が表示されます。たとえば、**このコマンドを実行しますか？**とともに、**ファイルを削除します**や**データベースを変更します**と表示され、**許可**または**拒否**を選べます。常に承認を求める操作の範囲は、管理者が設定できます。

> [!IMPORTANT]
> あなたが許可するまで、何もプッシュされません。プロジェクトはあなたのコンピュータ上のフォルダにあり、Gitを使えばDvinaが加えたすべての変更を元に戻せます。

## シミュレータやエミュレータでテストする

デスクトップアプリでは、Dvinaがこのコンピュータ上で、ユーザーと同じようにアプリを試せます。ブラウザのほか、MacではiOSシミュレータ、Mac、Windows、LinuxではAndroidエミュレータを使えます。

1. Dockを開き、**デバイス**と表示された行を選択します。
2. **このデバイス**で、**ブラウザ**、**iOSシミュレータ**、または**Androidエミュレータ**を選択します。

サイドパネルにペインが開きます。シミュレータが停止している場合は、開くと起動します。別のデバイスを使うには、ペイン上部の**デバイスを選択**を選択します。各デバイスには、システムと、**実行中**または**停止中**の状態が表示されます。

ブラウザを表示または非表示にするには、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に戻す**を選択すると、Dvinaが作業を続けます。

### iOSシミュレータを設定する

iOSシミュレータが未設定の場合は、その行を選択すると**iOSシミュレータを設定**チェックリストが開きます。各手順は完了すると自動的にチェックが付きます。別の場所で完了した場合も同様です。

1. **Xcodeをインストールする：** **App Storeを開く**を選択します。Xcodeは無料で、サイズは約7 GBです。インストールが完了したら、一度開いてください。
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)
