রিঅ্যাক্ট নেটিভ: সংশোধিত সংস্করণের মধ্যে পার্থক্য
প্রয়োগ অংশ তৈরী করা হলো। |
তথ্য বাক্স যোগ করা হলো। |
||
১ নং লাইন: | ১ নং লাইন: | ||
{{Infobox software |
|||
| name = রিয়েক্ট নেটিভ |
|||
| logo = React-icon.svg |
|||
| developer = ফেসবুক ও কম্যুনিটি |
|||
| released = {{Start date and age|2015|03|26}}<ref name="initialrelease">{{cite web |title=React Native: Bringing modern web techniques to mobile |url=https://code.fb.com/android/react-native-bringing-modern-web-techniques-to-mobile/}}</ref> |
|||
| latest release version = ০.৬৩.১ |
|||
| latest release date = {{Start date and age|2020|07|14}}<ref name="ghrelease">{{cite web |url=https://github.com/facebook/react-native/releases |title=Releases – Facebook/React |website=[[GitHub]]}}</ref><!-- DO NOT CHANGE THIS REFERENCE: the GitHub release page can remain as a static reference for all foreseeable releases--> |
|||
| repo = https://github.com/facebook/react-native |
|||
| programming language = [[জাভাস্ক্রিপ্ট]], [[জাভা (প্রোগ্রামিং ভাষা)|জাভা]], [[স++]], [[অবজেক্টিভ সিু]], অবজেক্টিভ সি++, [[পাইথন (প্রোগ্রামিং ভাষা)|পাইথন]] |
|||
| platform = |
|||
| license = এমআইটি সনদ |
|||
| website = {{URL|https://reactnative.dev/}} |
|||
}} |
|||
রিয়েক্ট নেটিভ ফেসবুকের তৈরী একটু উন্মুক্ত উৎসের মোবাইল অ্যাপলিকেশন ফ্রেমওয়ার্ক। নেটিভ সক্ষমতার সাথে সংমিশ্রন ঘটিয়ে রিয়েক্ট নেটিভ একই ফ্রেমওয়ার্ক ব্যবহার করে ডেভেলপারদের জন্য ডেস্কটপ অ্য়াপলিকেশন, ইউডব্লিউপি অ্যাপলিকেশন, অ্যানড্রয়েড ও আইওএস অ্যাপলিকেশন নির্মান ও উন্নয়ন সহজ করে দেয়। কিউটির জন্য এর একটি অসম্পূর্ণ পোর্টও রয়েছে। |
রিয়েক্ট নেটিভ ফেসবুকের তৈরী একটু উন্মুক্ত উৎসের মোবাইল অ্যাপলিকেশন ফ্রেমওয়ার্ক। নেটিভ সক্ষমতার সাথে সংমিশ্রন ঘটিয়ে রিয়েক্ট নেটিভ একই ফ্রেমওয়ার্ক ব্যবহার করে ডেভেলপারদের জন্য ডেস্কটপ অ্য়াপলিকেশন, ইউডব্লিউপি অ্যাপলিকেশন, অ্যানড্রয়েড ও আইওএস অ্যাপলিকেশন নির্মান ও উন্নয়ন সহজ করে দেয়। কিউটির জন্য এর একটি অসম্পূর্ণ পোর্টও রয়েছে। |
||
১৮:১৫, ২৯ জুলাই ২০২০ তারিখে সংশোধিত সংস্করণ
উন্নয়নকারী | ফেসবুক ও কম্যুনিটি |
---|---|
প্রাথমিক সংস্করণ | ২৬ মার্চ ২০১৫[১] |
স্থিতিশীল সংস্করণ | ০.৬৩.১
/ ১৪ জুলাই ২০২০[২] |
রিপজিটরি | https://github.com/facebook/react-native |
যে ভাষায় লিখিত | জাভাস্ক্রিপ্ট, জাভা, স++, অবজেক্টিভ সিু, অবজেক্টিভ সি++, পাইথন |
লাইসেন্স | এমআইটি সনদ |
ওয়েবসাইট | reactnative |
রিয়েক্ট নেটিভ ফেসবুকের তৈরী একটু উন্মুক্ত উৎসের মোবাইল অ্যাপলিকেশন ফ্রেমওয়ার্ক। নেটিভ সক্ষমতার সাথে সংমিশ্রন ঘটিয়ে রিয়েক্ট নেটিভ একই ফ্রেমওয়ার্ক ব্যবহার করে ডেভেলপারদের জন্য ডেস্কটপ অ্য়াপলিকেশন, ইউডব্লিউপি অ্যাপলিকেশন, অ্যানড্রয়েড ও আইওএস অ্যাপলিকেশন নির্মান ও উন্নয়ন সহজ করে দেয়। কিউটির জন্য এর একটি অসম্পূর্ণ পোর্টও রয়েছে।
ইতিহাস
২০১২ সালে মার্ক জুকারবার্গ মন্তব্য করেন, কোম্পানি হিশেবে তাদের সবচেয়ে বড় ভুল ছিলো নেটিভের বদলে এইচটিএমএলের উপর খুব বেশী মনোযোগ দেওয়া। সে মন্তব্য করে ফেসবুক খুব দ্রুত আরও ভালো মোবাইল অভিজ্ঞতা প্রদানে কাজ করবে।
ফেসবুকের জরডান ওয়াকে ব্যাকগ্রাউন্ড জাভাস্ক্রিপ্ট থ্রেড ব্যবহার করে আইওএসের জন্য ইউআই উপাদান তৈরীর একটা উপায় বের করেন। ফেসবুক এ প্রযুক্তিকে একটা পরিপক্ব রূপ দিতে নিজেদের মধ্যে একটা হ্যাকাথন আয়োজনের সিদ্ধান্ত নেয়।
মাসের পর মাস এর উপর কাজ করার পর ২০১৫ সালে রিয়েক্ট জাভাস্ক্রিপ্ট কনফিগারেশনের প্রথম সংস্করণ প্রকাশিত হয়। একবার আলোচনার সময় ক্রিস্টোপার চ্যাডো বলেন ফেসবুক ইতোমধ্যেই তাদের নিজস্ব গ্রুপ অ্যাপ ও অ্যাড ম্যানেজারের জন্য রিয়েক্ট নেটিভ ব্যবহার করছিলো।
প্রয়োগ
রিয়েক্ট নেটিভের কাজের ধরণ অনেকটা রিয়েক্টের মতন। একটা তফাৎ হলো রিয়েক্ট নেটিভ ডকুমেন্ট অবজেক্ট মডেল বা ডোম ভার্চুয়াল ডোম ব্যবহার করে পরিবর্তন করে না। এটা অই নির্দিষ্ট যন্ত্রের একটা ব্যাকগ্রাউন্ড প্রসেসে চলে আর অ্যাসিনক্রোনাস, সিরিয়ালাইসেশন আর ব্যাসড ব্রিজ ব্যবহার করে নেটিভ যন্ত্রের সাথে যোগাযোগ করে।
রিয়েক্ট নেটিভ এইচটিএমএল বা সিএসএস ব্যবহার করে না। বরং নেটিভ ভিউ নিয়ন্ত্রনের জন্য জাভাস্ক্রিপ্ট থ্রেডের ম্যাসেজ ব্যবহার করে। এটা অ্যানড্রয়েডে জাভা, আইওএসে সুইফট বা অবজেক্টিভ সিতে নেটিভ কোড লেখার সুযোগ দেয়, যা এতে অ্যাপলিকেশন নির্মান আরও নমনীয় ও ব্যবহার আরও বিস্তৃত করে।
হ্যালো ওয়ার্ল্ড উদাহরণ
হ্যালো, ওয়ার্ল্ড প্রোগ্রাম রিয়েক্ট নেটিভে যেমন দেখায়:
import React from 'react';
import { AppRegistry, Text } from 'react-native';
const HelloWorldApp = () => <Text>Hello world!</Text>;
export default HelloWorldApp;
AppRegistry.registerComponent('HelloWorld', () => HelloWorldApp);
import HelloWorldApp from './HelloWorldApp';