در این مقاله ، من مقایسه ای را بین چارچوب های Cordova و React Native ارائه خواهم داد. این کار در درجه اول بر روی نمای کلی عملکرد ساخت ، عملکرد برنامه و قابلیت های رفع اشکال است.
Apache Cordova
Apache Cordova ، که قبلاً با نام Adobe PhoneGap شناخته می شد ، یک چارچوب open Source برای ایجاد برنامه های تلفن همراه ترکیبی Cross-platform با استفاده از فن آوری های استاندارد وب مانند HTML5 ، CSS3 و JavaScript است. Cordova سالهای زیادی است که با منابع زیادی در اینترنت در دسترس است. علاوه بر این ، افزونه های زیادی برای تقویت برنامه شما در دسترس است.
React Native
React Native ، توسط Facebook ایجاد شده، مانند Cordova یک چارچوب منبع باز است اما برای ایجاد موبایل اپلیکیشن Cross-platform بومی است. نکته اساسی در ساخت برنامه های React Native استفاده از الگوی طراحی React است. هنگام کامپایل برنامه ، کامپوننت های React UI به المان های UI بومی پلت فرم تبدیل می شوند. به عنوان مثال ، کامپوننت React Native’s Image به آبجکت iOS UIImageView تبدیل می شود.
React Native شرایطی را مهیا کرده است که برنامه نویسان وب بتوانند اپلیکیشن هایی بسازند که دقیقا شبیه به برنامههای نوشته شده به زبان Native رفتار کند. از آنجایی که برنامه نویسان زیادی جاوا اسکریپت را دوست دارند و از آن استفاده میکنند، تجربه کار با React Native میتواند لذت بخش باشد.
برنامههای React Native مانند React با زبان جاوا اسکریپت و JSX نوشته میشوند. سپس میتوان از این کدها برای اندروید و iOS خروجی گرفت. دقت داشته باشید برنامه ای که با React Native مینویسید حالت Webview نداشته و کامپوننتهای واقعی UI را تولید میکند. در واقع اپلیکیشن شما هیچ تفاوتی با سایر برنامههای موبایل که با زبان Native نوشته شده اند نخواهد داشت.
چرا قاعده نوشتاری React native شبیه قاعده نوشتاری استاندارد در جاوا اسکریپت نیست؟
اگر یک توسعه دهنده وب هستید که تنها با نسخه های قدیمی تر جاوااسکریپت کار کرده اید قسمتی از نمونه کد بالا را احتمالا به شکل قواعد نوشتاری جاوا اسکریپت نمیدانید. در نسخه جدید جاوا اسکریپت ES۶ قابلیت های جدیدی افزوده شده است که در حال حاضر بخشی از استاندارد فعلی است. ES۶ توسط مرورگر های قدیمی پشتیبانی نمی شود به همین دلیل است که شما به استفاده از یک transpiler همچون Babel نیاز دارید.
به لطف transpiler های بابل در ری اکت نیتیو بسیاری از ویژگیهای ES۶ پشتیبانی می شود. بنابراین شما می توانید از این تکنولوژی بدون هیچ استرسی از بابت سازگاری در دستگاه های مختلف استفاده کنید. برخی از قابلیت های ES۶ آورده در مثال بالا عبارتند از import, from و class.
همانطور که میدانید اندروید و iOS، سهم بزرگی از بازار موبایل را تصاحب کردهاند. زبان رسمی ساخت اپلیکیشن برای اندروید جاوا است ( البته چند وقتی میشود که کاتلین هم به آن اضافه شده است ) همینطور اپلیکیشنهای iOS از زبان Swift استفاده میکنند. برنامه هایی که به کمک جاوا و Swift نوشته میشوند را به اصطلاح بومی یا Native مینامند. احتمالا برایتان سوال پیش میآمده باشد که چرا با وجود زبانهای نیتیو باید سراغ فریم ورکها و واسطه هایی مثل React Native برویم. در ادامه مزایای استفاده از React Native را مشاهده میکنید:
1 – یک بار بنویسید، چند جا استفاده کنید
معمولا کسانی که برنامه نویسی موبایل را شروع میکنند، بین اندروید و iOS یکی را انتخاب کرده و در آن حوزه متخصص میشوند. کمتر برنامه نویس اندرویدی پیدا میشود که برای گوشیهای آیفون هم بتواند اپلیکیشن بسازد. در این حالت برنامه نویس برای برنامه نویسی در یک سیستم عامل خاص، باید زبان Native آن سیستم عامل را یاد بگیرد. این انحصاری بودن ممکن است کمی آزاردهنده باشد. اما React Native به شما اجازه میدهد با زبان جاوا اسکریپت برنامه موبایل بنویسید و React این کدها را تبدیل به زبان Native کرده و خروجی اندروید و iOS به شما میدهد.
2 – امکان استفاده از زبانهای Native کنار React
شاید در طول پروژه نیاز داشته باشید که بعضی از بخشهای برنامه را با زبانهای Native جاوا و سوئیفت بنویسد. React این امکان را فراهم میکند تا هر زمانی که دوست داشتید از این زبانها در کنار جاوا اسکریپت استفاده کنید. همینطور میتوانید React Native را به پروژههای قبلی خودتان اضافه کنید و حتما لازم نیست که کل مسیر را از اول با React بروید.
3 – صرفه جوبی در زمان و هزینه
از آنجایی که برنامههای نوشته شده با ری اکت خروجیهای مختلفی مثل اندروید، iOS و وب به شما میدهند، دیگر لازم نیست که شرکتها چند برنامه نویس برای پلتفرمهای مختلف استخدام کنند. این مزیت React Native هزینهها را تا حد زیادی کاهش میدهد و روند توسعه اپلیکیشنها را تسریع میکند. تمام کسب و کارها دوست دارند تا جای ممکن هزینههای خود را کم کنند، مخصوصا استارتاپها که با منابع مالی محدودی مواجه هستند. با استفاده از ری اکت نیتیو میتوانید در زمان و هزینه خود صرفه جویی کنید.
4 – پشتیبانی قوی توسط تیم بزرگی از برنامه نویسان
فیس بوک در سال 2015 فریم ورک React Native را معرفی کرد و تا امروز هم پشتیبانی آن را به عهده گرفته است. React Native به صورت متن باز (Open Source) منتشر شده و کدهای آن در گیت هاب وجود دارد. در سال 2018 React Native در گیت هاب رتبه دوم بیشترین مشارکت را بین تمام Repositoryها کسب کرد. همینطور انجمنها و برنامه نویسان زیادی در دنیا هستند که در صورت بروز مشکل میتوانید روی کمک آنها حساب باز کنید.