React Native یک فریم ورک UI متن باز برای ساخت اپلیکیشن موبایل است که توسط فیس بوک معرفی و عرضه شده است. به کمک ری اکت نیتیو و زبان جاوا اسکریپت میتوانیم برای اندروید، آی اواس، وب و حتی UWP ( پلتفرمی برای ساخت برنامههای تحت ویندوز، ویندوز موبایل، Xbox و سایر محصولات مایکروسافت ) اپلیکیشن بسازیم. در این مقاله بررسی میکنیم که React Native چیست و چه مزایایی دارد.
دنیای جذاب جاوا اسکریپت
جاوا اسکریپت زبان محبوبی برنامه نویسان است. با قدرت و انعطافی که جاوا اسکریپت دارد تقریبا هر کاری میشود با آن کرد. برای مثال پویاسازی صفحات وب به کمک جاوا اسکریپت و کتابخانههایی مثل Jquery وغیره انجام میشود.
جاوا اسکریپت در سمت سرور یک محیط اجرایی به نام Node.js دارد و فریم ورک هایی مانند Express.js به برنامه نویس کمک میکنند سمت سرور هم با جاوا اسکریپت کار کند. با جاوا اسکریپت و به همراهی HTML میتوان بازیهای تحت وب ساخت. همینطور به کمک React Native و زبان جاوا اسکریپت میتوان اپلیکیشن موبایل برای پلتفرمهای مختلف ساخت.
React Native چیست؟
بر پایه یکی دیگر از سرویسهای محبوب فیس بوک یعنی React میباشد که در طراحی رابط کاربری (UI) استفاده میشود. ولی برخلاف React که تمرکز اصلی آن روی مرورگر است و برای ساخت اپلیکیشنهای موبایل استفاده میشود.
به عبارت دیگر React Native شرایطی را مهیا کرده است که برنامه نویسان وب بتوانند اپلیکیشن هایی بسازند که دقیقا شبیه به برنامههای نوشته شده به زبان Native رفتار کند. از آنجایی که برنامه نویسان زیادی جاوا اسکریپت را دوست دارند و از آن استفاده میکنند، تجربه کار با React Native میتواند لذت بخش باشد.
برنامههای آن مانند React با زبان جاوا اسکریپت و JSX نوشته میشوند. سپس میتوان از این کدها برای اندروید و iOS خروجی گرفت. دقت داشته باشید برنامه ای که با React Native مینویسید حالت Webview نداشته و کامپوننتهای واقعی UI را تولید میکند. در واقع اپلیکیشن شما هیچ تفاوتی با سایر برنامههای موبایل که با زبان Native نوشته شده اند نخواهد داشت.
چرا باید از React Native استفاده کنیم؟
همانطور که میدانید اندروید و iOS، سهم بزرگی از بازار موبایل را تصاحب کردهاند. زبان رسمی ساخت اپلیکیشن برای اندروید جاوا است ( البته چند وقتی میشود که کاتلین هم به آن اضافه شده است ) همینطور اپلیکیشنهای iOS از زبان Swift استفاده میکنند. برنامه هایی که به کمک جاوا و Swift نوشته میشوند را به اصطلاح بومی یا Native مینامند. احتمالا برایتان سوال پیش میآمده باشد که چرا با وجود زبانهای نیتیو باید سراغ فریم ورکها و واسطه هایی مثل React Native برویم. در ادامه مزایای استفاده از React Native را مشاهده میکنید:
۱ – یک بار بنویسید، چند جا استفاده کنید
معمولا کسانی که برنامه نویسی موبایل را شروع میکنند، بین اندروید و iOS یکی را انتخاب کرده و در آن حوزه متخصص میشوند. کمتر برنامه نویس اندرویدی پیدا میشود که برای گوشیهای آیفون هم بتواند اپلیکیشن بسازد. در این حالت برنامه نویس برای برنامه نویسی در یک سیستم عامل خاص، باید زبان Native آن سیستم عامل را یاد بگیرد. این انحصاری بودن ممکن است کمی آزاردهنده باشد. اما React Native به شما اجازه میدهد با زبان جاوا اسکریپت برنامه موبایل بنویسید و React این کدها را تبدیل به زبان Native کرده و خروجی اندروید و iOS به شما میدهد.
۲ – امکان استفاده از زبانهای Native کنار React
شاید در طول پروژه نیاز داشته باشید که بعضی از بخشهای برنامه را با زبانهای Native جاوا و سوئیفت بنویسد. React این امکان را فراهم میکند تا هر زمانی که دوست داشتید از این زبانها در کنار جاوا اسکریپت استفاده کنید. همینطور میتوانید React Native را به پروژههای قبلی خودتان اضافه کنید و حتما لازم نیست که کل مسیر را از اول با React بروید.
۳ – صرفه جوبی در زمان و هزینه
از آنجایی که برنامههای نوشته شده با ری اکت خروجیهای مختلفی مثل اندروید، iOS و وب به شما میدهند، دیگر لازم نیست که شرکتها چند برنامه نویس برای پلتفرمهای مختلف استخدام کنند. این مزیت React Native هزینهها را تا حد زیادی کاهش میدهد و روند توسعه اپلیکیشنها را تسریع میکند. تمام کسب و کارها دوست دارند تا جای ممکن هزینههای خود را کم کنند، مخصوصا استارتاپها که با منابع مالی محدودی مواجه هستند. با استفاده از ری اکت نیتیو میتوانید در زمان و هزینه خود صرفه جویی کنید.
۴ – پشتیبانی قوی توسط تیم بزرگی از برنامه نویسان
فیس بوک در سال ۲۰۱۵ فریم ورک React Native را معرفی کرد و تا امروز هم پشتیبانی آن را به عهده گرفته است. React Native به صورت متن باز (Open Source) منتشر شده و کدهای آن در گیت هاب وجود دارد. در سال ۲۰۱۸ React Native در گیت هاب رتبه دوم بیشترین مشارکت را بین تمام Repositoryها کسب کرد. همینطور انجمنها و برنامه نویسان زیادی در دنیا هستند که در صورت بروز مشکل میتوانید روی کمک آنها حساب باز کنید.
کدام برندها از React Native استفاده میکنند؟
استفاده از React Native مزایای زیادی به همراه دارد و شرکتهای باهوش در دنیا این مزایا را کشف کرده اند. بعضی از معروفترین سرویس هایی که هر روز از آنها استفاده میکنیم به React Native اعتماد کرده اند و در بخشهای مختلف سرویس خود از این فریم ورک استفاده کرده اند. در ادامه چند مورد از مطرحترین برندهایی که از React Native استفاده میکنند را معرفی میکنیم:
۱ – فیس بوک
مگر میشود تولیدکننده یک محصول از آن محصول استفاده نکند؟ فیس بوک React Native را به عنوان یک راه حل برای بعضی از مشکلاتی که درون سازمان داشت معرفی کرد. بعد قدرت این فریم ورک را در اپلیکیشن فیس بوک و اپلیکیشن مدیریت تبلیغات فیس بوک به رخ بقیه کشید. همینطور در سرویس آمارگیر خود با نام Facebook Analytics از این فریم ورک استفاده کرد.
۲ – اینستاگرام
اینستاگرم نیازی به معرفی ندارد. این شبکه اجتماعی رکورد ۱ میلیارد کاربر را در جهان زد و محبوبترین سرویس در حوزه اشتراک تصویر و ویدئو است. تغییر پلتفرم و انتقال کل برنامه به React Native چالش بزرگی برای توسعه دهندگان اینستاگرام بود. اما اینستاگرام این ریسک را قبول کرد و نتیجه آن را هم دید. بعد از این تغییر نگهداری هر دو نسخه اندروید و آی اوس این اپلیکیشن بسیار راحتتر شد.
۳ – Discord
اگر عاشق بازیهای رایانه ای باشید، احتمالا اسم Discord به گوشتان خورده است. یک شبکه اجتماعی بزرگ برای چت بین بازیکنها که قابلیتهای بسیاری متنوعی دارد. نکته جالبی که درباره Discord باید بدانید این است که نسخه اندروید و آی اوس این برنامه ۹۸% کد مشترک دارند و Discord یک نمونه پیاده سازی موفق به حساب میآید.
۴ – SoundCloud
SoundCloud یکی از معروفترین سرویسهای اشتراک انواع موسیقی و فایل صوتی است که کاربران بسیار زیادی دارد. این شرکت تعداد زیادی توسعه دهنده iOS داشت که همین مورد باعث میشد اختلاف بین خروجی اندروید و خروجی iOS برنامه کمی زیاد شود. آنها بعد از انجام آزمایشهای مختلف به این نتیجه رسیدند که React Native گزینه ایده آلی بوده و سرویس خود را به طور کامل تحت این پلتفرم طراحی کردند.
جمع بندی
در این مطلب با هم بررسی کردیم که React Native چیست و استفاده از آن چه مزایایی دارد. React Native به ما اجازه میدهد با کمک زبان جاوا اسکریپت رابط کاربری اپلیکیشنهای موبایل را طراحی کنیم. بدون اینکه نیاز باشد به زبانهای Native برنامه نویسی موبایل مثل جاوا یا Swift مسلط باشیم. در واقع قرار نیست این فریم ورک جای زبانهای بومی یا Native را بگیرد، بلکه یک راه حل خوب برای برنامه نویسان موبایل و علاقه مندان به جاوا اسکرپیت است تا به کمک این زبان دوست داشتنی برای موبایل هم برنامه بسازند.