129 lines
13 KiB
Markdown
129 lines
13 KiB
Markdown
# مشخصات درسنامه: ساخت اپلیکیشن دسکتاپ چندسکویی؛ انقلاب 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. **کالاوتهای آموزشی و هشدار کوئرا:**
|
||
* کالاوت بنفش (`<details class="violet">`): امنیت خارقالعاده تاوری؛ هسته پشتیبان تاوری با زبان ایمن Rust نوشته شده و خطرات دسترسی ناامن به فایلهای سیستم را مهار میکند.
|
||
* کالاوت سبز (`<details class="green">`): شگفتی از خروجی یک فایل نصبی ۵ مگابایتی شیک که در کسری از ثانیه نصب و اجرا میشود.
|
||
* کالاوت قرمز (`<details class="red">`): نبود ماژولهای داخلی نودجیاس (`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 (`<details class="violet">`):** فعالسازی ویژگی System Tray در تاوری برای کوچک شدن برنامه در کنار ساعت سیستم به جای بسته شدن کامل پنجره.
|
||
11. **باکس هشدار Quera (`<details class="red">`):** عدم وجود ماژولهای نودجیاس در مرورگر داخلی تاوری؛ برای کارهای محلی از افزونههای استاندارد `@tauri-apps/plugin` استفاده کنید.
|
||
12. **باکس رضایتبخش Quera (`<details class="green">`):** دابل کلیک روی فایل `.exe` ساختهشده و باز شدن فوری برنامه پورتفولیو در کمتر از ۲۰۰ میلیثانیه!
|
||
13. **جمعبندی فصل پانزدهم و ورود به فینال دوره:** جشن پایان فاز تکامل چندسکویی و هوشمندسازی محصول؛ ورود به فصل شانزدهم و پایانی: ادامه راه (فرهنگ مهندسی ایجنتیک، ارکستراسیون سیستمها و آینده بازار کار).
|
||
|
||
---
|
||
|
||
## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
|
||
- [ ] تفاوت معماری Electron و Tauri با اعداد و ارقام مصرف منابع تبیین شود.
|
||
- [ ] مراحل گامبهگام راهاندازی Tauri در پروژه Next.js ارائه گردد.
|
||
- [ ] نحوه تولید فایل نصبی نهایی (.exe / .dmg) آموزش داده شود.
|
||
- [ ] دستورات خط فرمان در تبهای چندسکویی برای ویندوز، مک و لینوکس درج شود.
|