در ابتدای بوجود آمدن React Native آن را یکی دیگر از بزرگترین ابزارها برای توسعه اپلیکیشنهای موبایل معرفی کردند. React Native در مقایسه با فرایندهای توسعه محلی یادگیری بسیار سادهتری دارد و از طرفی دیگر نسبت به فریمورکهایی مانند Ionic و Cordova از امکانات بیشتری برخوردار است.
اما آیا استفاده از React Native برای ساخت هر نوع اپلیکیشنی مناسب خواهد بود؟ در این مطلب قصد داریم در ارتباط با سه نوع اپلیکیشن صحبت کنیم که استفاده از React Native برای پیادهسازی آنها انتخاب مناسبی نخواهد بود.
موضوعات گفته شده در این مطلب:
- React Native چیست؟
- چه زمانی باید React Native را انتخاب کرد؟
- فواید استفاده از React Native چیست؟
- زمانی که قصد توسعه اپلیکیشنهای React Native را داشتید باید چه موضوعاتی را در نظر بگیرید؟
- چه زمانی استفاده از توسعه محلی اپلیکیشنها بهتر است؟
- چرا Airbnb استفاده از React Native را متوقف کرد؟
- آیا React Native برای توسعه اپلیکیشن من مناسب است؟
React Native چیست؟
React Native یک فریمورک متن باز است که توسط فیسبوک ساخته شده و حال در کنار جامعه کاربری بزرگ آن پشتیبانی میشود. React Native برای ساخت اپلیکیشنهای آندروید و iOS از جاوااسکریپت استفاده میکند. باید بگویم که React Native از المانهای محلی برای رابط کاربری استفاده میکند، از این رو اپلیکیشنهای ساخته شده با این فریمورک شبیه به اپلیکیشنهای محلی Android و iOS خواهند بود.
چه زمانی باید React Native را انتخاب کرد؟
بسیاری از شرکتهای بزرگ مانند Tesla، Walmart و Uber Eats در حال توسعه اپلیکیشنهایشان با استفاده از این تکنولوژی هستند. Facebook، Instagram و Zynga نیز نمونههای آمادهای هستند که در بیشتر بخشهایشان از این تکنولوژی استفاده کردهاند. این بدان معناست که React Native میتواند فارغ از اپلیکیشنهای ساده، برای نمونههای پیچیده نیز مناسب باشد. با این حال واقعیت امر این است که React Native ابزاری مناسب برای اپلیکیشنهای کوچک/متوسط است. حالتهایی که در آن محاسبات اصلی اپلیکیشن روی یک سرور اجرا شده و در نهایت نتیجه به خود اپلیکیشن باز گردانده میشود.
فواید استفاده از React Native چیست؟
به صورت کلی ساخت اپلیکیشنهای چند-سکویی میتواند فواید بسیار زیادی را با خود به همراه بیاورد. ایجاد اپلیکیشن با استفاده از یک کدبیس مشترک میتواند هزینه و زمان بسیار زیادی را برای ما ذخیره کند، چرا که در آن تیمهای برنامهنویس کمتری مشارکت دارند. از طرفی دیگر بین زمان بروزرسانی و انتشار آن برای پلتفرمهای مختلف ناسازگاری وجود نخواهد داشت. React Native متن باز است پس زمانی که با مشکلی مواجه شدید شانس آنکه از طرف جامعه کاربری کمک دریافت کنید بسیار زیاد است. وجود قابلیت Hot reloading نیز قابلیت دیگری است که به شما امکان مشاهده بلادرنگ تغییرات در اپلیکیشن را میدهد.
زمانی که قصد توسعه اپلیکیشنهای React Native را داشتید باید چه موضوعاتی را در نظر بگیرید؟
زمانی که از ریاکت نیتیو استفاده کنید، در مدت زمان دیرتری به تغییرات جدیدی که در پلتفرمهای اصلی بوجود میآید دسترسی پیدا خواهید کرد. از طرفی دیگر شما باید اپلیکیشنتان را با آخرین نسخههای منتشر شده از React Native بروز نگه دارید. چرا که در هر نسخه کامپوننتهای جدیدی ارائه شده و ممکن است اپلیکیشن شما به آنها نیاز داشته باشد. قبل از نسخه 0.59 بروزرسانی اپلیکیشنها در React Native کار بسیار دشواری بود اما با ارائه این نسخه مشکلات بسیاری برای موضوع بروزرسانی حل شد.
چه زمانی استفاده از توسعه محلی اپلیکیشنها بهتر است؟
اپلیکیشنهایی با رابط کاربری پیچیده
جاوااسکریپت به شما امکان ساخت اپلیکیشنهای سریع و ساده را میدهد. با این وجود برای اپلیکیشنهایی که نیاز پردازشی بالایی دارند استفاده از جاوااسکریپت مناسب نیست. شما در چنین حالتی باید سراغ توسعه محلی آنها باشید. اگر رابط کاربری شما با تعاملات بسیار زیادی روبرو است استفاده از React Native نمیتواند چندان انتخاب مناسبی باشد. برای مثال استفاده از React Native در ساخت اپلیکیشنهای پیامرسان که در آن شخصیسازیها و پروسههای پردازشی بسیار زیادی وجود دارد مناسب نیست.
اپلیکیشنهایی که برای یک سیستم عامل ساخته میشوند
اپلیکیشنهای بسیار زیادی وجود دارند که صرفا برای یک سیستم عامل تولید میشوند. منظور این است که شما میتوانید آنها را فقط روی یکی از دستگاههای آندرویدی و یا iOS دانلود کنید.
Tasker اپلیکیشنی است که برای مدیریت وظایف استفاده شده و تنها در آندروید موجود است. Bear نیز اپلیکیشنی دیگر است تنها روی iOS موجود است. در چنین حالتهایی استفاده از گزینه Native بهترین راهکار برای شما خواهد بود.
با وجود آنکه که یکی از مزیتهای React Native دادن قابلیت توسعه یک اپلیکیشن و اجرای آن روی دو پلتفرم متفاوت است اما کارایی موضوعی است که نمیتوان از React Native زیاد انتظار داشت. به همین دلیل است که برای موارد خاص بهتر است سراغ رویکرد Native بروید.
مدیا پلیر و ابزارهای سودمند
ساخت اپلیکیشنهایی مانند مانیتورینگ میزان مصرف باتری، آنتی ویرویس، مدیریت روشنایی موبایل و مدیا پلیر در حالت Native بسیار سادهتر و کاربردیتر نسبت به React Native انجام میشود. این دسته از اپلیکیشنها نیاز بالایی به ویژگیهای محلی و APIهای سختافزار دارند به همین دلیل استفاده از حالت Native مناسبتر خواهد بود.
چرا Airbnb استفاده از React Native را متوقف کرد؟
شاید شنیده باشید که چند وقت پیش Airbnb تصمیم گرفت که استفاده از React Native را کنار گذاشته و شروع به استفاده از حالت Native بکند. یکی از دلایل اصلی این موضوع نگهداری سخت تکنولوژي سفارشی بود که Airbnb آن را مستقیما از React Native دریافت کرده بود. بعد از مدتی کار با React Native آنها متوجه شدند که پروسه بروزرسانی و دیباگینگ موجود در React Native بسیار سخت است و در کنار آن به یکسری کامپوننتهای محلی نیاز دارند. این سختیها باعث شد که Airbnb سراغ تکنولوژيهای Native برود.
اما این بدان معنا نیست که React Native برای هر پروژهای نامناسب است. Airbnb در سال ۲۰۱۶ از ریاکت نیتیو استفاده میکرد اما حال این فریمورک تواناییهای بسیار بیشتری پیدا کرده است. موضوع بعدی این است که Airbnb بودجه بسیار زیادی دارد و میتواند هر زمان که خواست تکنولوژیهایش را تغییر دهد و به یک موقعیت دیگر سوئیچ کند. در نهایت حتی Airbnb نیز این قضیه را اعتراف کرده که React Native میتواند برای اپلیکیشن های بسیار زیادی مناسب باشد، همانطور که ما امروز حضور آن در موارد مختلفی را مشاهده میکنیم.
میتوانید این موضوع را به صورت کاملتر در مطالب زیر مطالعه کنید:
۱- تجربه استفاده از React Native در Airbnb : بخش اول
۲- تجربه استفاده از React Native در Airbnb - جزئیات تکنیکی : بخش دو
۳- تجربه استفاده از React Native در Airbnb - بخش سوم
۴- تجربه استفاده از React Native در Airbnb: ریاکت نیتیو در حال غروب کردن
۵- تجربه استفاده از React Native در Airbnb - توسعه اپلیکیشن به صورت native
آیا React Native برای توسعه اپلیکیشن من مناسب است؟
فارغ از آنکه React Native نمیتواند تکنولوژی برای همه استفادهها باشد اما باز هم میتوان از آن به عنوان یکی از فریمورکهای انقلابی یاد کرد. یکی از کلیدیترین نکات این است که ریاکت نیتیو هنوز در حال توسعه و دریافت بروزرسانی است و ما دقیقا نمیدانیم که آینده به چه سمت خواهد رفت اما با این حال هنوز هم استفاده از آن در بسیاری از اپلیکیشنها منطقی خواهد بود. جامعه کاربری و تیمی که پشت ریاکت نیتیو حضور دارند به خوبی از مشکلات آن آگاه هستند و تلاش میکنند تا آن را بهتر نمایند. در کنار تمام این موارد React Native در مدت زمان کوتاه توانسته کاربران بسیار زیادی را به خود جذب کند و آموزشها و مستندات بسیاری را منتشر سازد. از این رو یادگیری آن کار سختی نخواهد بود.
اگر قصد یادگیری این تکنولوژی را دارید پیشنهاد میکنم که دوره آموزشی «آموزش پروژه محور React Native» را مشاهده کنید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید