کانال تلگرام

 تفاوت های توسعه در اندروید و ios برای React Native

تاریخ : ۸ مرداد ۱۳۹۸
نویسنده : آروین سعادت نیا
دسته بندی ها : جاوا اسکریپت , react

React Native به شما اجازه می دهد که برنامه های موبایل خود را تنها با استفاده از جاوا اسکریپت بنویسید، این فریمورک از طراحی یکسانی نسبت به React استفاده می کند و به شما اجازه می دهد که از رابط های کاربری قدرتمند موبایل استفاده کنید. این فریمورک اساسا به شما کمک می‌کند، از کدهای خود در برنامه های مختلف استفاده مجدد کنید.

reactnaive

در واقع عبارت "یک بار بنویس و در هر جای دیگر استفاده کن" عبارت بی ربطی هم برای این فریمورک نیست. این عبارت زمانی که React Native به بازار آمده بود، مشهورترین عبارت در مورد این فریمورک بود، بعد از سه سال کار کردن با React Native به خوبی فهمیده ام که عبارت ذکر شده در بالا همیشه هم درست نیست. اگرچه می توانیم از اکثر کدها بین دو سیستم عامل اندروید و ios به صورت مشترک استفاده کنیم، اما بالاخره این دو سیستم عامل با همدیگر تفاوت هایی هم دارند.

۴ تفاوت عمده میان توسعه‌ی اندروید و ios

سیستم‌عامل

ابزارهای مختلفی وجود دارد که به شما اجازه می دهد یک شبیه ساز ios را اجرا کرده و احتمالا اپلیکیشن خود را در آن تست کنید، اما من از هیچ کدام از آنها استفاده نکردم و مطمئن نیستم آنها قابل اعتماد باشند، زیرا آنها ابزارهای رسمی شرکت اپل نیستند. زمانی که بر روی ویندوز کار می کنید به ابزارهای رسمی همچون اندروید استادیو، که اجازه می‌دهد با نسخه اندروید برنامه خود کار کنید محدود هستید.

البته ابزارهای زیادی برای تست برنامه های ios در ویندوز وجود دارد، اما آنها غیر رسمی هستند. اما زمانی که از سیستم عامل مکینتاش استفاده می کنید، با چنین مشکلی روبرو نیستید. زیرا اندروید استادیو بر روی مک بوک های اپل کار می کند و البته به همین خاطر هم هست که به توسعه دهندگان React Native توصیه می‌شود از کامپیوترهای مکینتاش استفاده کنند.

می توانید برنامه خود را با استفاده از React Native برای هر دو سیستم عامل اندروید و ios بسازید، اما نمی توانید نحوه اجرای صحیح برنامه ها را وقتی از ویندوز استفاده می کنید بررسی کنید. ویندوز نمی تواند XCode و شبیه ساز های آن را اجرا کند. این برنامه تنها برای سیستم عامل مکینتاش تهیه شده است. اینجا است که ممکن است کمی محدود شوید زیرا XCode ابزار بسیار مفیدی است و اغلب وقتی بر روی اپلیکیشن های React Native کار می کنم از آن استفاده می برم.

عناصر بومی

ممکن است در ابتدا چندان واضح به نظر نرسد، اما در زمان استفاده از عناصر کتابخانه React Native ممکن است سورپرایز شوید. برای مثال کامپوننت Picker نتایج متفاوتی را در شبیه ساز های اندروید و ios تولید می‌کند و این به خاطر این است که در پشت کار React Native عناصر جاوا اسکریپت را به عناصر مخصوص هر پلتفرم تبدیل می‌کند.

تفاوت عناصر Picker تولید شده در پلتفرم اندروید و ios در شکل زیر کاملا مشخص است :

react

استایل های خاص - سایه ها

سایه ها موضوع مهم دیگری در تفاوت میان پلتفرم اندروید و ios هستند. با استفاده از React Native شما تنها برنامه خود را با استفاده از جاوا اسکریپت استایل دهی می کنید. نام استایل ها و مقادیر آنها معمولا با نحوه کار css در وب مطابقت دارند(به استثنای نام ها که با قاعده کمل کیس نوشته می شوند مثلا borderRadius به جای border-radius )

تفاوت میان تولید سایه ها در دو پلتفرم اندروید و ios در زیر آمده است :

react2

همانطور که مشاهده می کنید، هیچ سایه ای در حالت اندروید وجود ندارد، زیرا اندروید از سایه ها در React Native پشتیبانی نمی کند و به منظور ایجاد کمی سایه باید از مشخصه elevation استفاده کنیم. با افزودن کد elevation: 20 می‌توان سایه ها را برای عناصر در اندروید به وجود آورید :

react3

همانطور که در بالا مشاهده می کنید سایه ایجاد شده است.

اتصال به کتابخانه‌های ثالث

زمانی که می‌خواهیم از کتابخانه‌های ثالثی در برنامه خود استفاده کنیم، اغلب اوقات با اضافه کردن آنها به عنوان یک وابستگی و اجرای کد زیر به مقصود خود خواهیم رسید :

react-native link "library-name"

اما برخی کتابخانه ها نیاز به لینک دهی دستی دارند، لینک دهی به کتابخانه‌ها به صورت دستی برای هر کس کار آسانی نیست. لینک دهی دستی یعنی مقداری کد به فولدرهای ios و اندروید اضافه کنیم که نیاز به کمی دانش از جاوا و سوئیفت دارد.

البته بیشتر کتابخانه هایی که استفاده می‌کنیم، از اسناد خوبی برخوردار بوده و حتی بدون دانستن چیزی از زبان های فوق می توانیم کتابخانه‌ها را به پروژه خود اضافه کنیم، متاسفانه برخی اسناد برای آخرین نسخه های React Native بروز رسانی نمیشوند و ممکن است برخی تفاوتهایی در پیاده‌سازی به وجود آید.

خلاصه

اگر چه تفاوت هایی بین توسعه در سیستم عامل های اندروید و ios وجود دارد، اما همچنان React Native تکنولوژی فوق العاده ای است. زیرا به شما اجازه می‌دهد، از اغلب کد های خود در هر دو سیستم عامل به صورت اشتراکی استفاده کنید. بعد از مدتی کار با React Native دریافته ام که محدودیت های ویندوز هم می تواند نوعی مزیت باشد، زیرا بیشترین مشکلاتی که در زمان توسعه برنامه ها با React Native داشتم مربوط به برنامه‌های اندروید بوده است. وقتی عملکردی را به صورت صحیح برای اندروید پیاده سازی کردم احتمال ۹۹% این عملکرد برای ios نیز به خوبی کار می کرده است. 

#React Native #فریمورک جاوا اسکریپت

مقالات پیشنهادی

مشاهده همه مقالات
ثبت دیدگاه

برای ارسال دیدگاه لازم است ابتدا وارد سایت شوید