برنامه کوچک DevTools

تجربه توسعه‌دهنده

حالا که مینی‌اپلیکیشن‌ها را به خودی خود پوشش دادم، می‌خواهم روی تجربه توسعه‌دهنده برای پلتفرم‌های مختلف سوپراپلیکیشن تمرکز کنم. توسعه مینی‌اپلیکیشن‌ها در همه پلتفرم‌ها در IDEهایی اتفاق می‌افتد که به صورت رایگان توسط پلتفرم‌های سوپراپلیکیشن ارائه می‌شوند. در حالی که تعداد بیشتری وجود دارد، می‌خواهم روی چهار مورد از محبوب‌ترین‌ها و پنجمی برای Quick App برای مقایسه تمرکز کنم.

IDE های کوچک برنامه

مانند ابر برنامه‌ها، اکثر IDEها فقط به زبان چینی در دسترس هستند. در واقع باید مطمئن شوید که نسخه چینی را نصب می‌کنید و نه نسخه انگلیسی (یا نسخه‌های خارجی) که گاهی اوقات در دسترس هستند، زیرا ممکن است به‌روز نباشند. اگر توسعه‌دهنده macOS هستید، توجه داشته باشید که همه IDEها امضا نشده‌اند، به این معنی که macOS از اجرای نصب‌کننده خودداری می‌کند. می‌توانید با مسئولیت خودتان ، همانطور که در راهنمای اپل توضیح داده شده است ، از این مشکل عبور کنید.

پروژه‌های آغازگر برنامه کوچک

برای شروع سریع توسعه مینی‌اپلیکیشن‌ها، همه ارائه‌دهندگان ابراپلیکیشن، اپلیکیشن‌های آزمایشی ارائه می‌دهند که می‌توان آن‌ها را بلافاصله دانلود و آزمایش کرد و گاهی اوقات در ویزاردهای «پروژه جدید» IDEهای مختلف نیز ادغام می‌شوند.

جریان توسعه

پس از راه‌اندازی IDE و بارگذاری یا ایجاد یک مینی‌اپلیکیشن (دمو)، اولین قدم همیشه ورود به سیستم است. معمولاً فقط کافی است یک کد QR را با سوپراپلیکیشن (جایی که قبلاً وارد سیستم شده‌اید) که توسط IDE تولید می‌شود، اسکن کنید. به ندرت پیش می‌آید که مجبور به وارد کردن رمز عبور باشید. پس از ورود به سیستم، IDE هویت شما را می‌داند و به شما امکان می‌دهد برنامه‌نویسی، اشکال‌زدایی، آزمایش و ارسال برنامه خود را برای بررسی شروع کنید. در ادامه، می‌توانید تصاویری از پنج IDE ذکر شده در پاراگراف بالا را مشاهده کنید.

پنجره برنامه WeChat DevTools که شبیه‌ساز، ویرایشگر کد و اشکال‌زدا را نشان می‌دهد.
ابزارهای توسعه‌ی وی چت به همراه شبیه‌ساز، ویرایشگر کد و دیباگر.
پنجره برنامه Alipay DevTools که ویرایشگر کد، شبیه‌ساز و اشکال‌زدا را نشان می‌دهد.
ابزارهای توسعه‌ی علی‌پی به همراه ویرایشگر کد، شبیه‌ساز و اشکال‌زدا.
پنجره برنامه Baidu DevTools که شبیه‌ساز، ویرایشگر کد و اشکال‌زدا را نشان می‌دهد.
Baidu DevTools به همراه شبیه‌ساز، ویرایشگر کد و دیباگر.
پنجره برنامه ByteDance DevTools که شبیه‌ساز، ویرایشگر کد و اشکال‌زدا را نشان می‌دهد.
ابزارهای توسعه ByteDance به همراه شبیه‌ساز، ویرایشگر کد و اشکال‌زدا.
پنجره برنامه Quick App DevTools که ویرایشگر کد، شبیه‌ساز و اشکال‌زدا را نشان می‌دهد.
ابزارهای توسعه سریع برنامه با ویرایشگر کد، شبیه‌ساز و اشکال‌زدا.

همانطور که می‌بینید، اجزای اساسی همه IDEها بسیار مشابه هستند. شما همیشه یک ویرایشگر کد بر اساس Monaco Editor دارید، همان پروژه‌ای که VS Code را نیز پشتیبانی می‌کند. در همه IDEها، یک اشکال‌زدا بر اساس رابط کاربری Chrome DevTools با برخی تغییرات وجود دارد که بعداً در مورد آنها بیشتر صحبت خواهیم کرد (به Debugger مراجعه کنید). IDEها به خودی خود یا به صورت NW.js یا به صورت برنامه‌های Electron پیاده‌سازی می‌شوند، شبیه‌سازها در IDEها به صورت یک تگ <webview> NW.js یا تگ <webview> Electron پیاده‌سازی می‌شوند که به نوبه خود بر اساس یک تگ <webview> Chromium هستند. اگر به اجزای داخلی IDE علاقه‌مند هستید، اغلب می‌توانید به سادگی آنها را با Chrome DevTools با میانبر صفحه کلید Control + Alt + I (یا Command + Option + I در Mac) بررسی کنید.

