React Native چیست؟

React Native یک framework جاوااسکریپت است که بر پایه React ،که یک کتابخانه جاوااسکریپت برای ساخت UI می باشد، است اما بجای هدف قرار دادن مرورگر،پلت فرم های موبایل را هدف قرار می دهد به بیان دیگر توسعه دهندگان موبایل می توانند موبایل اپلیکیشن هایی بنویسند که به لطف کتابخانه جاوااسکریپت کاملا Native (بومی) به نظر برسند علاوه بر این ها چون کدی که می نویسید را می توانید بین پلت فرم های مختلف به اشتراک بگذارید امکان توسعه اپلیکیشن هم برای اندروید و هم برای iOS را بصورت همزمان فراهم می کند.

مشابه React برای وب، اپلیکیشن های React Native را داریم که از ترکیب جاوااسکریپت و XML استفاده می کند که با عنوان JSX شناخته می شود بنابراین درواقع پل React Native، API های native در Objective-C (برای iOS) یا جاوا (برای اندروید) را فراخوانی می کند بنابراین اپلیکیشن شما با استفاده از کامپوننت های UI موبایل ،و نه ویو های وب، رندر می شوند و مانند هر اپلیکیشن موبایل دیگری خواهند بود. React Nativeاز interface های جاوااسکریپت برای پلت فرم های API استفاده می کند بنابراین اپلیکیشن های React Native شما می توانند به مواردی مانند دوربین موبایل و یا مکان کاربر دسترسی داشته باشند.

درحال حاضر React Native هم از اندروید و هم از iOS پشتیبانی میکند و پتانسیل آن را دارد تا به پلت فرم های آینده نیز توسعه پیدا کند. مواردی که درحال حاضر از React Native در اپلیکیشن های خود استفاده می کنند عبارت اند از فیسبوک،Palantir و TaskRabbit میباشد.

مزایای React Native

React Native در واقع از استاندارد های پلت فرم میزبان برای رندرکردن API ها استفاده می کند که همین باعث می شود از متد های موجود برای اپلیکیشن های cross-platform  برتر باشد. متدهای موجود برای نوشتن اپلیکیشن های موبایل از ترکیب جاوااسکریپت،HTML و CSS استفاده می کنند اگرچه این دیدگاه کار می کند اما با اشکالاتی مخصوصا در زمینه کارایی همراه است علاوه براین معمولا به مجموعه المان های UI مخصوص آن پلتفرم دسترسی ندارد. این فریم ورک ها معمولا سعی می کنند که از المان های حقیقی پلت فرم های موبایل با استفاده از مهندسی معکوس تقلید کنند که نهایتا نتیجه کاملا شبیه المان های حقیقی نیست و تلاش زیادی هم صرف این کار می شود.

برخلاف مواردی که گفته شد، React Native، Markup های شما را به المان های بومی و حقیقی ترجمه می کند و از ابزار موجود برای ویو ها در هر پلتفرمی که با آن کار می کنید استفاده می کند علاوه بر این React از ترد UI اصلی جداگانه کار می کند بنابراین اپلیکیشن شما بدون استفاده زیاد از حافظه، Performance بالاتری خواهد داشت. چرخه بروزرسانی در React native مانند React است یعنی زمانی که Props یا State تغییر کند، React native مجددا ویو را رندر می کند. تفاوت اصلی بین React و React native این است که React native بجای استفاده از HTML و CSS از کتابخانه های UI موجود در پلتفرم میزبان استفاده می کند.

برای توسعه دهندگانی که در وب به کار با React عادت کرده اند این موضوع به این معنی است که شما می توانید در عین استفاده از ابزار های مشابه، اپلیکیشن های موبایلی بنویسید که کارایی،ظاهر و حس یک اپلیکیشن Native را داشته باشند علاوه بر این React Native باعث پیشرفت در توسعه اپلیکیشن های موبایل در دو حوزه تجربه توسعه دهنده و پتانسیل توسعه اپلیکیشن های Cross-Platform شده است.

تجربه توسعه دهنده

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

برای نمونه چون React Native از جنس جاوااسکریپت است برای دیدن تغییرات نیاز ندارید تا اپلیکیشن خود را مجددا Build کنید بلکه مانند هر وب اپلیکیشن دیگری فقط کافی است Command+R را فشار دهید بنابراین تمام زمان هایی که منتظر Build شدن اپلیکیشن می ماندید ذخیره می شود و در عوض چرخه تعامل سریع React Native احساس خوبی را به شما خواهد داد.

علاوه براین ها React Native به شما امکان استفاده از ابزار های هوشمند Debug کردن و گزارش خطا را می دهد اگر شما با ابزار های توسعه ای Safari و یا Chrome راحت هستید از اینکه می توانید از آن ها برای توسعه موبایل اپلیکیشن نیز استفاده کنید خوشحال خواهید شد. همچنین می توانید از هر ویرایشگر متن که برای ویرایش جاوااسکریپت ترجیح می دهید، نیز استفاده کنید. React Native شما را مجبور نمی کند که حتما از XCode برای iOS یا اندروید استدیو برای توسعه اندورید استفاده کنید.

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

استفاده مجدد از کد و به اشتراک گذاری دانش

کار با React Native بطور چشمگیری منابع مورد نیاز برای ساخت اپلیکیشن های موبایل را کاهش می هد. هر توسعه دهنده ای که نوشتن کد های React را بلد باشد می تواند وب،iOS و اندروید را با یک دانش هدف قرار دهند.

براساس دانش به اشتراک گذاشته شده بسیاری از کد شما نیز می تواند به اشتراک گذاشته شود. همه ی کد شما Cross-platform نخواهد بود و براساس عملیاتی که روی یک پلتفرم خاص نیاز دارید ممکن است نیاز داشته باشید از Objective-C یا جاوا استفاده کنید اما با React Native استفاده مجدد از کد در پلت فرم های مختلف بطور شگفت انگیزی آسان است. برای مثال اپلیکیشن Facebook Ads Manager برای اندروید 87% از کد خود را با نسخه iOS به اشتراک گذاشته است.

ریسک ها و اشکلات

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

از آنجایی که Reat Native یک لایه به پروژه شما اضافه می کند دیباگ کردن پروژه بخصوص وقتی که با React و پلتفرم میزبان همراه است را سخت تر می کند.

خلاصه

React Native یک فریم ورک هیجان انگیز است که توسعه دهندگان وب را قادر می سازد تا با دانش جاوااسکریپتی خود اپلیکیشن های موبایل قدرتمند بسازند و توسعه سریع تر اپلیکیشن های موبایل و به اشتراک گذاری کارآمد تر کد در iOS، اندروید و وب بدون صدمه زدن به تجربه کاربر یا کیفیت اپلیکیشن را ارائه می دهد اما درمقابل هنوز جوان و درحال پیشرفت است. اگر تیم شما می تواند کار کردن با یک تکنولوژی جدید را مدیریت کند و می خواهید اپلیکیشن های موبایلی را توسعه دهید که روی بیش از یک پلتفرم اجرا می شوند بهتر است سراغ React Native بروید.

 

نظر شما

0 نظر

نظری ثبت نشده است