آیا React Native آینده طراحی اپلیکیشن موبایل است یا Flutter
طی سال های اخیر شاهد حضور متنوع تکنولوژی های متنوع در بین توسعه دهندگان بودیم برخی از آنها عمر بسیار کوتاهی داشتند و برخی دیگر توانسته اند بازار را تصاحب کنند ، تفاوت در توسعه اندروید و IOS موجب شده که سر و کله تکنولوژی هایی برای یکسان سازی که به صورت مشترک که بتوان هر دو را با هم توسعه داد پیدا شده است ، React Native یکی از مشهور ترین آنهاست البته تکنولوژی هایی دیگری مانند Parse که کاری مشابهه React Native انجام میدادند را هم میتوان بررسی کرد که پایان غم انگیزی داشتند و نتوانست با رقبایش رقابت کند !
در دنیای تکنولوژی نمی توان آینده را پیش بینی کرد در صورتی که همین الان هم گوگل با پروژه Flutter رقیب اصلی آن است که سعی دارد کمبودهای React Native را جبران کند ، البته هدف هر دوی آنها یکی است و آن یکسان سازی توسعه کد برای هر دو پلتفرم است .
React Native به عنوان یک روش طراحی Cross Platform است که با روش های Hybrid خیلی تفاوت دارد آن هم در رابط کاربری و موجب شده که UI بر اساس معماری Native باشد اما منطق کدهای قدرتمند Javascript .
زبان محبوب Javascript سالهاست که میان توسعه دهندگان وب رایج است و برای توسعه دهنده که می خواهد React Native را آغاز کند لازم نیست که خیلی درگیر اصول فنی و یادگیری Syntax یک زبان جدید باشد ، برخلاف چیزی که در Flutter وجود دارد ، گوگل زبان Dart را به عنوان زبان برنامه نویسی اصلی توسعه اپلیکیشن های موبایل با Flutter تعیین کرده است که یادیگری آن هم زیاد سخت و مشکل نیست .
از دیدگاه فنی چقدر اختلاف بین React Native و اپلیکیشنی که با Android Studio , Xcode ساخته میشود است ؟
استفاده از منابع سخت افزاری یکی از تفاوت برنامه های بومی و Cross Platform است به طور مثال در استفاده از CPU اپلیکیشن ساخته شده با Xcode کارایی بهتری دارد این نکته در استفاده از Ram نیز مشهور است ، اما به اندازه ای نیست که عملکرد موبایل را با کندی مواجه کند و نسبت به مزیت هایی که دارد چندان محسوس نیست !
گوگل که توسعه دهنده اصلی اندروید است با استفاده از فریم ورک Flutter میخواهد سنگینی که React Native دارد را برطرف کند و احتمال این وجود دارد که در آینده زبان برنامه نویسی Dart را جایگزین Java کند ، پس به نظر میرسد که پروژه Flutter آغاز یک تحول بزرگ نیز باشد.
از دیدگاه توسعه دهندگان React Native با وجود اینکه خروجی شباهت بسیار زیادی با نسخه بومی تولید شده دارد اما برخی از قسمت ها در IOS و Android متفاوت است البته اینها به عنوان محدودیت نیستند و شرکت Facebook در حال تلاش برای حل این نوع استثنا است از طرفی جامعه بزرگ برنامه نویسان که در صفحه Github React Native میتوان مشاهده کرد تعداد بسیار زیاد Distributer (برنامه نویسانی که در توسعه آن همکاری میکنند) اشاره کرد که خود باعث میشود سرعت رشد و پایداری یک تکنولوژی بسیار زیاد باشد .
در میان رقابت شدیدی که میان Flutter و React Native وجود دارد سرعت توسع یکی از ادعاهای Flutter است که در هنگام توسعه تغییرات را با سرعت بسیار زیادی میتوان مشاهده کرد که برنامه نویس به سادگی میتواند آخرین تغییرات را تست کند.
Flutter از ساختاری کاملا بومی در فعالیت های مختلف یک Application به صورت Native از قبیل scrolling, navigation, icons , font اشاره کرده با اینکه زبان Dart با همه توانایی هایی که در سرعت بالا و عدم استفاده از Compiler مانند React Native از مزیت هایش اشاره کرد ، در نمونه زیر میتوان نمونه ای از Hot Reload را مشاهده کنید در این ویدئو ببنید
یک نمونه از اپ مویایل ساخته شده با Flutter
با وجود جامعه بزرگی که در برنامه نویسان Android وجود دارد تمایل آنها برای انتخاب Flutter به عنوان یک تکنولژی جدید از React Native بیشتر است چرا که انتخاب یک محصول دیگر از کمپانی محبوبشان بسیار ساده تر است و با ساختارهای قدیمی که در گذشته با آن کار میکردند تطابق نزدیکی دارد. با این وجود در ایران طرفداران React Native بسیار زیاد است و جای بحثی وجود ندارد که React Native که از نظر معماری بسیار قوی بوده و برخی از اپلیکیشن های محبوب دنیا که شاید شما هم از آن استفاده میکنید از React Native استفاده می کنند مثلا Instagram , Skype با این وجود هزینه تولید و نگهداری از مهم ترین عوامل انتخاب یک روش طراحی است که با استفاده از تکنولوژی های Cross Platform موفق تر هستید.
بعد از گذشت چند سال از رقابت این دو قهرمان بسیاری از برنامه نویسان native کار به سمت flutter مهاجرت کرده اند و معتقد هستند در برخی از موارد از Native هم سریع تر است چرا که Flutter مستقیما توسط گوگل ساخته و پشتیبانی میشود و با زبان محبوب Dart که یادگیری بسیار ساده تر از جاوا اسکریپت را دارد میتوان اپ های موبایلی بسیار با کیفیتی ساخت.