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

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

اما حال در جامعه و دنیای زندگی میکنیم که سرعت بالا، قابلیت های زیاد، دسترسی بالا و تجربه کاربری خوب اولین حرف ها را میزنند. رشد استفاده از تلفن های همراه هوشمند از دستگاه های رومیزی پیشی گرفته است. این دلیل ضرورت راه اندازی سرویس های تکنولوژی را برای دستگاه های همراه، بیشتر کرده است.
برنامه های 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 دارم و توی استدیو ریسمون روی استارتاپ شخصیم کار میکنم.

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

ارسال پاسخ رضا
رضا
دوشنبه ۱۶ مرداد ۱۳۹۶ ۱۰:۳۶
سلام ، الان واقعا اگه یه طراح وب ، بخواد نسخه قابل نصب موبایلی داشته باشه باید چیکار کنه ؟؟
ارسال پاسخ مجتبی
مجتبی
سه شنبه ۱۰ مرداد ۱۳۹۶ ۲۲:۴۲
تمامی نرم افزارهای مدیریتی و اداری حتی درکشورمون تحت وب شدن و تحول عجیبی در کسب و کار ها ایجاد شده