برنامه‌های تحت وب برای امروز و فردا

برنامه‌های تحت وب برای امروز و فردا
برنامه های تحت وب یا همان Web Application ها از زمان پیدایش وب وجود دارند و با صفحات Static و ثابتی آغاز شده است. اما اینک کاربرد و قابلیت های وب و Web App ها از آن زمان تغییر کرده است.
نکته: منظور از Native App ها در سراسر این مقاله برنامه های محلی دستگاه های همراه اعم از Android, iOS, Blackberry و... همچنین برنامه های سیستم عامل ها کامپیوتر های شخصی مثل Windows, Mac, Linux و... میباشد.
آموزش برنامه نویسی موبایل
آموزش برنامه نویسی اندروید به همراه پشتیبانی رایگان برای رفع خطاهای شما
خودتان را اینجا معرفی کنید

اما حال در جامعه و دنیای زندگی میکنیم که سرعت بالا، قابلیت های زیاد، دسترسی بالا و تجربه کاربری خوب اولین حرف ها را میزنند. رشد استفاده از تلفن های همراه هوشمند از دستگاه های رومیزی پیشی گرفته است. این دلیل ضرورت راه اندازی سرویس های تکنولوژی را برای دستگاه های همراه، بیشتر کرده است.
برنامه های Native یا همان برنامه های محلی هر سیستم عامل عموما توانسته اند که هر چهار فاکتوری که در بالا ذکر شد را یک جا داشته باشند، اما Web App اغلب سرعت کمتری و همچنین دسترسی سخت تری نسبت به Native App ها دارند. آیا Web App ها و وبسایت ها را کنار بگذاریم  و همه به سمت برنامه های Native برویم؟ بر هر پلتفرم از Desktop تا Mobile گرفته یک App توسعه دهیم و ادامه ماجرا... اما صحبت از این فاکتور ها  فقط کلی گویی است و جانب داری از یک پلتفرم است.
بهتر است که یک به یک قابلیت های اساسی Web App ها و Native App ها را بررسی کنیم.

مزیت های برنامه های محلی یا Native App ها:

قابلیت نصب (Installable): این نرم افزار ها از طریق App Store ها قابل نصب هستند و به راحتی با یک Tap یا Click از منو یا Desktop کاربر قابل دسترس هستند که این خود به تنهایی احساس خوبی به کاربر میدهد که وقتی یک آیکون زیبایی باشد که با کلیک بروی آن یک برنامه بدون دیدن Component های مزاحم مرورگر (از قبیل: نوار آدرس، Bookmark ها، Status Bar و...) اجرا میشود.

دسترسی همیشگی (Online or Offline): نیاز به اینترنت، اینک در همه جا و همه زمان احساس میشود اما اینکه در صد درصد مواقع و مکان اینترنت وجود داشته باشد امری غیر ممکن است این آزاردهنده است که برنامه های تحت وب فقط با اتصال به اینترنت اجرا میشوند ولی برنامه های Native اینگونه نیستند و در نبود اینترنت هم میتوانند برخی Functionality خود را حفظ کنند.

درگیر کردن کاربر (Engaging User): اینکه کاربر برای اولین بار از برنامه ما استفاده کند نیمی از بازی است. اما چه کنیم تا کاربر مراجعات بعدی و استفاده های بعدی از برنامه ما داشته باشد؟! در برنامه های Native این امر با Notification هایی که حتی وقتی کاربر در حال استفاده از برنامه نیست، به کاربر اعلان میدهند و کاربر را به برنامه میکشانند اما در Web App ها این امر ممکن نیست و عموما با ایمیل، شبکه های اجتماعی و حتی شوق و تجربه شخص کاربر برای استفاده مجدد از برنامه و... انجام میشود.

 سرعت بالا(Speedy): اصولا کد های Native بهتر از کد های Web اجرا میشوند و دسترسی بهتری به منابع دارند. در یک کلام وبسایت ها کند هستند ولی برنامه های Native سریع هستند.

با تمام تفاسیر بالا در ابتدا قرار شد که مزیت های هر دو را بررسی کنیم پس به سراغ مزیت های Web App ها میرویم.

مزیت های برنامه های تحت وب یا Web App ها:

قابلیت لینک شدن (Linkable): قابل اتصال به دیگر برنامه های وب با یک URL بدون اینکه نیاز به دسترسی خاصی از دستگاه کاربر باشد. که این امر در برنامه های Native موجود نیست و باید برای تک تک کارهایی که میخواهید انجام دهید Permission از  کاربر بگیرید.

چیدمان واکنش گرا (Responsive Layout): با ابزار های زیادی مثل: Media Query ها و... میتوانید چیدمان های پیچیده ای بسازید که فاکتور های زیادی مانند: رزولوشن، اندازه Screen،جهت دستگاه (Orientation) یا حتی نوع دستگاه(تبلت، موبایل، دسکتاپ، پروژکتور و...) را میتوانند به عنوان محوریت تغییر و واکنش قرار دهند، در اصل Layout اولیه سایت است که تغییر میکند و نه چیدمان اجزا تشکیل دهنده(منظور تغییر در کد های HTML) که این امر باعث میشود که تمرکز بروی محتوا و همچنین یکپارچگی محتوا بالا برود.

داده محور (Data Centric): با HTML که یک زبان غنی است میتوان داده های معنا دار (Semantic) و ساختار مندی ساخت که هم برای انسان مفید باشد و هم برای ماشین قابل فهم باشد. وب برای ساخت داده ها و اطلاعات فوق العاده ترین ابزار است.
امن(Secure): وب امکانات زیادی برای ساخت برنامه های امن در اختیار قرار میدهد از قبیل Same-Origin Policy یا Single-Origin Security Model و همچنین پروتکل امن SSL یا همون HTTPS که سطح قابل توجهی از امنیت را در اختیار قرار میدهد. با این راه حل ها ساخت برنامه های امن بسیار راحت تر شده است.

چند سکویی(Multi-Platform): برنامه های تحت وب در تمام سیستم عامل ها از قبیل موبایل یا دسکتاپ بدون تغییر در کد کار و این خود بزرگترین مزیت است زیرا نیاز نیست که برای هر پلتفرم یک برنامه مجزا نوشته شود.

با گفتن مزیت هر پلتفرم دریافتیم که هر یک برتر هایی در یک حوزه نسبت به دیگری دارند و همچنین دریافتیم فاصله و شکاف باریکی بین Web App ها و Native App ها وجود دارند.
در سال های اخیر و با رشد تلفن های همراه راه حل ها و تکنولوژی های زیادی ارائه شدند و هر یک در صدد این بودند که آن شکاف موجود بین این دو پلتفرم را از بین ببرند.
در زیر لیستی از این راه حل ها و تکنولوژی ها را میبینیم با توضیح مختصر:
 
Mobile Version Sites: این اولین راه حل و ساده ترین راه حل در حوزه Mobile Web به شمار میرود که دو نسخه از سایت یکی برای Desktop و یکی برای دستگاه های همراه که در URL هایی همانند m.domain.com یا domain.com/mobile و... ساخته میشد و توسط User Agent هر کاربر به نسخه بهینه سوق داده میشد.
اشکالات:
  • قابل نصب نیستند.
  • سرعت خوبی ندارند.
  • وابسته به اینترنت هستند.
  • کاربر را برای مراجعات بعدی درگیر نمیکنند.
  • چند نسخه از سایت باید ساخته شود.
 
RWD , AWD:
طراحی واکنش گرا که پس از رشد سریع موبایل های هوشمند، تبلت ها و همچنین زیاد شدن رزولوشن ها و چگالی های پیکسلی بالا از طرف W3C ارائه شد و نیمی از دغدغه ها و فاصله ها را از بین برد.
اشکالات:
این روش فقط مشکل Layout تطبیق پذیر را حل کرده است و همچنان دیگر دغدغه ها باقی هستند.

 SPA برنامه های وب تک صفحه ای: برنامه هایی که در یک صفحه تمام عملیات انجام میشود و Request ها و Response ها با AJAX و Rest API ها Handle میشود. از فریم ورک های انجام این کار میشود به Angular و Backbone و Ember و... اشاره کرد.
اشکالات:
  • قابل نصب نیستند.
  • سرعت Load در آن ها همانند وبسایت ها است.
  • وابسته به اینترنت هستند.
  • کاربر را برای مراجعات بعدی درگیر نمیکنند.

