React Native، آری یا نه ؟!

آبان ۱۸, ۱۳۹۶
React Native، آری یا نه ؟!

React Native یک فریمورک جاوا اسکریپت برای پیاده سازی اپلیکیشن های اندروید و IOS به صورت Native است.برنامه های Native برنامه هایی هستند که برای یک سیستم عامل نوشته می شوند و از زبان اصلی توسعه سیستم عامل قابل تشخیص نیست. برای درک تفاوت اپلیکیشن های Native و Hybrid به تصویر پایین نگاه کنید.

React Native در اواخر مارچ ۲۰۱۵ به صورت رایگان و متن باز بر روی سایت GitHub در دسترس عموم قرار گرفت و در ابتدا فقط توانایی توسعه آپ های IOS را داشت اما چند ماه بعد توانایی ایجاد اپلیکیشن های اندروید را نیز در خود جایی داد همچنین چندی پیش قراردادی مابین Microsoft و Facebook ایجاد گردید که ظاهرا Facebook قرار است قابلیت توسعه آپ برای Windows 10 را در React Native قرار دهد که در کنفرانس F8 از این قابلیت رونمایی گردید. ( برای اطلاعات بیشتر میتوانید این لینک را مشاهده نمایید ).

React Native از کتابخانه React استفاده می کند که یکی از قدرتمند ترین کتابخانه های جاوااسکریپت برای طراحی رابط کاربری می باشد که سرعت آن زبانزد توسعه دهنده گان است و Instagram و Yahoo و … نیز از آن استفاده مینمایند.

از ویژگی های مثبت React Native میتوان به این موارد اشاره کرد :

  • اولین موردی که همه توجه ها را جلب میکند اینست که با React Native شما نیازی نیست دو اپلیکیشن جداگانه برای (فعلا) اندروید و IOS توسعه دهید. یک بار کد مینویسید و آپ شما قابلیت گرفتن خروجی برای هردو سیستم عامل را دارد. این یکی از برترین نقاط قوت React Native است که شما را از نیازبه یادگیری زبان های مختلف بی نیاز میکند.
  • همواره توسعه آپ های موبایل برای توسعه دهندگان وب مشکل بوده است زیرا باید زبان جدیدی را یادبگیرند که با آن آشنایی نداشته اند.React Native این راه را برای Web developer ها هموار کرده است. از آن رو که اکثرا توسعه دهنده گان وب آشنایی نسبتا مناسبی با Java script دارند و React Native هم یک فریمورک جاوا اسکریپت می باشد، توسعه آپ های موبایل با React Native برای توسعه دهنده گان وب آشناتر و سریع و راحت تر خواهد بود.
  • از ویژگی های جالب React Native، گرفتن feedback در لحضه از اپلیکیشن در حال توسعه است، تصور کنید درحال توسعه یک آپ هستید و تغییراتی را که اعمال میکنید در لحضه مشاهده میکنید، این مزیت پروسه برنامه نویسی شما را زیر و رو میکند!
  • یکی دیگر از ویژگی های React Native متن باز بودن آن است که در نگاه اول شاید برای کسانی که تجربه ی زیادی از برنامه نویسی ندارند زیاد به چشم نیاید.اما اگر کمی ریزتر بنگرید، به اعماق قدرت React Native پی خواهید برد و همچنین میتوانید آن را مطابق نیاز خود تغییر دهید.
  • و …

اما در کنار این همه مزیت، React Native معایبی نیز دارد که بهتر است قبل از نوشتن اولین آپ خود با React Native آن هارا بدانید!

  • React Native تعداد زیادی از API های Native را پشتیبانی میکند اما تعدادی از آنهارا پشتیبانی نمیکند و این یعنی کاملا دست شما در توسعه آپ باز نیست. این درحالی است که اگر از زبان های اصلی توسعه استفاده کنید، دسترسی به تمامی API ها و قابلیت هایی که سخت افزار مربوطه در اختیار شما میگذارد را خواهید داشت.
  • هرچند در مدت کوتاهی که از انتشار React Native میگذرد کتابخانه های بسیار خوبی برای آن ایجاد شده اند اما به علت نوپا بودن باید در حین توسعه دقت لازم را در انتخاب کتابخانه ها به خرج دهید و این مورد جز با تجربه به دست نمیاید.
  • هنگامی که در آپ خود میخواهید به برنامه های Native دیگری مثل دوربین و … دسترسی پیدا کنید اگر از زبان های اصلی استفاده نمایید این کار بسیار ساده خواهد بود. این درحالی است که در برنامه نویسی با React Native این کار به این سادگی ها نیست! و برای این کار باید یا از کتابخانه های آماده استفاده کنید یا ماژول اختصاصی بنویسید.
  • همانگونه که مطلع هستید نحوه Design در اندروید و IOS متفاوت است، در اندروید معمولا با طراحی متریال سروکار داریم اما در IOS سبک طراحی فرق میکند.این موضوع به طور اتوماتیک توسط React Native تاحد مطلوبی ساماندهی میشود اما محل قرار گیری المان ها در دوسبک طراحی معمولا تغییر میکند و نیازمند استفاده از دستورات شرطی فراوان برای کنترل این جریان است که میتواند آزار دهنده باشد.
  • React Native را Facebook و Instagram  و جمعی از توسعه دهندگان مستقل آپدیت و نگهداری میکنند، حال فرض کنید فیسبوک تصمیم بگیرد آپدیت React Native را متوقف کند، اتفاق خوش آیندی نیست. هرچند این امر دور از ذهن است اما اگر آپ شما مقیاس بزرگی دارد باید به این مورد هم توجه داشته باشید.

بلاخره بلی یا خیر ؟!

اگر میخواهید اپلیکیشنی ایجاد کنید که بر روی هردو پلتفرم Android و IOS اجرا شود و در مضیقه زمانی هستید، React Native میتواند انتخاب مناسبی برای شما باشد.همچنین اگر توسعه دهنده وب هستید و با ES6 و Type Script و تاحدودی با Nodejs آشنایی دارید و نمیخواهید برنامه های با عملکرد پیچیده ایجاد کنید، React Native بهترین انتخاب برای شماست.

اگر خارج از دو دسته ی بالا هستید React Native برای شما توصیه نمیشود! شاید کمی اغراق آمیز به نظر برسد اما حقیقتی که فعلا وجود دارد همین است. آینده برنامه نویسی موبایل خصوصا برای Android زیاد معلوم نیست اما به طور حتم در چندسال آینده این صنعت دچار تغییرات زیادی میشود. شاید React Native نقاط ضعف خود را بهبود بخشد و یکه تاز شود، شاید زبان swift به SDK اندروید افزوده شود و دوران حدیدی از توسعه آپ برای اندروید آغاز شود و …

 

در تیم پرنسا خوشحال میشویم نظر شمارا نیز در رابطه با این مقاله بدانیم! صمیمانه منتظر کامنت های شما هستیم.

Tags:

ارسال نظر

ss