دفتر

ساخت برنامه‌های وب پیش‌رونده با Vue.js

یادداشتی درباره کتاب Building Progressive Web Applications with Vue.js و مسیر ساخت PWA با Vue.js؛ از service worker و manifest تا داده آفلاین و نصب‌پذیری.

نویسنده Ali Zemani۲ دقیقه مطالعه
ساخت برنامه‌های وب پیش‌رونده با Vue.js

یادداشت خواندن

Building Progressive Web Applications with Vue.js وقتی مفید می‌شود که PWA را از حالت badge بیرون بیاوریم.

مسیر اصلی ساده است: یک برنامه وب معمولی را طوری بسازیم که نصب‌پذیر باشد، آفلاین دوام بیاورد، و در شبکه‌های ضعیف هم رفتار قابل پیش‌بینی داشته باشد. جذابیت PWA دقیقاً همین جاست؛ نه در اسم بزرگ، در کم کردن اصطکاک استفاده.

چیزی که PWA را واقعی می‌کند

PWA فقط manifest و icon نیست. بخش سخت‌تر آن رفتار محصول در شرایط بد است:

  • وقتی شبکه قطع است چه چیزی هنوز قابل استفاده می‌ماند؟
  • cache چه زمانی کمک می‌کند و چه زمانی داده‌ی قدیمی نشان می‌دهد؟
  • کاربر چطور می‌فهمد داده sync شده یا هنوز local است؟
  • نصب‌پذیری چه ارزشی به تجربه اضافه می‌کند؟

کتاب از همین قطعه‌ها حرف می‌زند: service worker، cache، manifest، IndexedDB، Background Sync و push notification. Vue.js در این میان بیشتر لایه‌ی UI و state را قابل‌فهم نگه می‌دارد.

مرز طراحی

برای من، PWA زمانی معنی دارد که محصول واقعاً از دوام محلی سود ببرد. اگر کاربر فقط یک صفحه عمومی را می‌خواند، cache ساده کافی است. اگر قرار است چیزی بنویسد، ذخیره کند، بعداً sync کند یا در شبکه ضعیف ادامه بدهد، طراحی offline دیگر جزئیات اضافه نیست؛ بخشی از مدل محصول است.

این همان جایی است که مثال‌های Vue مفید می‌شوند. چون UI باید وضعیت‌های میانی را نشان بدهد: online، offline، pending، cached، synced. بدون این وضعیت‌ها، تکنولوژی کار می‌کند اما تجربه قابل اعتماد نمی‌شود.

نکته‌ی کاربردی

PWA را نباید به فهرست featureها تبدیل کرد. نصب‌پذیری، notification و offline هرکدام هزینه و انتظار می‌سازند. باید برای هرکدام دلیل محصولی وجود داشته باشد.

اگر این دلیل روشن باشد، PWA می‌تواند یک برنامه وب معمولی را از «صفحه‌ای که باز می‌شود» به «ابزاری که در شرایط واقعی دوام می‌آورد» نزدیک کند.

منابع

اشتراک‌گذاری