PWA یک وب سایت است که مانند یک برنامه تلفن همراه بومی عمل می کند. اصلی ترین تفاوت PWA و یک برنامه کاربردی موبایل بومی (اپلیکیشن اندروید یا ios یا…) در این است که یک PWA در یک مرورگر کار می کند ، بنابراین نیازی به بارگیری آن از app store ها نیست و میتوان آن را بدون نصب استفاده کرد. به لطف service workers ، اپکلیشن های پیشرونده وب (PWA) می توانند داده ها را در دستگاه کاربر در حافظه نهان ذخیره کنند. این امر به کاربران امکان می دهد تا هر زمان که باشند ، فارغ از سرعت اینترنت خود ، به روز باشند. به عنوان مثال ، توییتر یک PWA ارائه می دهد. با این حال ، آنها همچنین برنامه های موبایل بومی برای iOS و Android دارند.
بصورت کلی اپلیکیشن بومی (native application) میتواند از سیستم عامل دسترسی هایی را بگیرد که pwa نمیتواند آن دسترسی ها را داشته باشد. برای مثال در اپلیکیشن اینستاگرام شما میتوانید عکس بگیرید و روی عکس فیلتر بگذارید و این کار را نرم افزار انجام میدهد. اما همین مورد روی PWA اینستاگرام غیر فعال می باشد چون براحتی نمیتوان این امکان را در PWA پیاده سازی کرد. یا مثلا در اپلیکیشن native شما میتوانید به مخاطبین فرد دسترسی داشته باشید در صورتی که این امر در pwa امکان پذیر نمی باشد.
نکته جالب اینجاست که اگر یک سر به PWA اینستاگرام بزنید میبنید بر خلاف چیزی که تصور میکردید این PWA که برای شرکت به این بزرگی می باشد، پر از باگ می باشد و کاربر را کلا از استفاده از PWA زده میکند. این مشکل PWA نمی باشد. اینستاگرام به همان دلیلی که اپل برای مک بوک هایش صفحه تاچ نمیگذارد به PWA اهمیت نمی دهد. در واقع اگر PWA را بدون باگ تحویل مردم بدهد، مردم دیگر اپلیکیشن بومی (native application) را نصب نمیکنند. بنابراین اینستاگرام دیگر نمیتواند به مخاطبین کاربر دسترسی داشته باشد.
لیست دسترسی های مجاز PWA
Camera & Microphone
Surroundings
- Bluetooth Yes
- USB Yes
- NFC No
- Ambient Light No
Device Features
- Network Type & Speed Yes
- Online State Yes
- Vibration Yes
- Battery Status Yes
- Device Memory Yes
Native Behaviors
- Local Notifications Yes
- Push Messages Yes
- Home Screen Installation Yes
- Foreground Detection Yes
- Permissions Yes
Operating System
- Offline Storage Yes
- File Access Yes
- Contacts No
- SMS/MMS No
- Storage Quotas Yes
- Task Scheduling No
Input
Seamless Experience
- Offline Mode Yes
- Background Sync Yes
- Inter-App Communication No
- Payments Yes
- Credentials Yes
Location & Position
- Geolocation Yes
- Geofencing No
- Device Position Yes
- Device Motion Yes
- Proximity Sensors No
Screen & Output
- Virtual & Augmented Reality Yes
- Fullscreen Yes
- Screen Orientation & Lock Yes
- Wake Lock Yes
- Presentation Features Yes
این دسترسی ها بر طبق آخرین بروزرسانی کروم در امروز یعنی ۲۹ دی ۹۸ هست. همونطور که میبینید نمیشه به یک سری موارد حیاتی مثل sms یا مخاطبین و مهم تر از اینا Task Scheduling دسترسی داشت. خیلی از دوستان که میخوان اپلیکیشن طراحی کنن، میفرمایند در قسمتی که قراره کاربر ثبت نام کنه، بعد از ورود شماره موبایلش، اتومات از اس ام اس کد امنیتی خوانده بشه مثل اپلیکیشن واتس اپ. ولی خب این مورد تو PWA امکان پذیر نیست، یا نمیتوان اپلیکیشنی ساخت که اذان بزنه، یا ریمایندر داشته باشه. چون به قسمت task scheduling دسترسی نداریم.
البته که تا دوسال پیش همین مواردم نبودن و کم کم دارن اضافه میشن. مثلا کروم آپدیت داشته که شما میتونی بخشی از مخاطبینتونو انتخاب کنید و براش بفرستید، کامل قابل ارسال نیست. خب این موارد به مرور زمان داره اضافه میشه. تکنولوژی داره به این سمت پیش میره. ما هم محدودیت ها رو دور میزنیم. خیلی راه حل وجود داره برای اینکه امثال این محدودیت ها رو برطرف کرد. البته همشون نه😁
امثال اپلیکیشن هایی مثل اسنپ و تپ سی که به لوکیشن دسترسی دارن به راحتی بصورت PWA قابل پیاده سازی هستن. این مورد و میتونید توی نسخه های آنلاینشون ببینید.
بصورت کلی خیلی تفاوت وجود داره میان native application و PWA
از لحاظ سرعت قطعا native applications سرعت اجرای بیشتری داره. ولی خب مورد مهمی که هست پیشرفت تکنولوژی هست و نباید این مورد و نادیده گرفت.
راستی شما میتونید از طریق این لینک ببینید که مرورگر شما از چه دسترسی هایی پشتیبانی می کند.
از نکات مثبت استفاده از PWA
- سئو پذیر
- عملکرد خودمختار
- دسترسی راحت بدون نیاز به نصب
- هزینه ارزان تولید نسبت به اپلیکیشن های native
- multi os یعنی روی هر سیستم عاملی قابل اجراست
از نکات منفی استفاده از PWA
- مصرف باطری بیشتر ، چیزی که هر کسی در موردش نمیدونه. ولی خب مطمئن باشید جاوا اسکریپت پدر گوشی و در میاره رو مرورگر ماشالا
- به هر چیزی دسترسی نداریم (که این مورد روزانه داره آپدیت میشه)
نمونه یک pwa طراحی شده توسط تیم ایده وب رو میتونید اینجا (betterchance pwa) ببینید.
دیدگاهتان را بنویسید