Chrome DevTools برای بررسی DevTools بایدو استفاده شد که تگ webview شبیه‌ساز را در پنل Elements مربوط به Chrome DevTools نشان می‌دهد.
بررسی Baidu DevTools با Chrome DevTools نشان می‌دهد که این شبیه‌ساز به صورت یک تگ <webview> از Electron پیاده‌سازی شده است.

تست و اشکال‌زدایی دستگاه شبیه‌ساز و واقعی

این شبیه‌ساز با آنچه که ممکن است از حالت دستگاه Chrome DevTools بدانید، قابل مقایسه است. شما می‌توانید دستگاه‌های مختلف اندروید و iOS را شبیه‌سازی کنید، مقیاس و جهت دستگاه را تغییر دهید، و همچنین حالت‌های مختلف شبکه، فشار حافظه، رویداد خواندن بارکد، خاتمه غیرمنتظره و حالت تاریک را شبیه‌سازی کنید.

در حالی که شبیه‌ساز داخلی برای درک تقریبی نحوه رفتار برنامه کافی است، آزمایش روی دستگاه، مانند برنامه‌های وب معمولی، غیرقابل جایگزینی است. آزمایش یک برنامه کوچک در حال توسعه فقط با اسکن کد QR انجام می‌شود. به عنوان مثال، در ByteDance DevTools، اسکن یک کد QR که به صورت پویا توسط IDE با یک دستگاه واقعی تولید می‌شود، منجر به یک نسخه میزبانی شده ابری از برنامه کوچک می‌شود که سپس می‌تواند بلافاصله روی دستگاه آزمایش شود. نحوه کار این روش برای ByteDance به این صورت است که URL پشت کد QR ( مثال ) به یک صفحه میزبانی شده ( مثال ) هدایت می‌شود که شامل پیوندهایی با طرح‌های URI خاص مانند snssdk1128:// است تا پیش‌نمایش برنامه کوچک را در برنامه‌های فوق‌العاده مختلف ByteDance مانند Douyin یا Toutiao (در اینجا یک مثال است) مشاهده کنید. سایر ارائه دهندگان برنامه‌های فوق‌العاده از طریق یک صفحه میانی نمی‌روند، بلکه پیش‌نمایش را مستقیماً باز می‌کنند.

ابزارهای توسعه ByteDance یک کد QR را نشان می‌دهند که کاربر می‌تواند با برنامه Douyin آن را اسکن کند تا مینی‌اپلیکیشن فعلی را روی دستگاه خود ببیند.
ابزارهای توسعه ByteDance یک کد QR را نشان می‌دهند که کاربر می‌تواند با برنامه Douyin آن را اسکن کند تا بلافاصله روی دستگاه آزمایش شود.
صفحه فرود میانی برای پیش‌نمایش یک مینی‌اپ ByteDance در چندین سوپراپ این شرکت، که برای مهندسی معکوس فرآیند، روی یک مرورگر دسکتاپ معمولی باز شده است.
صفحه فرود سطح متوسط ​​ByteDance برای پیش‌نمایش یک مینی‌اپ (که برای نمایش روند کار، روی مرورگر دسکتاپ باز شده است).

یک ویژگی جذاب‌تر، پیش‌نمایش مبتنی بر ابر برای اشکال‌زدایی از راه دور است. پس از اسکن ساده یک کد QR تولید شده توسط IDE، این مینی‌اپلیکیشن روی دستگاه فیزیکی باز می‌شود و یک پنجره Chrome DevTools برای اشکال‌زدایی از راه دور روی رایانه اجرا می‌شود.

یک تلفن همراه که یک مینی‌اپلیکیشن را اجرا می‌کند و بخش‌هایی از رابط کاربری آن توسط دیباگر ByteDance DevTools که روی لپ‌تاپی که آن را بررسی می‌کند، اجرا می‌شود، هایلایت شده است.
اشکال‌زدایی بی‌سیم و از راه دور یک مینی‌اپلیکیشن روی یک دستگاه واقعی با ByteDance DevTools.

اشکال‌زدا

اشکال‌زدایی عناصر

