# مشخصات درس‌نامه: ساخت اپلیکیشن دسکتاپ چندسکویی؛ انقلاب Tauri سبک در برابر غول Electron - **شناسه در سیلابس:** `L15.12` - **فصل:** فصل ۱۵: تکامل محصول با AI (Ch 15) - **نوع محتوا:** 📘 درس‌نامه متنی - **زمان تقریبی مطالعه:** ۲۰ دقیقه - **پیش‌نیازهای مستقیم:** `L15.11` (ساخت اپلیکیشن موبایل اندروید و iOS با Capacitor و Expo) --- ## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy) دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند: - [ ] **درک کند (Understand):** دلایل تمایل کاربران به استفاده از اپلیکیشن‌های دسکتاپ بومی (دسترسی به System Tray، کلیدهای میانبر سیستمی، نوتیفیکیشن‌های بومی و کارکرد مستقل از تب‌های مرورگر) را شرح دهد. - [ ] **تحلیل/ارزیابی کند (Evaluate):** معماری سنگین **Electron** (حمل کامل موتور کرومیوم و نودجی‌اس با مصرف رم ۳۰۰ مگابایت و حجم بالای ۱۰۰ مگابایت) را در مقایسه با معماری انقلابی **Tauri** (استفاده از وب‌ویو نیتیو سیستم‌عامل، مصرف رم ۳۰ مگابایت و خروجی ۵ مگابایتی) ارزیابی کند. - [ ] **به‌کار ببندد (Apply):** ابزار **Tauri CLI** را در پروژه Next.js راه‌اندازی کرده و پورتفولیو را در یک پنجره مستقل دسکتاپ با دستور `npx tauri dev` اجرا نماید. - [ ] **ایجاد کند (Create):** فایل خروجی نصبی واقعی ویندوز (`.exe` / `.msi`) و مک (`.dmg`) را با یک دستور ساده بیلد تولید کرده و یک آیکون منوی سینی سیستم (System Tray) برای دسترسی سریع به سایت تعبیه کند. --- ## ۲. محدوده و مرزهای محتوا (Scope & Boundaries) ### آنچه باید پوشش داده شود (In-Scope): 1. **فراتر از مرورگر: حضور ماندگار روی دسکتاپ ویندوز، مک و لینوکس:** * چرا وقتی می‌توانید برای پروژه‌تان یک برنامه دسکتاپ سبک با آیکون اختصاصی در تسک‌بار بسازید، نباید به یک تب در میان صدها تب باز مرورگر کاربر محدود بمانید؟ 2. **کالبدشکافی الکترون (Electron)؛ پیشگام باسابقه اما سنگین:** * نرم‌افزارهای موفقی مثل VS Code، Slack، Discord و Spotify چگونه با الکترون ساخته شدند؟ * نقطه ضعف بزرگ الکترون: همراه بردن یک مرورگر کروم کامل در دل فایل نصبی! (حجم فایل نصبی بالای ۸۰ مگابایت و مصرف سنگین حافظه رم). 3. **انقلاب تاوری (Tauri)؛ سبک، سریع و کم‌مصرف:** * تاوری چگونه این مشکل را حل کرد؟ به جای نصب کروم جدید، از وب‌ویو پیش‌فرض خود ویندوز (Edge WebView2) و مک (WebKit) استفاده می‌کند. * نتیجه شگفت‌انگیز: فایل نصبی فوق‌العاده کوچک (حدود ۵ مگابایت) و مصرف رم تنها در حد ۳۰ تا ۵۰ مگابایت! 4. **کارگاه عملی: بسته‌بندی پورتفولیو با Tauri در ۴ گام:** * گام ۱: نصب Tauri CLI در پروژه: `npm install -D @tauri-apps/cli`. * گام ۲: مقداردهی اولیه پروژه با `npx tauri init`. * گام ۳: تنظیمات عنوان پنجره، ابعاد و آیکون در فایل `src-tauri/tauri.conf.json`. * گام ۴: اجرای زنده با `npx tauri dev` و مشاهده باز شدن پنجره نرم‌افزار روی ویندوز/مک. 5. **ساخت فایل خروجی نصبی نهایی (Production Build):** * اجرای دستور `npx tauri build` و تحویل فایل `.exe` در پوشه `src-tauri/target/release/bundle`. 6. **قابلیت‌های جذاب دسکتاپ: آیکون کنار ساعت (System Tray):** * دسترسی سریع به پورتفولیو و پنل ادمین با کلیک راست روی آیکون در نوار وظیفه ویندوز. 7. **دستورات چندسکویی برای نصب و اجرای تاوری:** * دستورات در منوهای کشویی ویندوز، مک و لینوکس. 8. **کال‌اوت‌های آموزشی و هشدار کوئرا:** * کال‌اوت بنفش (`
`): امنیت خارق‌العاده تاوری؛ هسته پشتیبان تاوری با زبان ایمن Rust نوشته شده و خطرات دسترسی ناامن به فایل‌های سیستم را مهار می‌کند. * کال‌اوت سبز (`
`): شگفتی از خروجی یک فایل نصبی ۵ مگابایتی شیک که در کسری از ثانیه نصب و اجرا می‌شود. * کال‌اوت قرمز (`
`): نبود ماژول‌های داخلی نودجی‌اس (`fs`, `path`) در فرانت‌اند تاوری؛ تمام دسترسی‌ها به فایل‌های هارد باید از طریق پلاگین‌های رسمی تاوری انجام شود. ### آنچه نباید وارد آن شویم (Out-of-Scope): - برنامه‌نویسی عمیق کدهای زبان Rust در بک‌اند تاوری (تسک‌ها از طریق لایه فرانت‌اند جاوااسکریپت هدایت می‌شوند). - دریافت گواهی امضای دیجیتال گران‌قیمت کد (Code Signing Certificates) در ویندوز و اپل. --- ## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms) | اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یک‌خطی ساده | | :--- | :--- | :--- | | Desktop Wrapper | بسته‌بند دسکتاپ | ابزاری برای تبدیل برنامه‌های وب به نرم‌افزارهای نصبی با پنجره مستقل برای ویندوز، مک و لینوکس | | Tauri | فریم‌ورک تاوری | ابزار مدرن، امن و بسیار سبک ساخت نرم‌افزارهای دسکتاپ با وب‌ویو سیستم‌عامل و زبان راست | | Electron | فریم‌ورک الکترون | بستر باسابقه ساخت نرم‌افزار دسکتاپ با ترکیب موتور کرومیوم و محیط اجرای Node.js | | WebView2 | وب‌ویو تو مایکروسافت | کامپوننت داخلی ویندوز ۱۰ و ۱۱ برای رندر کردن محتوای وب در برنامه‌های دسکتاپ بدون نیاز به نصب کروم | | System Tray | سینی سیستم / کنار ساعت | بخش اعلان‌ها در گوشه نوار وظیفه سیستم‌عامل برای دسترسی و کنترل سریع برنامه‌های در حال اجرا | | Native Executable (.exe) | فایل اجرایی بومی | فایل باینری کامپایل‌شده سیستم‌عامل برای نصب و اجرای مستقیم نرم‌افزار | --- ## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders) > **راهنمای ایجنت نویسنده:** تمام تصاویر باید در پوشهٔ `images/` ذخیره شده و در جدول تک‌خانه‌ای وسط‌چین درج شوند: 1. **تصویر کاور درس:** `images/cover.png` * **موضوع:** پنجره نرم‌افزار دسکتاپ نئونی با آیکون‌های ویندوز، اپل و لینوکس با لوگوی سبک‌بال تاوری و مصرف اندک رم. 2. **مقایسه ساختاری معماری Electron در برابر Tauri:** `images/electron-vs-tauri-architecture.png` * **موضوع:** اینفوگرافیک مقایسه‌ای: الکترون با جعبه سنگین کرومیوم + نودجی‌اس در چپ در برابر تاوری با لایه سبک وب‌ویو سیستم‌عامل و هسته کم‌مصرف راست در راست. 3. **نمودار مصرف حافظه رم و اندازه فایل نصبی:** `images/tauri-vs-electron-ram-size.png` * **موضوع:** نمودار میله‌ای مقایسه‌ای: مصرف رم (الکترون ۳۵۰ مگابایت vs تاوری ۳۵ مگابایت) و حجم فایل نصبی (الکترون ۹۰ مگابایت vs تاوری ۵ مگابایت). 4. **نرم‌افزار دسکتاپ پورتفولیو در حال اجرا با System Tray:** `images/tauri-desktop-portfolio-window.png` * **موضوع:** اسکرین‌شات از دسکتاپ ویندوز با پنجره شیک پورتفولیو و منوی کوچک کلیک راست آیکون سایت در کنار ساعت ویندوز. --- ## ۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (`README.md`) 1. **تیتر اصلی:** `# ساخت اپلیکیشن دسکتاپ چندسکویی؛ انقلاب Tauri سبک در برابر غول Electron` 2. **مقدمه:** سایت شما روی وب زنده است، PWA شده و فایل اندروید هم دارد؛ حال وقت آن است که یک فایل `.exe` شکیل بسازید و روی دسکتاپ ویندوز و مک بنشینید! 3. **جدول کاور درس** 4. **چرا اپلیکیشن دسکتاپ هنوز پادشاه تمرکز کاربران است؟** * فرار از حواس‌پرتی تب‌های بی‌شمار مرورگر و حضور دائمی در کنار ساعت و تسک‌بار. 5. **دوئل بزرگ قرن: الکترون (Electron) در برابر تاوری (Tauri):** * چرا الکترون با وجود شهرتش سنگین است و چگونه تاوری دنیای توسعه دسکتاپ را شگفت‌زده کرد؟ 6. **پیش‌نیازهای اجرای تاوری در سیستم‌عامل‌ها:** * ویندوز، مک و لینوکس (وجود پیش‌فرض WebView2 در ویندوز ۱۰ و ۱۱). 7. **کارگاه عملی: ساخت نرم‌افزار دسکتاپ پورتفولیو در ۴ گام ساده:** * گام ۱: نصب ابزار خط فرمان با `npm install -D @tauri-apps/cli`. * گام ۲: اجرای دستور جادویی `npx tauri init`. * گام ۳: تنظیمات نام برنامه و پنجره در `tauri.conf.json`. * گام ۴: ران زنده با `npx tauri dev` و تماشای پنجره واقعی دسکتاپ. 8. **بیلد فایل نصبی نصبی با پسوند `.exe` و `.dmg`:** * اجرای دستور `npx tauri build` و دریافت بسته نصبی سبک ۵ مگابایتی. 9. **دستورات چندسکویی برای راه‌اندازی تاوری:** * منوی کشویی سه‌گانه برای ویندوز، مک و لینوکس: - Windows (PowerShell): ```powershell npm install -D @tauri-apps/cli npx tauri init npx tauri dev ``` - macOS (Terminal): ```bash npm install -D @tauri-apps/cli npx tauri init npx tauri dev ``` - Linux (Bash): ```bash npm install -D @tauri-apps/cli npx tauri init npx tauri dev ``` 10. **باکس نکته Quera (`
`):** فعال‌سازی ویژگی System Tray در تاوری برای کوچک شدن برنامه در کنار ساعت سیستم به جای بسته شدن کامل پنجره. 11. **باکس هشدار Quera (`
`):** عدم وجود ماژول‌های نودجی‌اس در مرورگر داخلی تاوری؛ برای کارهای محلی از افزونه‌های استاندارد `@tauri-apps/plugin` استفاده کنید. 12. **باکس رضایت‌بخش Quera (`
`):** دابل کلیک روی فایل `.exe` ساخته‌شده و باز شدن فوری برنامه پورتفولیو در کمتر از ۲۰۰ میلی‌ثانیه! 13. **جمع‌بندی فصل پانزدهم و ورود به فینال دوره:** جشن پایان فاز تکامل چندسکویی و هوشمندسازی محصول؛ ورود به فصل شانزدهم و پایانی: ادامه راه (فرهنگ مهندسی ایجنتیک، ارکستراسیون سیستم‌ها و آینده بازار کار). --- ## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer) - [ ] تفاوت معماری Electron و Tauri با اعداد و ارقام مصرف منابع تبیین شود. - [ ] مراحل گام‌به‌گام راه‌اندازی Tauri در پروژه Next.js ارائه گردد. - [ ] نحوه تولید فایل نصبی نهایی (.exe / .dmg) آموزش داده شود. - [ ] دستورات خط فرمان در تب‌های چندسکویی برای ویندوز، مک و لینوکس درج شود.