Cross-platform یا Native،مسئله این است!!

بهمن 17, 1396     سهیل صابری    

Cross-Platform

همون طور که همه شما میدونید برای ساخت اپلیکیشن مدنظرتون برای سیستم عامل اندروید باید به زبان برنامه نویسی جاوا مسلط باشید حال اگر قصد داشته باشید همین اپلیکیشن برای سیستم عامل ios خروجی بگیرید باید حتما یک مک بوک داشته باشید و با زبان برنامه نویسی سوئیفت سروکله بزنید تا همون اپلیکیشن دقیقا داخلios پیاده کنید که کار بسیار زمان بر و وقت گیریه😩😩؛ ولی دراین چند سال اخیر بحث جدیدی به اسم کراس پلتفرم ها (Cross-platform ) بر سر زبان ها افتاد و طرفداران و مخالفان زیادی پیاده کرد. من تو این مقاله قصد دارم شما رو با کراس پلتفرم ها بیشتر اشنا کنم و معایب و مزایای هرکدوم براتون کامل توضیح بدم و در اخر به این سوال جواب بدم آیا انتخاب کراس پلتفرم ها، انتخابی نادرست است یا خیر؟؟؟🤔🤔🤔

در حال حاضر در زمینه برنامه نویسی موبایل برای توسعه دهندگان سه گزینه وجود دارد:

برنامه های بومی (native mobile app )، برنامه های هیبریدی یا ترکیبی (Hybrid mobile app ) و برنامه های چندسکویی بومی (Cross-platform native mobile app).

حال این سوال مطرح میشه که برای برنامه نویسی موبایل از بین این سه گزینه کدوم انتخاب کنیم؟؟

اپلیکیشن های بومی (Native Apps) :

این دسته همون طور که از اسم شون معلومه برنامه نویسی با زبان بومی هر پلتفرمه. که یک برنامه نویس با استفاده از sdk و زبانی که اون پلتفرم پشتیبانی میکنه میتونه برای اون سیستم عامل اپلیکیشن طراحی کنه. به عنوان مثال برای ساخت اپلیکیشن برای اندروید شما باید با زبان جاوا و محیط اندروید استدیو کار کنید یا برای ios باید به زبان سوئیفت و محیط xcode  تسلط داشته باشید و اگر هم بخواین برای ویندوز اپلیکیشنی طراحی کنید باید با زبان برنامه نویسی سی شارپ و محیط ویژوال استدیو سروکار داشته باشید.

مزایای Native Apps :
  • کدی که می نویسید برای سیستم عامل کاملا بهینه است.
  • کدی که می نویسید بدون نیاز به کامپایل شدن و یا بسته بندی وب به راحتی بر روی دستگاه قابل اجرا است که این موضوع تاثیر زیادی بر روی کارای اپلیکیشن شما دارد.
  • دارای دسترسی مستقیم به API های بومی سیستم عامل مانند: دوربین،بلوتوث ،تماس و … هستید.
  • رابط کاربری بومی
  • عملکرد بسیار بالا
  • حجم خروجی بسیار کم
معایب Native Apps :
  • کدی که می نویسید فقط مخصوص همون سیستم عامل است و قابل اجرا بر روی دیگر پلتفرم ها را ندارد.
  • هیچگونه کد مشترکی وجود ندارد و شما باید برای هر پلتفرم جدا کد نویسی کنید.
  • زمان و هزینه بسیار زیاد

Cross-Platform - عکس1

 

اپلیکیشن های ترکیبی (Hybrid Apps) :

این دسته یک نوع از کراس پلتفرم ها به شمار می ایند.  شما با استفاده از اپلیکیشن های ترکیبی می توانید از طریق زبان های Html،Css و جاوا اسکریپت (بیس اصلی کدنویسی) به برخی از ویژگی های بومی هر پلتفرم دسترسی داشته باشید. کد های این دسته با استفاده از sdk مخصوص هر پلتفرم می توانند برای سیستم عامل مقصد قابل پشتیبانی شوند.

چند تا از معروف ترین برنامه های ترکیبی عبارتند از : PhoneGap ، Cordova ، Ionic ، Intel XDK ، Snecha و Kendo UI

مزایای Hybrid Apps :
  • وجود یک کد مشترک برای تمامی پلتفرم ها
  • صرفه جویی در زمان و هزینه
  • با استفاده از پلاگین ها می توانید به ویژگی های بومی هر پلتفرم مانند دوربین، بلوتوث ، رسانه ها و … دسترسی داشته باشید
  • راحت بودن برای طراحان وب
  • دیباگ کردن سریع و اسان حتی بدون نیاز به استفاده از شبیه ساز هر پلتفرم
  • قابلیت اجرا بر روی تمامی سیستم عامل ها (بلک بری، لینوکس، فایرفاکس و …)
