Native SDK؛ اپ دسکتاپ بدون مرورگر با Zig
خلاصهٔ کاملتر
Native SDK خودشو تولکیتی معرفی میکنه برای ساختن اپهای نیتیو دسکتاپ روی macOS و Linux و Windows، و در کنارش iOS و Android. ایدهٔ اصلیش اینه که رابط کاربری رو با یه مارکاپ اعلانی مخصوص (فایلهای .native) و منطق برنامه رو با Zig بنویسی، و بعد موتور خود تولکیت اونو مستقیم روی پنجرهٔ واقعی سیستمعامل رندر کنه.
حرف تیم سازنده اینه که رابط گیرا و کارایی نیتیو نباید دو هدف رقیب باشن. به گفتهٔ اونها خیلیها سراغ رانتایمهای وبمحور میرن چون آزادی عمل و کنترل روی تجربهٔ محصول میده، ولی این آزادی با یه رانتایم سنگین همراهه؛ Native SDK همون مدل نوشتن رو نگه میداره و رانتایم رو با رندر نیتیو عوض میکنه.
عددهایی که روی صفحهشون گذاشتن سهتاست: کل اپ — موتور، ویجتها و رندرر — به شکل یه باینری استاتیک زیر ۶ مگابایت؛ حدود ۱۰۰ میلیثانیه از اجرا تا اولین فریم روی صفحه (۷۱ تا ۱۳۱ میلیثانیهٔ گرم روی macOS arm64)؛ و صفر مرورگر یا موتور اسکریپت یا مفسر داخل اون باینریها. این اعداد با zig build -Doptimize=ReleaseFast روی همون مخزن اندازهگیری شدن.
معماری برنامهنویسیش الگوی آشنای رویداد-پیام-وضعیت-رابطه: رویدادها پیام تولید میکنن، پیامها state رو بهروز میکنن و state رابط رو رندر میکنه. نکتهٔ عملیش اینه که فقط یه تابع update جای تغییر state ئه، پس دنبال کردن باگ سادهتر میشه. خطای نوشتن تو ویو هم خطای کامپایل با شماره خط و ستونه، و تو حالت توسعه میتونی ویو رو حین اجرای اپ عوض کنی و state حفظ شه.
مارکاپش شبیه HTML ولی با المانهای چیدمانی خودشه: column و row و spacer و scroll، کنترلهایی مثل button و text-field و checkbox، و ساختارهای منطقی مثل if و for برای شرط و حلقه. اتصال به داده هم با آکولاد انجام میشه و رویدادها با صفتهایی مثل on-press و on-input به پیامها وصل میشن.
<row gap="8" cross="center">
<text-field text="{draft}" placeholder="New task…"
on-input="draft_edit" on-submit="add" grow="1" />
<button variant="primary" on-press="add">Add task</button>
</row>
یکی از اصول اعلامشدهشون هم اینه که هوش مصنوعی بخشی از جریان کاره: چون رابط یه ویوی اعلانی و کوتاهه و تغییر state فقط یه جا اتفاق میافته، تولید و اصلاحش با ایجنتها سادهتره. نصبش هم از راه npm انجام میشه، با نصب سراسری پکیج @native-sdk/cli.
نکات کلیدی:
- رابط با مارکاپ اعلانی .native و منطق با Zig نوشته میشه
- رندر مستقیم روی پنجرهٔ سیستمعامل، بدون WebView و مرورگر توکار
- خروجی: یه باینری استاتیک زیر ۶ مگابایت با اجرای حدود ۱۰۰ میلیثانیهای
- الگوی رویداد ← پیام ← state ← رابط، با یه تابع update بهعنوان تنها نقطهٔ تغییر
- پشتیبانی اعلامشده از macOS، Linux، Windows، iOS و Android