Hybrid Apps یا برنامه های ترکیبی: برنامه هایی که با تکنولوژی ها و زبان های وب ساخته میشوند و با یک فریم ورک یا نرم افزار Pack میشوند و توسط یک Web View به صورت یک برنامه Native بروی سیستم کاربر نصب و اجرا میشوند. از این فریم ورک ها یا نرم افزار ها میتوان به Cordova, Phonegap, Ionic برای موبایل و سیستم عامل های Smart Handheld و Electron برای سیستم عامل های Desktop اشاره کرد. این روش همچنین میتوانست به دو روش به منابع سیستم کاربر دسترسی داشته باشد HTML5 API ها و API هایی که آن فریم ورک در اختیار قرار میدهد.
اشکالات:
  • سرعت خوبی ندارند.
  • Crash کردن در این برنامه ها معمول است.
  • لینک شدن به دیگر برنامه های نصب شده و همچنین به وب سخت است.

عموما نیازی نبود که Application ساخته شود اما چون این روش تنها روش ساخت یک Application در سیستم کاربر بود که قابلیت نصب دارد و کاربر درگیر میکند سرویس ها مجبور میشدند با هزینه های زیاد نسخه ای از سایت خود را برای این پلتفرم ها بازنویسی کنند.
Optimized Mobile Pages: این روش ها که از چندتای آن ها میتوان به Accelerated Mobile Pages یا Google AMP توسط گوگل و Facebook Instant Article توسط فیسبوک اشاره کرد.

توسط این تکنولوژی و پروژه ها و به وسیله استاندارد های تعریف شده درون آن ها نسخه ای از محتوایتان را آماده کنید تا مخاطب شما با سرعت بیشتر و بهتری صفحات شما را مشاهده و مطالعه نمایند. منظور از سرعت: سرعت بارگذاری (Load) صفحات، سرعت پیمایش و کارکردن این صفحات و سرعت مطالعه می باشد.
این راه حل برای وبسایت های محتوا محور مانند سایت های خبری، بلاگ ها، مجله ها و سایت هایی از این دست می باشد. اما چگونه کار میکنند؟! از روش هایی همانند:
  • Prefetching
  • Preconnecting
  • Prerendering
  • Preloading

اشکالات:
  • فقط برای سایت های محتوا محور است و عموما برای Application ها کاربردی ندارد.
  • قابل نصب نیستند.
  • وابسته به اینترنت هستند.
  • کاربر را برای مراجعات بعدی درگیر نمیکنند.
  • چند نسخه از سایت باید ساخته شود.

اما کلی صحبت کردیم و از دغدغه ها گفتیم و مشکلات گفتیم و راه حل هایی را با هم بررسی کردیم که هر کدام تلاش بر این داشتند که مشکلات را رفع کنند و فاصله بین Web App ها و Native App ها را از بین ببرند اما هنوز برخی مشکلاتی از قبیل سرعت، درگیر نکردن کاربر، قابل نصب نبودن و... که هر کدام دغدغه های اصلی هستند.
راه حل چیست؟






 

طراح UI, UX و توسعه دهنده وب و موبایل از ۸۶ فعالیت توی این حوزه رو شروع کردم و علاقه زیادی به Javascript دارم و توی استدیو ریسمون روی استارتاپ شخصیم کار میکنم.

نظرات و سوالات کاربران

