10دلیل برای یادگیری React Native


از سال 2000 میلادی که توسعه اپلیکیشن های موبایل به یکی از بحث های اصلی تکنولوژی تبدیل شد و خیلی از افراد به دنبال این موضوع رفتند،روش های خیلی زیادی علاوه بر روش های native برای توسعه موبایل ایجاد شد که بعضی هاشون موفق بودند و بعضی ها خیلی زود از دور خارج شدند و شکست خوردند.
در سال 2015 که فیسبوک فریمورک React Native رو برای توسعه اپلیکیشن های native برای هر دو پلتفرم Android و Ios منتشر کرد،نوید این رو میداد که یک تکنولوژی برتر نسبت به بقیه فریمورک ها در این زمینه است . در این مقاله من دلایل برتر بودن React Native نسبت به سایر فریمورک ها رو بیان میکنم.
1.واقعا Native
هز چند که از React Native به عنوان یک فریمورک هیبریدی برای توسعه اپلیکیشن ها نام میبرند،اما با اطمینان میشه گفت که فراتر از کلمه هیبریدی است.به همین دلیل است که فیسبوک کلمه native رو در کنار فریمورک خودش قرار داده تا توسعه دهنده ها پی به native بودن این فریمورک ببرن.بر خلاف دیگر فریموک ها که webView هستند،در React Native شما برنامه ها رو با جاوا اسکریپت مینویسید که در نهایت تبدیل به زبان native سیستم عامل مربوط میشه.
2.بروز رسانی اپلیکیشن بصورت remotely
فیسبوک یکی از دلایل توسعه React Native رو مشکلات ناشی از انتشار و بروزرسانی اپلیکیشن های native بیان کرده.تصور کنید که شما قصد دارید یک ویژگی جدید به هر دو نسخه android و ios اضافه کنید.بعد از اینکه این ویژگی اضافه شد شما باید نسخه جدید رو در مارکت ها بزارید.اولین مشکل اینکه شما باید نسخه جدید رو در Google Play برای android و در AppStore برای ios منتشر کنید.برای انتشار در هر کدوم از این مارکت ها شما باید یک فرایند جداگانه ای رو انجام بدید.همچنین این رو در نظر بگیرید که ما از طرف اپل تحریم هم هستیم.شما میتونید در React Native با استفاده از کتابخونه react-native-auto-updater پروسه بروز رسانی از سمت سرور رو انجام بدید.برای آشنایی بیشتر با این فرایند میتونید مقاله آپدیت دورنی اپلیکیشن های React Native از سرور رو مطالعه کنید.
3.سرعت توسعه بالا
یکی از بزرگترین دردسرهای توسعه دهنده ها کمبود زمان و رسیدن زود هنگام به زمان تحویل پروژه است.یکی از راه هایی که میشه برای خودت زمان بخری افزایش سرعت توسعه است.در React Native شما میتونید با استفاده از قابلیت Hot Reloading سرعت توسعه برنامه رو به شدت بالا ببرید و برای نمایش هر تغییر تیاز به کامپایل مجدد نداشته باشید.
4.جامعه بزرگ توسعه دهنده ها
React Native از زمان انتشار اولین نسخه به شدت محبوبیتش افزایش پیدا کرده و توسعه دهنده های زیادی رو به سمت خودش جذب کرده.در عکس زیر شما میتونید میزان جستجوی React Native رو در گوگل ترند مشاهده کنید.
علاوه بر این ، خیلی از توسعه دهندگان بصورت رایگان کتابخونه هایی که نیاز دارید رو توسعه دادند و در گیت هاب قرارش دادند.به هر کتابخونه ای که نیاز داشته باشید میتونید خیلی راحت بصورت رایگان بهش دسترسی داشته باشید.
5.فیسبوک،حامی بزرگ
میزان سهمیه ای که فیسبوک در سال های اخیر در دنیای open source داشته،غیرقابل انکار است.فیسبوک تکنولوژی های خیلی زیادی رو بصورت open source منتشر کرده که میتونید در محصولات مختلفی مشاهدش کنید.این کمپانی بر روی react native سرمایه زیادی گذاشت و برای نشون دادن قدرت این فریمورک برنامه هاشون رو با React Native توسعه دادند.که میشه به اپلیکیشن های مثل Facebook Ads Manager و Facebook Groups و اینستاگرام منتشر کرد.
6.یکبار کد بزنید،خروجی های متفاوت بگیرید.
Write Once, Run Everywhere شعاری هست که فیبسبوک برای React Native در نظر گرفته.در طول سال ها بسیاری از تکنولوژی های مختلف شعارهایی مشابه برای نشان دادن انعطاف پذیری تکنولوژیونی هایشون انتخاب کرده اند.اولین تفکری که ممکنه شما در ذهن شما ایجاد بشه اینکه شما میتونید اپلیکیشن هایی مثل اپلیکیشن های هیبریدی بنویسید که در تمام پلتفرم ها قابل اجراست.اما رویکرد React Native کمی متفاوت هست.
هر پلتفرم دارای ساختار UI خاص مربوط به خودش هست.بنابراین کدی که ما مینویسم بصورت مستقل بر روی هر پلتفرم قابل اجرا است که تجربه کاربری خوبی به کاربر نمیدهد.Write Once, Run Everywhere در React Native به این معنی است که شما میتونید بر اساس نیاز هر پلتفرم تغییراتی در UI ایجاد کنید با اینکه بیش از 90 درصد code base مشترک است.کاربران Android و IOS به ساختار اپلیکیشن های native عادت دارند و نمیتوان سریع این عادت ها را تغییر داد.به طور مثال برای date picker ما دو تا کامپوننت متفاوت برای هر پلتفرم داریم تا کاربر احساس نکنه که اپلیکیشن ساختار متفاوتی از لحاظ UI با اپلیکیشن های native داره.در صورتی که تمایل دارید این عادت رو برای کاربرانتون تغییر بدید میتونید از کتابخونه های آماده استفاده کنید که از لحاظ UI برای هر دو پلتفرم یکسان هستند.
7.آسمان برای React Native کوتاه است.
تکنولوژی های native بصورت مداوم در حال تکامل و نوسازی هستند.در کامپوننت های هسته React Native شما نمیتوانید همیشه نیازهای خودتون رو پیدا کنید.البته React Native به صورت مداوم در حال بروزرسانی است و کامپوننت های جدیدی رو به هسته خودش اضافه میکنه.شما میتونید بصورت native یک کتابخونه ایجاد کنید و در اپلیکیشنتون ازش استفاده کنید.اینجا جمله “آسمان برای React Native کوتاه است”معنی پیدا میکنه.البته خیلی کم پیش میاد که شما به دنبال کتابخانه ای باشید که قبلا در گیت هاب نباشه.
8.نیازی نیست که اپلیکیشن native خودتون رو بازنویسی کنید.
اگر شما در حال حاضر یک اپلکیشن دارید،بازنویسی اون با React Native ممکن یک ریسک بزرگ باشه.اما فراموش نکنید React Native این قابلیت رو داره که بخشی خاصی از اپلیکیشنتون رو به RN انتقال بدید و اپلیکیشنتون رو در هر دو تکنولوژی تست کنید.این یعنی یک چالش جدید و بزرگ
9.از FlexBox چیزی شنیدید؟
توسعه دهنده های برنامه های موبایل نیاز دارند تا UI اپلیکیشن رو برای دیوایس های مختلف بهینه سازی کنند.در دنیای گوشی های موبایل تعداد دیوایس ها روز به روز افزایش پیدا میکنه که هر کدوم یک سایز و اسکرین متفاوت دارند.علاوه بر این ممکنه خیلی از دیوایس ها بعد از انتشار اپلیکیشن ما معرفی شده باشند.
Flexbox برای grid بندی صفحه است که سمت React با استفاده از سیستم Flexbox Layout پیاده سازی شده است.این سیستم به شما اجاز میده UI رو بر اساس screen توسعه بدید.
10.یادگیری React واقعا ساده است.
ReactJS به عبارتی پدر React Native حساب میشه.در انتشار اولین نسخه دولوپرها مشکل بسیار زیادی در syntax داشتند.توسعه دهنده های Front-end که سال ها با HTML کار میکردند در ارتباط با JSX کمی مشکل داشتند.اما با گذشت زمان خیلی راحت با JSX ارتباط برقرار کردند و یادش گرفتند.علاوه بر این یادگیری RN بر خلاف زبان های native خیلی ساده است .چون شما یک جامعه بزرگ هستید و میتونید کتاب ها و آموزش های زیادی رو پیدا کنید.
این 10 تا دلیل بود که من برای یادگیری React Native یه ذهنم رسیده بود و تجربه کرده بودمش.اگر شما تجربه ای در این زمینه دارید و بنا به دلیل دیگه جذب این فریمورک دوست داشتنی شدید،در کامنت ها به اشتراک بزاریدش تا همگی استفاده کنیم.
دیدگاهتان را بنویسید