ری اکت نیتیو (به انگلیسی React Native) یک فریم ورک نرم‌افزار تلفن همراه منبع باز ایجاد شده توسط متا است.[۳] این برنامه برای توسعه برنامه‌های کاربردی اندروید،[۴] iOS و UWP[۵] با امکان استفادهٔ توسعه دهندگان از React به همراه قابلیت‌های نیتیو پلتفرم مورد نظر مورد استفاده قرار می‌گیرد.

ری اکت نیتیو
توسعه‌دهنده(ها)Facebook and community
انتشار اولیه۲۶ مارس ۲۰۱۵؛ ۹ سال پیش (۲۰۱۵-26}})[۱]
انتشار پایدار
۰٫۵۹٫۹ / ۵ ژوئن ۲۰۱۹؛ ۵ سال پیش (۲۰۱۹-05}})[۲]
مخزنhttps://github.com/facebook/react-native
نوشته‌شده باJavaScript, Java, C++, Objective-C, Objective-C++, Python
مجوزMIT License
وبگاه

ری اکت نیتیو در زمینه فرانت اند کاربرد دارد.

تاریخ

ویرایش

در سال ۲۰۱۲، مارک زاکربرگ اظهار داشت: «بزرگترین اشتباهی که ما به عنوان یک شرکت انجام دادیم، بیش از حد بر روی HTML در مقایسه با نیتیوها کار کردیم».[۶] او قول داد که متا به زودی یک تجربه بهتر تلفن همراه را ارائه دهد.

در داخل متا، اردن واکی راهی را برای تولید عناصر UI برای IOS از یک پس زمینه جاوا اسکریپت پیدا کرد.[۷] آنها تصمیم گرفتند یک هکاتون داخلی را برای تکمیل این نمونه اولیه بسازند تا قادر به ساخت برنامه‌های نیتیو با این تکنولوژی باشند.[۸]

پس از چند ماه توسعه، متا اولین نسخه را برای پیکربندی ری اکت جاوا اسکریپت در سال ۲۰۱۵ منتشر کرد. در جریان یک بحث فنی،[۹] کریستوفر چودو توضیح داد که متا از برنامه ری اکت نیتیو برای تولید برنامه گروه و برنامه مدیریت آگهی خود استفاده کرده‌است.[۱۰]

پیاده‌سازی

ویرایش

اصول کار React Native تقریباً با React یکسان است، به جز اینکه ری اکت نیتیو، DOM را از طریق DOM مجازی دستکاری نمی‌کند. این برنامه در فرایند پس زمینه (که جاوا اسکریپت نوشته شده توسط توسعه دهندگان را تفسیر می‌کند) به‌طور مستقیم در دستگاه انتها (دیوایس کاربر) اجرا می‌شود و با پلتفرم نیتیو از طریق یک سریال سازی، اسینکرونس و پل پردازش دسته‌ای ارتباط برقرار می‌کند.[۱۱][۱۲]

React Native از HTML استفاده نمی‌کند. در عوض، پیام‌هایی از جاوا اسکریپت برای اداره نمایشهای نیتیو استفاده می‌شود.

مثال Hello World

ویرایش
 
سلام دنیا

یک برنامه Hello, World که در React Native این گونه است:

// App.js
import React, {Component} from 'react';
import {Text, View} from 'react-native';

export default class App extends Component {
  render() {
    return (
      <View>
        <Text>
          Hello, World.
        </Text>
      </View>
    );
  }
}

// index.js
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';

22 AppRegistry.registerComponent(appName, () => App);

منابع

ویرایش
  1. "React Native: Bringing modern web techniques to mobile".
  2. "Releases – Facebook/React". GitHub.
  3. "Git-hub React-Native".
  4. "Android Release for React Native".
  5. Windows Apps Team (April 13, 2016). "React Native on the Universal Windows Platform". blogs.windows.com. Retrieved 2016-11-06.
  6. "Zuckerberg's Biggest Mistake? 'Betting on HTML5'". Mashable. Retrieved 7 April 2018.
  7. "React (JavaScript library)".
  8. "A short Story about React Native". Archived from the original on 17 January 2018. Retrieved 16 January 2018.
  9. Christopher, Chedeau. "A Deep Dive into React Native". YouTube. Retrieved 16 January 2018.
  10. "React Native: Bringing modern web techniques to mobile".
  11. "Bridging in React Native". 14 October 2015. Retrieved 16 January 2018.
  12. "React Native Framework". Archived from the original on 14 May 2019. Retrieved 15 June 2019. Thursday, 13 September 2018