Native یک فریمورک توسعهدهنده برنامه موبایلی است که اجازه توسعه به برنامههای چند پلتفرمی ios و اندروید را با استفاده از عناصر بومی UI میدهد.
پایه این فریمورک زمان اجرای JavaScriptCore و مبدلهای Babel است. React Native از ویژگی های جدید (JavaScript ES6) مانند توابع arrow و async/await و غیره پشتیبانی میکند.
این فریمورک معروف برای توسعه برنامه موبایل در تابستان سال 2013 بعنوان پروژه hackathon داخلی Facebook شروع بکار کرد. اولین پیش نمایش عمومی آن در ماه ژانویه سال 2015 در کنفرانس Reactjs و کنفرانس ماه مارس سال 2015 منتشر شد و Facebook فریمورک React Native را در GitHub متنباز و در دسترس عموم قرار داد.
از آن به بعد این فریمورک در موارد بسیاری در بین توسعهدهندگان و سازمانها بخاطر تواناییاش برای ساخت برنامههای native و رابط کاربری عالی پذیرفته شد.
اولین امتیاز این فریمورک این است که باعث صرفهجویی در زمان میشود. در ابتدا توسعهدهندگان را از تکرار بعد از هر تغییری بازمیدارد، به این دلیل که خود برنامه در مرحله بهبود فوراً بارگذاری مجدد را انجام میدهد. یک برنامهنویس Android میتواند این رنج را درک کند.
این قالب کاری روش ساخت یک پایه کد تنها را که میتواند برای Android و iOS ترکیب شود، تقویت میکند. این باعث میشود که مهندسان برای کدنویسی انرژی کمتری صرف کنند.
یک برنامه موبایل که با این قالب کاری تصویرسازی شده است، کالیبر بالا، اجرای فوقالعاده و تجربه کاربری سادهتری را تضمین میکند.
در کنار اینها، یک مهندس جاوااسکریپت ماهر در تمام زمینهها میتواند یک برنامه تطبیقپذیر را با استفاده از این فریمورک توسعه دهد، بدون اینکه درگیر اکوسیستم و مشخصههای زبانی هریک از OSها بشود.
رابط کاربری کاملاً ریسپانسیواست و برای حساب ارتباطات همزمان جاوااسکریپت با شرایط محلی کاملاً روان است.
برنامههای آن، زمان بارگذاری سریعتری نسبت به برنامههایی که با مدل هیبریدی نوشته میشوند، دارند.
رفع نواقص برنامهای که با React Native نوشته میشود، روند پیچیدهای است. شما باید به دنبال روشی بگردید که React Native با آن کد تولید میکند و تصمیم بگیرید که با آن چهکار کنید.
گاهی اوقات، مختصات کتابخانه محلی درون یک برنامه React Native نیاز به تعداد زیادی پیکربندی دارد. برای مثال یک خروجی Google map تبدیل به یک کار طولانیمدت میشود درحالیکه همین کار در برنامههای Android Native فقط یکلحظه طول میکشد.
فریم ورک react native یک الگوی نوظهور بوده و هنوز به مرحله تکامل نرسیده است. با این وجود، مزایای آن نسبت به معایب بالقوه، بیشتر است و از این رو، میتواند جایگزین مناسبی برای سایر فریم ورکهای مورد استفاده در طراحی اپلیکیشنهای موبایل باشد.
در نگاه اول شاید برخی تصور کنند که React Native بسیار شبیه به React یا همان ReactJs است اما تفاوتهای زیادی بین این دو وجود دارد. در حقیقت برای شروع کار با React Native، باید با مفاهیم پایه و اساسی React آشنا باشید تا بتوانید با این فریمورک برنامه نویسی کنید. از طرفی هم اگر به React مسلط باشید و بخواهید که با React Native برنامه بسازید، باید تفاوتهای بین این دو را بدانید وگرنه در ادامهی مسیر به مشکلات جدی برخورد میکنید به طوری که ممکن است نتونید پروژه خود را به سرانجام برسانید. پس در این بخش به برخی از این تفاوتها اشاره میکنیم.
ری اکت نیتیو یک فریمورک است، در حالی که React یک کتابخانهی جاوا اسکریپت برای وب است. زمانی که میخواهید یک برنامهی جدید با React شروع کنید، باید ماژولهای موردنیاز برای توسعهی برنامه را به صورت جدا و یکی پس از دیگری نصب کنید تا بتوانید از آنها استفاده کنید. اما اگر کار را با React Native شروع کنید، میبینید که اغلب ابزارهایی که نیاز دارید آماده است و میتوانید به راحتی در محیط توسعه، کدنویسی کنید.
فیسبوک یکی از محبوبترین اپهایی است که توسط react native ایجاد شده است و این مسئله چندان تعجب برانگیز نیست به این دلیل که زادگاه این زبان برنامهنویسی، خود فیسبوک است.
اسکایپ نیز نمونهای دیگر از اپهای موبایل مبتنی بر react native است. در سال 2017، اسکایپ اعلام کرد که اپ جدید و کاملی را بر اساس react native طراحی کرده و مشکلات مربوط به نسخههای قبلی را در آن از بین برده است.
اپ Walmart برای اندروید و ios، نمونهای دیگر از اپلیکیشنهای مبتنی بر react native است.
پینترست، پیش از این توسطGestaltپشتیبانی میشد. از آنجایی که هم Gestalt و هم React Native هر دو توسط React پشتیبانی میشوند، مهندسین Pinterest این دو را برای نسخههای جدید اپ Pinterest ادغام کردند تا از قابلیتهای هر دو فریم ورک استفاده کنند.
Ionic و cordova تعدادی از فریمورکهایی هستند که برای اهداف مشابه استفاده میشوند. آنها بهاصطلاح برنامههای هیبریدی تولید میکنند. آنها از نوآوریهای استاندارد وب استفاده میکنند و بهصورت محتواهای اساسی native مثل WebView نگهداری میشوند.
بههیچ عنوان شباهتی با React Native ندارند، به این دلیل که آن یک پوشش کامل برای توسعه native است.