معایب Hybrid Apps :
  • یک رابط کاربری مشترک برای تمامی پلتفرم ها(که این مورد در ایونیک در ورژن جدید برطرف شده)
  • عملکرد پایین تری نسبت به برنامه های بومی دارد.
  • به برخی از ویژگی های هر پلتفرم دسترسی محدود شده ای دارند.
  • اسیب پذیر بودن

Cross-Platform - عکس2

 

اپلیکیشن های کراس پلتفرم بومی ( Cross-platform Native Apps) :

این دسته ترکیبی از برنامه های ترکیبی و برنامه های بومی است، به این صورت که تحت یک چارچوب مشخص شده می توانید برنامه های کاملا بومی برای هر پلتفرم طراحی کنید و از ان خروجی بگیرید. از ویژگی این برنامه های می توان به عملکرد بالا و رابط کاربری بومی اشاره کرد. این برنامه های دسترسی به APIهای مخصوص هر پلتفرم را دارند.

که Xamarin ، React Native و Native Script جز این دسته هستند.

مزایای Cross-platform Native Apps :
  • توسعه سریع برنامه های کراس پلتفرم بومی
  • اشتراک گذاری کد برای تمامی پلتفرم ها از اندروید تا ویندوز
  • ایجاد یک رابط کاربری بومی
  • عملکرد نسبتا بالا (نزدیک به برنامه های بومی)
  • صرفه جویی در وقت و هزینه ( نه به نسبت برنامه های ترکیبی)
معایب Cross-platform Native Apps :
  • اسیب پذیر بودن
  • کد های رابط کاربری در اندروید و ios محدود شده
  • برای سیستم عامل های خاص ساخته شده (به عنوان مثال React Native فقط برای اندروید و ios خروجی می دهد)
  • تایید مجدد اپ استور برای هر بروزرسانی

Cross-Platform - عکس3

 

کدام یک از این ها بهترین است؟؟

این سوالیه که خیلی ها جاها شنیده میشه که با وجود این همه تنوع کدوم یک از این 3 گزینه رو انتخاب کنیم؟🤔🤔🤔 باید خدمتون عرض کنم که هیچ چیز جایگزین برنامه های Native نخواهد شد چون خروجی آن ها هم از نظر کارایی و هم از نظر سرعت کاملا بهینه است چون با زبان بومی اون سیستم عامل نوشته شده اند؛ پس بهترین گزینه برای کسانی که تازه قصد دارند برنامه نویسی موبایل را شروع کنند و هیچگونه پیش زمینه ای ندارند، برنامه های بومی است.

اما با این وجود دو گزینه دیگر هم به عنوان یک راه حل خوب به حساب می ایند.

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

هر کدوم از این سه گزینه بهترین هستند و هیچوقت نمیشه گفت راه حل اشتباه یا نادرستی هستند چون اغلب مشاهده میشه که خیلی از برنامه نویس ها، برنامه های Cross-platform پیشنهاد نمی کنند و برنامه های بومی رو به دیگران توصیه می کنند؛ ولی اصلا این طور نیست در حال حاضر با پیشرفت برنامه های کراس پلتفرم و هیبرید روز به روز از معایب آن ها کم تر می شود و دسترسی هاشون به ویژگی های هر پلتفرم بیشتر می شود که باعث میشه این نوع از برنامه ها به شدت در وقت و هزینه صرفه جویی می کنند و برای شرکت ها تولید کننده نرم افزار بسیار مفید باشد چون یک نیروی برنامه نویس کراس پلتفرم جایگزین سه نیرو می تواند باشد که این موضوع هم در وقت و هم در هزینه های اون شرکت بسیار تاثیر گذار خواهد بود.

در اخر از شما دوستان، تجربه یا نظری در مورد هر کدام از این سه گزینه دارید خوشحال میشم در کامنت های این پست با ما و دیگر دوستان به اشتراک بگذارید.😉😉😉

 

دسته‌بندی‌ : بلاگ

2 thoughts on “Cross-platform یا Native،مسئله این است!!”

  1. جعفر

    سلام. برای شروع برنامه نویسی موبایل شما چندسکویی رو پیشنهاد میدید یا بومی ؟ با تشکر

  2. محمد باقری نیا

    سلام بر شما جعفر
    به نظر من بستگی به نوع اپلیکیشن تون داره ، اگر اپ تون ، از نوع اپلیکیشن های معمول هست ، مثلا فروشگاه ، کتاب و … استفاده از چندسکویی بهتره
    اما برای اپلیکیشن هایی که قراره تخصصی تر زده بشه و به منابع حساس گوشی (که توی هر ورژن اندروید معماریش داره بهتر میشه) درست کنید ، استفاده از کد نویسی بومی بهتره
    این رو هم نادیده نگیرید که اپلیکیشن های بومی توسط خوده شرکت گوگل پشتیبانی میشه که اپ های چند سکویی این ویژگی رو ندارند

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Rating*