ارسال پاسخ حمید فرجی
حمید فرجی
شنبه ۲۸ مرداد ۱۳۹۶ ۱۲:۳۸
در پاسخ به دیدگاه مرتضی ارسال شده در یکشنبه ۲۲ مرداد ۱۳۹۶ ۲۰:۲۶
سلام
از نظر من قابل نصب نبودن یک عیب نیست بلکه یه مزیت هست.
اکثر اسمارت فون ها رو نگاه کنید حداکثر چنتا برنامه رو میتونید به صورت همزمان روی اونها نصب کنید. (لطفا و تاکیدا فقط top end های شرکت ها رو نگاه نکنید و گوشی های رده متوسط رو هم ببینید چون تمام مشتری های شما از قشر مرفع جامعه نیستند و نمیشه اونا رو از خدمات به خاطر کم درآمد بودن محروم کرد). حالا شما فرض کنید یک نفر به استفاده از امکانات 10 تا سایت نیاز داشته باشه اگه فقط طرف این 10 تا اپلیکیشن رو نصب کنه و کنار اون بخواد از 3 تا سیستم بانکیگ و 1 سیستم مدیریتی و 1-3 سیستم مسنجینگ و ... استفاده کنه حداقل باید 20 تا برنامه رو گوشی خودش داشته باشه که تقریبا یه جوری اکثر این برنامه ها تو بکگراند گوشی ها ران میمونن حتی اگه در نظر بگرید که ران نمونن مگه یه رم چقدر فضا داره برای اجرای برنامه ها تقریبا به جای خدمات رسانی بهتر به اون کاربر بیشتر کاربر رو اذیت میکنیم و ایجاد یه حس بد نسبت به اپ ما برای اون ایجاد میکنه. ولی کاربر هر زمانی که علاقه داشته باشه به راحتی به سراغ مرورگر میره و سایتی که نیاز داره رو باز میکنه و اگه طراحی ui مناسبی برای اون وب اپلیکیشن وجود داشته باشه به راحتی میشه کاربر رو به استفاده از سیستم ترقیب کرد. و عملا هیچ برنامه مزاحمی هم روی گوشیش وجود نداره.
دوست عزیز فکر میکنم مقاله رو به دقت نخوندید بنده در بین مزیت های اپ های Native قابل نصب بودن رو یک مزیت تلقی کردم و نه یک عیب...
با تشکر
ارسال پاسخ مرتضی
مرتضی
یکشنبه ۲۲ مرداد ۱۳۹۶ ۲۰:۲۶
سلام
از نظر من قابل نصب نبودن یک عیب نیست بلکه یه مزیت هست.
اکثر اسمارت فون ها رو نگاه کنید حداکثر چنتا برنامه رو میتونید به صورت همزمان روی اونها نصب کنید. (لطفا و تاکیدا فقط top end های شرکت ها رو نگاه نکنید و گوشی های رده متوسط رو هم ببینید چون تمام مشتری های شما از قشر مرفع جامعه نیستند و نمیشه اونا رو از خدمات به خاطر کم درآمد بودن محروم کرد). حالا شما فرض کنید یک نفر به استفاده از امکانات 10 تا سایت نیاز داشته باشه اگه فقط طرف این 10 تا اپلیکیشن رو نصب کنه و کنار اون بخواد از 3 تا سیستم بانکیگ و 1 سیستم مدیریتی و 1-3 سیستم مسنجینگ و ... استفاده کنه حداقل باید 20 تا برنامه رو گوشی خودش داشته باشه که تقریبا یه جوری اکثر این برنامه ها تو بکگراند گوشی ها ران میمونن حتی اگه در نظر بگرید که ران نمونن مگه یه رم چقدر فضا داره برای اجرای برنامه ها تقریبا به جای خدمات رسانی بهتر به اون کاربر بیشتر کاربر رو اذیت میکنیم و ایجاد یه حس بد نسبت به اپ ما برای اون ایجاد میکنه. ولی کاربر هر زمانی که علاقه داشته باشه به راحتی به سراغ مرورگر میره و سایتی که نیاز داره رو باز میکنه و اگه طراحی ui مناسبی برای اون وب اپلیکیشن وجود داشته باشه به راحتی میشه کاربر رو به استفاده از سیستم ترقیب کرد. و عملا هیچ برنامه مزاحمی هم روی گوشیش وجود نداره.
ارسال پاسخ رضا
رضا
دوشنبه ۱۶ مرداد ۱۳۹۶ ۱۰:۳۶
سلام ، الان واقعا اگه یه طراح وب ، بخواد نسخه قابل نصب موبایلی داشته باشه باید چیکار کنه ؟؟
ارسال پاسخ مجتبی
مجتبی
سه شنبه ۱۰ مرداد ۱۳۹۶ ۲۲:۴۲
تمامی نرم افزارهای مدیریتی و اداری حتی درکشورمون تحت وب شدن و تحول عجیبی در کسب و کار ها ایجاد شده