سلام مجدد به همه ی همراهان عزیز.

مدتیه که شرکت های مختلف مدام دارن روش هایی رو ارائه میدن که برنامه نویسا بتونن تحت یه کد نویسی واحد برای سیستم عامل های Android و IOS کد بزنن. به این شکل که شما به یه زبون خاصی کد مینویسی و بعد برای سیستم عامل دلخواه خروجی میگیری. همیشه دغدغه ی برنامه نویسا مخصوصا برنامه نویس های جوان این بوده که بالاخره کدوم بهتره یا کدوم آینده ی بهتری داره که شروع کنن به یادگیری. توی این مقاله در سایت همیار توسعه دهنده میخوام بین ابزار های ارائه شده یه مقایسه انجام بدم تا بتونه به همه ی کسایی که تو این زمینه مشکل دارن کمک کنه.

مقایسه ی React native، Xamarin، Flutter و Ionic که چهار ابزار معروف ارائه شده از طرف شرکت های مطرح هستن و مدتیه که سر و صدا کردن. البته چند وقت پیش یدونه جدید پیدا کردم به اسم Native Script که چون تازه اومده نمیتونم دربارش خیلی نظر بدم. فقط در این حد که میتونید با فریم ورکهای جاوا اسکریپت مثل Vue.js یا Angular اپ های Native با Performance خوب تولید کنید.

برای درک بهتر مقایسه ها، مطالب رو دسته بندی کردم و از چند جهت مقایسه میکنم:
زبان برنامه نویسی، Performance، المنت های استفاده شده در UI، پشتیبانی توسط سازنده یا برنامه نویس های دیگه، کارایی، اپ های نوشته شد و هزینه و Open source بودن.

۱- زبان برنامه نویسی

  • React Native: توی React Native شما بیشتر با جاوا اسکریپت کد میزنید و تماما استاندارد های ES6 رو رعایت میکنید. اگر قبلا با فریم ورک react js کار کرده باشید و به اون مسلط باشید یه نقطه ی قوت بزرگ براتون محسوب میشه و میتونید خیلی سریع پیش برید. همچنین اگر توی گیت هاب کامپوننتی پیدا نکردید و یا قصد دارید از یه کتابخونه ی خاص Native استفاده کنید که برای ری اکت نیتیو وجود نداشت میتونید اون رو توی کد های اندرویدش import کنید و در واقع این تیکه رو به زبان خود java یا Swift یا obj-c کد بزنید.
  • Xamarin: توی زامارین شما باید به زبون C# تحت dot net enviroment کد بزنید که برای برنامه نویس های سی شارپ خیلی خبر خوبیه. مخصوصا اینکه میتونید از Xamarin forms استفاده کنید که البته خوب نیست تو بخش های بعدی بهتون میگم.
  • Ionic: توی ionic شما تماما مثل طراحی سایت به زبون های html,css,js کد میزنید که البته type script هم توش پشتیبانی میشه.
  • Flutter: زبان استفاده شده در فلاتر زبان تازه تاسیس Dart هستش که خیلی شبیه جاواست و برای برنامه نویس هایی که قبلا جاوا کار کردن دستورات خیلی به چشم آشنا میاد.

۲- Performance

  • React Native: ری اکت نیتیو از ویو های کاملا نیتیو استفاده میکنه و به لحاظ performance نزدیک به نمونه ی Native کار میکنه و خیلی روون و دلچسبه. اگر بخوایم بهش نمره بدیم میتونیم بگیم حدودا ۴ از ۵٫
  • Xamarin: اگر از Xamarin forms استفاده کنید خیلی پرفرومنس بالایی حس نمیکنید و میشه بهش ۳ از ۵ داد اما درحالت جدا جدا یعنی android یا ios تقربا چیزی شبیه نیتیو بهتون تحویل میده و میشه بهش ۴ از ۵ داد..
  • Ionic: بخاطر اینکه کل برنامه ی شما عملا یه وب ویوی سادس نهایتا بشه بهش ۲ از ۵ داد. واقعا کنده.
  • Flutter: فلاتر از ویوهای اختصاصی خودش استفاده میکنه و اصلا کاری به ویوهای Native نداره. بخاطر همین پردازش های خاص خودش رو هم داره و در نهایت یه پرفرومنس عالی ارائه میده. به نظر میاد خیلی راحت بشه برنده ی این بخش معرفیش کرد و ۵ از ۵ رو بهش اختصاص داد.

