# کد

> از 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** را انتخاب کنید.

نمای دستگاه در پنل کناری باز می‌شود. اگر شبیه‌ساز خاموش باشد، با باز کردن آن روشن می‌شود. برای استفاده از دستگاه دیگری، **انتخاب دستگاه** را در بالای این نما انتخاب کنید؛ برای هر دستگاه، سیستم آن و وضعیت **در حال اجرا** یا **خاموش** نمایش داده می‌شود.

برای نمایش یا پنهان کردن مرورگر، در 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

اگر شبیه‌ساز iOS راه‌اندازی نشده باشد، با انتخاب ردیف آن، فهرست **راه‌اندازی شبیه‌ساز iOS** باز می‌شود. هر مرحله پس از انجام شدن، خودکار علامت می‌خورد، حتی اگر آن را جای دیگری انجام داده باشید.

1. **نصب Xcode:** گزینهٔ **باز کردن App Store** را انتخاب کنید. Xcode رایگان است و حدود 7 GB حجم دارد؛ پس از پایان نصب، آن را یک بار باز کنید.
2. **انتخاب Xcode:** گزینهٔ **کپی دستور** را انتخاب کنید و دستور را در Terminal اجرا کنید. این دستور رمز عبور شما را می‌خواهد، بنابراین Dvina هرگز آن را به‌جای شما اجرا نمی‌کند.
3. **افزودن شبیه‌ساز iOS:** در Xcode به Settings › Components بروید و iOS را دریافت کنید، یا دستور را در Terminal اجرا کنید.
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)