تجربه اشکال‌زدایی مینی‌اپلیکیشن‌ها برای هر کسی که تا به حال با Chrome DevTools کار کرده باشد، بسیار آشنا است. با این حال، تفاوت‌های مهمی وجود دارد که گردش کار را برای مینی‌اپلیکیشن‌ها متناسب می‌کند. به جای پنل Elements در Chrome DevTools، IDEهای مینی‌اپلیکیشن‌ها یک پنل سفارشی دارند که متناسب با گویش خاص HTML آنها تنظیم شده است. به عنوان مثال، در مورد WeChat، این پنل Wxml نام دارد که مخفف WeiXin Markup Language است. در Baidu DevTools، Swan Element نامیده می‌شود. ByteDance DevTools آن را Bxml می‌نامد. Alipay آن را AXML می‌نامد و Quick App به سادگی به عنوان UX به پنل اشاره می‌کند. بعداً به این زبان‌های نشانه‌گذاری خواهم پرداخت.

بررسی یک تصویر با پنل 'Wxml' از ابزار توسعه‌دهندگان WeChat. این پنل نشان می‌دهد که تگ مورد استفاده، یک تگ 'image' است.
بررسی یک عنصر <image> با استفاده از ابزارهای توسعه‌ی WeChat.

عناصر سفارشی در زیر کاپوت

بررسی WebView روی یک دستگاه واقعی از طریق about://inspect/#devices نشان می‌دهد که WeChat DevTools عمداً حقیقت را پنهان می‌کرده است. در جایی که WeChat DevTools یک <image> نشان می‌داد، چیزی که من به آن نگاه می‌کنم یک عنصر سفارشی به نام <wx-image> با یک <div> به عنوان تنها فرزند آن است. جالب است بدانید که این عنصر سفارشی از Shadow DOM استفاده نمی‌کند. بعداً در مورد این کامپوننت‌ها بیشتر صحبت خواهیم کرد.

بررسی یک مینی‌اپلیکیشن WeChat که روی یک دستگاه واقعی با Chrome DevTools اجرا می‌شود. در حالی که WeChat DevTools گزارش داده بود که من به یک تگ `image` نگاه می‌کنم، Chrome DevTools نشان می‌دهد که من در واقع با یک عنصر سفارشی `wx-image` سر و کار دارم.
بررسی یک عنصر <image> با استفاده از WeChat DevTools نشان می‌دهد که در واقع یک عنصر سفارشی <wx-image> است.

اشکال‌زدایی CSS

تفاوت دیگر، واحد طول جدید rpx برای پیکسل‌های واکنش‌گرا در گویش‌های مختلف CSS است ( بعداً در این بخش بیشتر توضیح داده خواهد شد). ابزارهای توسعه‌ی WeChat از واحدهای طول CSS مستقل از دستگاه استفاده می‌کنند تا توسعه برای اندازه‌های مختلف دستگاه را شهودی‌تر کنند.

بررسی یک نما با padding مشخص شده برای بالا و پایین به مقدار `200rpx` در ابزار توسعه WeChat.
بررسی میزان padding مشخص شده در پیکسل‌های واکنش‌گرا ( 200rpx 0 ) یک نما با استفاده از WeChat DevTools.

حسابرسی عملکرد

عملکرد برای برنامه‌های کوچک در اولویت و مرکز توجه است، بنابراین جای تعجب نیست که ابزارهای توسعه‌ی WeChat و برخی دیگر از ابزارهای توسعه، یک ابزار حسابرسی الهام گرفته از Lighthouse یکپارچه دارند. حوزه‌های تمرکز این حسابرسی‌ها عبارتند از مجموع، عملکرد، تجربه و بهترین شیوه. نمای IDE را می‌توان سفارشی کرد. در تصویر زیر، ویرایشگر کد را موقتاً پنهان کرده‌ام تا فضای بیشتری روی صفحه برای ابزار حسابرسی داشته باشم.

اجرای ممیزی عملکرد با ابزار ممیزی داخلی. امتیازات نشان دهنده مجموع، عملکرد، تجربه و بهترین شیوه است که هر کدام ۱۰۰ از ۱۰۰ امتیاز دارند.
ابزار حسابرسی داخلی در ابزارهای توسعه‌ی WeChat که مجموع، عملکرد، تجربه و بهترین شیوه‌ها را نشان می‌دهد.

شبیه‌سازی API

به جای اینکه توسعه‌دهنده مجبور به راه‌اندازی یک سرویس جداگانه باشد، شبیه‌سازی پاسخ‌های API مستقیماً بخشی از ابزارهای توسعه‌ی WeChat است. از طریق یک رابط کاربری آسان، توسعه‌دهنده می‌تواند نقاط پایانی API و پاسخ‌های شبیه‌سازی مورد نظر را راه‌اندازی کند.

تنظیم یک پاسخ آزمایشی برای یک نقطه پایانی API در WeChat DevTools.
قابلیت شبیه‌سازی پاسخ API یکپارچه‌ی WeChat DevTools.

تقدیرنامه‌ها

این مقاله توسط جو مدلی ، کیس باسک ، میلیکا میهالیا ، آلن کنت و کیث گو بررسی شده است.