اپلیکیشنهای موبایل و وباپلیکیشنها نه تنها از لحاظ ظاهری با یکدیگر متفاوت هستند، بلکه نحوهٔ کدنویسی آنها نیز با یکدیگر متفاوت است که چنین مسألهای منجر به این میگردد تا شرکتها یا استارتاپهایی که هم نیاز به سایت دارند و هم تمایل دارند تا اپلیکیشنی اختصاصی در اختیار کاربرانشان قرار دهند، دو پروژهٔ مجزا از یکدیگر تعریف کرده و دو روش کدنویسی متمایزی را دنبال کنند.
روز سه شنبه، چهارم فروردین ۱۳۹۴، فیسبوک اعلام کرد که فریمورکی اپنسورس تحت عنوان React Native به دنیا عرضه کرده است که این امکان را در اختیار توسعهدهندگان قرار میدهد تا از لایبرری جاوااسکریپتی خود تحت عنوان React که برای پروژههای وب استفاده میشود، برای توسعهٔ اپلیکیشنهای موبایل نیز استفاده کنند.
به طور کلی، توسعهدهندگان طراحی وب اپلیکیشن را به مراتب سادهتر از طراحی اپلیکیشن برای ابزارهای هوشمندی همچون موبایل و تبلت قلمداد میکنند و این در حالی است که طراحی چنین فریمورکی منجر بدین خواهد شد تا سهولت طراحی وب اپلیکیشن به حوزهٔ موبایل هم کشیده شود به طوری که توسعهدهندگان این امکان را خواهند داشت تا برای پلتفرمهای آیاواس و اندروید اپلیکیشن بنویسند. به گفتهٔ یکی از برنامهنویسان فیسبوک:
ما میخواهیم زمانی که با استفاده از لایبرری ریئکت پروژهای تحت وب اجرا میکنیم، تجربهٔ کاربری ابزارهای هوشمند با تجربهٔ توسعهدهندگان ادغام گردد تا با کمی تلاش بتوانیم پروژهٔ تحت وب را به یک اپلیکیشن موبایل مبدل سازیم. شعاری که توسعهدهندگان زبان برنامهنویسی جاوا دارند این است که «یک بار بنویس و همه جا اجراش کن» اما این در حالی است که شعار ما حاکی از آن است که «یک بار یاد بگیر سپس برای هر پلتفرمی که خواستی کدنویسی کن».
در واقع، کاری که این فریمورک قرار است انجام دهد این است که کار برای توسعهدهندگان آسانتر شود. ایشان یک لایبرری را یاد میگیرند و از آن برای وب و موبایل استفاده میکنند. به عنوان نمونه سورسکد نوشته شده با این فریمورک داریم:
import React, { Component } from 'react';
import { Image, ScrollView, Text } from 'react-native';
class AwkwardScrollingImageWithText extends Component {
render() {
return (
<ScrollView>
<Image
source={{uri: 'https://i.chzbgr.com/full/7345954048/h7E2C65F9/'}}
style={{width: 320, height:180}}
/>
<Text>
On iOS, a React Native ScrollView uses a native UIScrollView.
On Android, it uses a native ScrollView.
On iOS, a React Native Image uses a native UIImageView.
On Android, it uses a native ImageView.
React Native wraps the fundamental native components, giving you
the performance of a native app, plus the clean design of React.
</Text>
</ScrollView>
);
}
}
در پایان هم لازم به ذکر است که پروژهٔ React ابتدا برای اهداف اختصاصی شرکت فیسبوک طراحی شد اما به مرور، در کنار سایر فریمورکهای جاوااسکریپتی مثل آنگولار، بکبون و ... قرار گرفت (برای شروع کار با فریمورک ریئکت نیتیو، میتوانید به لینک React Native Getting Started Guide مراجعه نمایید).