۳- المنت های طراحی UI

  • React Native: ری اکت نیتیو از ویوهای کاملا نیتیو استفاده میکنه
  • Xamarin: زامارین با ویوهای کاملا نیتیو کار میکنه
  • Ionic: این دوست عزیز فقط از html , css استفاده میکنه
  • Flutter: فلاتر با ویوهای کاملا اختصاصی که اسمشون ویجت هست کار میکنه.

۴- پشتیبانی ها و مشارکت برنامه نویسان

  • React Native: بیشترین مشارکت رو توی توسعه از طرف برنامه نویسا داره و برنده ای این بخش با امتیاز ۵٫
  • Xamarin: مشارکت برنامه نویسا توی توسعه ی زامارین خیلی خوبه و پشتیبانی خوبی هم داره و میشه بهش ۳٫۵ از ۵ داد.
  • Ionic: باورم نمیشه که هنوز برنامه نویسا دارن اینو توسعه میدن ولی خوب میشه بهش ۳٫۵ داد.
  • Flutter: فلاتر خیلی معروف نبود اما یه شیب عجیب روبه بالا تو ماه های اخیر باعث شد امتیازی که میخوایم بهش بدیم از ۲ به ۵ برسه و کنار ری اکت نیتیو قرار بگیره.

۵- کارایی در طراحی

  • React Native: با ری اکت نیتیو میتونید ۱۰۰% اپ هایی که میخواید رو تولید کنید و محدودیت خاصی از این نظر دیگه وجود نداره.
  • Xamarin: زامارین بخاطر محدودیت هایی که داره خیلی نمیشه روش مانور داد و شما میتونید با اون برنامه های ساده بنویسید شاید ۸۰درصد کارایی براتون داشته باشه.
  • Ionic: اینم مثل زامارین فقط میتونه اپ های ساده بهتون بده نهایتا ۶۰ درصد اپ هارو بتونه براتون طراحی کنه.
  • Flutter: فلاتر قدرت بالایی از خودش نشون داده و درست مثل ری اکت میتونید ۱۰۰% اپلیکیشن ها رو باهاش پیاده سازی کنید

۶- اپلیکیشن های نوشته شده

  • React Native: فیسبوک و اینستاگرام بزرگترین برنامه های نوشته شده با ری اکت هستن
  • Xamarin: برنامه های oio,ther world bank و storyo که هیچکدوم هم نمیشناسم با زامارین نوشتن
  • Ionic: برنامه های justwatch و pacifica
  • Flutter: هنوز کسی ریسک آنچنانی سر فلاتر نکرده الان فقط برنامه ی Hamilton رو میشناسم که با فلاتر نوشتن

۷- هزینه ها

همه ی ابزار ها از طرف سازنده به صورت Opern Source ارائه شده و کاملا رایگانن.

۸- نتیجه

میدونم از این جمله بدتون میاد اما مجبورم بازم بگم که کاملا بستگی به خودتون داره. اول و آخر هچکدوم از راه های بالا مثل Native کار کردن نمیشه اما اگر میخواید برید سمت سیستم های Cross Platform روی ری اکت نیتیو و فلاتر تمرکز کنید و وقتتون رو برای بقیه ی موارد تلف نکنید.
ترتیب بندی نهایی:
۱- React Native , Flutter
۲- Xamarin
۳- Native Script
۴- Ionic

خوب این مقاله هم با پایان رسید. امیدوارم جواب سوالاتتون رو گرفته باشید. اگر ابزار جدیدی ارائه شده که ازش خبر نداشتم توی نظرات بگید و همچنین اگر سوالی نکته ای حرفی حدیثی پانوشتی چیزی دارین حتما نظر بزارید.