سفارش تبلیغ
صبا ویژن

react native یا flutter کدام مناسب تر است ؟

 

با ظهور flutter  و مزایایی که این فریمورک برای توسعه دهندگاه ارائه می نمود دیگر عرصه برای یکه تازی های React Native  در بازار آندرید تنگ شد و این فریمورک رقیبی تازه برای خود یافت. که طبق معمول به جبهه آرایی بین برنامه نویس ها و داغ شدن این موضوع که کدام یک بهتر است انجامید.

در ادامه این مطلب از وبلاگ خبری آموزشی تی کدر سعی داریم با نگاهی بی طرفانه به این فریمورک ها ، اقدام به مقایسه ای مختصر نماییم تا موضوع تا حدودی برای توسعه دهندگاه و علاقه مندان به زمینه روشن تر شده و نیز برخی ابهامات که احتمالا در ذهن دوستان تازه وارد به این مقوله شکل گرفته است رفع شود.

تاریخچه مختصر

استفاده از cross platform ها برخلاف تصور بسیاری از افراد به هیچ وجه پدیده جدیدی نیست و از سالها قبل تحت فریم ورک هایی همچون Qt ( تلفظ : کیوت ) ارائه گردیده است. لیکن با توجه به انقلاب دهه اخیر در زمینه گوشی های هوشمند و نیز رواج دیوانه وار این محصولات بین جوامع ، مبحث cross platform نیز بیش از پیش مورد توجه قرار گرفته و به ویژه در بین استارت آپ ها و شرکت های کوچکی که دارای محدودیت هایی من باب زمان ، هزینه و مهارت بوده یا به آپلیکیشن هایی ساده با پیچیدگی های نه چندان زیاد نیاز دارند ، محبوب یافته است.

اما چالشی که امروزه ممکن است برای برخی از شرکت های نوپا  و توسعه دهندگان تازه وارد مطرح باشد ، رو به رویی با خیل عظیمی از این پلتفرم هاست که با هر کدام با آیکون های رنگارنگ و امکانات دلفریب در بستر اینترنت جا خوش کرده اند. react native و flutter در واقع دو نمونه از معروف ترین این پلتفرم ها می باشند که اولی توسط فیسبوک در سال 2015 و دومی توسط گوگل در 11 دسامبر 2019 عرضه گردیده اند.

مقایسه

بی شک مقایسه دو پلتفرم فعال با به روز رسانی های متوالی و گسترش روزمره کار آسانی نیست و مطلبی نیست که در این مقال بگنجد لیکن در ذیل اقدام به بررسی برخی از ویژگی های این دو پلتفرم با توجه به چالش های فوق الذکر می پردازیم تا خوانندگان گرامی دید بهتری نسبت به موضوع پیدا کنند.

1- توسعه سریع تر

Reusability همواره یکی از اصلی ترین چالش های مهندسی نرم افزار و یکی از اصلی ترین ارکان در افزایش سرعت توسعه سیستم های گوناگون بوده است. در واقع تحویل به موقع پروژه ها یکی از نشانه های برتری شرکت هایی است که در زمینه توسعه سیستم های نرم افزاری کار می کنند و در مقایسه به نظر می رسد که React Native در این مورد یک سر و گردن از رقیب خود جلوتر است.

در واقع base کار React Native بر روی کامپوننت ها استوار گردیده است که با توجه به سابقه نسبت بلند مدت این فریمورک امروزه در اینترنت به ووفور موجود می باشند. این در حالی است که فلاتر جدید تر بوده و احتمالا زمان زیادی برای پروژه ها نیاز خواهد داشت. البته لازم به اشاره است که گوگل قول هایی در رابطه با بهبود این پلتفرم در این زمینه و نیز استفاده با کیفیت بالا داده است که فعلا باید منتظر نتیجه آنها بود.

2- زیبایی

همواره در طول تاریخ ذات انسان جاذب زیبایی بوده و آدمی همواره به اکتساب یا ایجاد زیبایی میل و علاقه بی بدیلی نشان داده است. شکی در این نیست که این مهم همانند هر زمینه دیگری به صنعت کامپیوتر و محصولات گوناگون آن نیز راه یافته است. تا حدی که در برخی موارد به شخصه شاهد پیروزی زیبایی در برابر کیفیت و عملکرد بوده ام. البته باید توجه داشت که زیبایی از نقطه نظر افراد و اقشار مختلف مفهوم کاملا متفاوتی داشته و فرد به فرد متفاوت است. که در اصل علومی چون طراحی UI و ورود موضوعاتی از جمله روانشناسی رنگ و … به زمینه نرم افزار ریشه در همین مسائل دارند.

گفتنی است React Native و Flutter در زمینه ایجاد رابط کاربری نیز کاملا با یک دیگر متفاوت می باشند. به عبارتی React Native در این زمینه نیز از کامپوننت های نیتیو خود بهره می جوید در حالی که Flutter از مجموعه اختصاصی widget ها بهره می برد که در عمل مشکلاتی را برای توسعه دهندگان در بر داشته است ( از جمله مشکل نبود کامپوننت ios در کتابخانه Cupertino )

وظیفه ویجت های Flutter در واقع کمک به ایجاد طرح های سفارشی UI با قابلیت همکاری مناسب با کامپوننت های native می باشد و این در حالی است که ری اکت مستقیما از این کامپوننت ها بهره گرفته و به کاربر حس native بیشتری را منتقل می کند. لذا می توان این مورد را نیز یک برتری نسبی برای react دانست.

3- محبوبیت

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

4- عملکرد بهتر

در مقایسه های صورت گرفته Flutter عملکرد بسیاری بهتری نسبت به فریمورک React Native از خود نشان داده و مزیت هایی همچون کمک به لایه های جاوا اسکریپت برای ارتباط بهتر با کامپوننت های native ، ارائه موتور c++ ، تسهیل استفاده مجدد از کد و … ( توجه کنید Reusability در مورد یک اشاره به موجود بودن گستره وسیعی از کدهای ری اکت در اینترنت دارد حال آن که در این بخش منظور تسهیل استفاده از کدهای خود تیم توسعه است که البته با توجه به نو پا بودن flutter احتمال از بین رفتن این برتری ری اکت طی آینده نزدیک دور از انتظار نیست.)

همچنین شایان ذکر است که استفاده از React Native برای دولوپرها برای توسعه برنامه های هیبریدی از لحاظ معماری ، ساختار و استفاده از کتابخانه ها بدون مشکل کمی سخت است.

5- ثبات

بی شک چنان که جزو توسعه دهندگان react هستید به یاد دارید که در اوایل این فریمورک در هر آپدیت به کلی تغییر می کرد به طوری که بسیاری از توسعه دهندگان ترجیح میدادند در ورژن قبلی باقی مانده و به ورژن جدید ورود نکنند همچنین آموزش های ساخته شده نیز معمولا بر اساس ورژن خاصی بوده و مدرس به صراحت اعلام می کرد که این آموزش مختص ورژن X می باشد. به هر حال آن دوران دیگر رد شده و React Native کم کم دارد به ثبات مناسب دست می یابد. این در حالی است که Flutter هنوز در ابتدای این راه است و تا رسیدن به یک ورژن تثبت شده دارای فاصله است. لیکن انتشار ورژن Flutter beta 2 در سال گذشته خبر از آینده روشنی برای این فریمورک می دهد.

سخن نهایی

افزون بر موارد مذکور باید به این نکته نیز توجه داشت که انتخاب یک فریمورک علاوه بر مزایا و معایب ، ممکن است به نیازها ، علایق ، شرایط کاری و بسیاری مسائل دیگر مرتبط باشد. با این حال با توجه به نکات مذکور به نظر می رسد که استفاده از ری اکت برای تیم هایی که قصد ارائه محصولات نرم افزاری به بازار را دارند با توجه به شرایط فعلی این فریمورک معقول تر است. ضمن این که فرآگیری Flutter به عنوان یک آینده نگری نیز پیشنهاد می گردد.