هادی
هادی
خواندن ۸ دقیقه·۵ سال پیش

مقایسه وبررسی React Native vs Flutter vs Ionic vs NativeScript - قسمت سوم

در قسمت اول معرفی مختصری این 4 فناوری را داشتیم و در قسمت دوم در 4 شاخه مقایسه ای داشتیم در قسمت سوم 4 مقایسه دیگر را انجام داده و یک نتیجه گیری را خواهیم داشت.

# محبوبیت و پوشش

داشتن یک اکوسیستم پر جنب و جوش چیز خوبی است - اما کدام گزینه محبوب است؟ این لزوماً یکسان نیست ، زیرا شما می توانید یک اکوسیستم غنی داشته باشید به دلیل اینکه جایگزینی در صنعت اجباری است بدون آنکه در بین توسعه دهندگان بسیار محبوب باشد.


: Ionic بسیار محبوب است. این توسعه دهندگان (وب) را قادر می سازد تا برنامه های موبایل بومی را با سریعترین روش ممکن ایجاد کنند. اگر ستاره های گیت هاب (Github) را به عنوان شاخص در نظر بگیریم ، می بینیم که در حال حاضر که من این را می نویسم (چهاردهم اوت 2019) تقریباً 39K ستاره دارد.

: Flutter سال قدرتمندی در Github (72.6kستاره ، نسبت به ستاره های 30k در سال گذشته) داشت و هنوز هم بسیار پر روند است. توسط Google بسیار تبلیغ شده است و آنها به وضوح می خواهند آن را به یک چیز بزرگ تبدیل کنند. و نسبتاً خوب پذیرفته شده است کار با آن واقعاً سرگرم کننده است!

NativeScript: همانطور که قبلاً نیز اشاره شد ، NativeScript محبوب ترین گزینه نیست. این ستاره 17 کیلو ستاره در Github (14k یک سال پیش) دارد و می توانید احساس کنید که از محبوبیت کمتری برخوردار است. اما این ممکن است در حال تغییر باشد. اخیراً ، نظرات و مباحثات بسیار مثبتی تری به وجود آمده و ابتکاراتی مانند NativeScript-Vue به طور قطع زندگی بیشتری را در اکوسیستم ایجاد می کنند.

: React Native پادشاه است. 80k ستاره در Github (65k یک سال پیش) با زبانی واضح صحبت می کنند. در واقع نقص های خود را دارد و اگر به بحث بپردازید ، می بینید که همه توسعه دهندگان عاشق آن نیستند. همه چیز بی عیب و نقص کار نمی کند ، اما به طور کلی ، از یک کتابخانه بسیار محبوب (React) و مهمترین زبان توسعه وب (JavaScript) استفاده می کند و برنامه های بومی واقعی به شما می دهد. اینها در واقع استدلالهای بسیار شدیدی هستند و دلایل محبوبیت آن.

زبانهای بومی: شما Android و iOSرا در Github پیدا نمی کنید ، بنابراین من نمی توانم هیچ ستاره ای ارائه دهم. اما این دو گزینه بسیار محبوب هستند. به کتاب ها ، دوره ها ، مقالات ، موضوعات و پوشش رسانه ای موجود در مورد این فناوری ها نگاهی بیندازید. اگر شخصی بخواهد یک برنامه بسازد ، به احتمال زیاد ابتدا به زبان های مادری نگاه می کند.

# کارایی

این قسمت احتمالاً خود گویاست - چگونه فن آوری های مختلف از منظر عملکرد زمان اجرا مقایسه می شوند؟

: Ionic بدترین عملکرد را بعنوان یک برنامه وب پیچیده در پایان ارائه می دهد. اما این اغلب به اشتباه فهمیده می شود! به نظر می رسد "بدتر" بسیار بد است اما "بدتر" به معنای "بد" یا حتی "وحشتناک" نیست. در عوض ، عملکرد بدتری نسبت به سایر رویکردها داشتید اما در دستگاه هایی که این روزها به دست ما رسیده است ، برنامه شما احتمالاً بیش ازحد یکنواخت اجرا خواهد شد اگر فقط (خیالی!) به جای 100 فریم در ثانیه 105 فریم در ثانیه باشد- شما متوجه تفاوت می شوید؟ شما متوجه نخواهید شد، بنابراین Ionic را در ذهن خود برای برنامه بعدی خود نگه دارید!

Flutter، NativeScript و React Native: این سه برنامه به شما بومی واقعی ارائه می دهند (از کد شما تهیه شده است) و بنابراین عملکردی بهتر از Ionic ارائه می دهند. انجام اندازه گیری دقیق در مورد کدام یک از بهترین ها بسیار سخت است و یا حتی غیرممکن است ، زیرا به برنامه ای که می خواهید ، دستگاهی که استفاده می کنید ، سیستم عامل و نسخه Flutter / NativeScript / React Native بیش از حد بستگی دارد. . همه آنها عملکرد بسیار خوبی ارائه می دهند ، این همان چیزی است که شما باید بدانید!

زبان های بومی: خوب ، شما احتمالاً نمی توانید زبان های بومی را ضرب و شتم کنید. کد بومی کاملاً نوشته شده باید همیشه نسبت به کد مادری کامپایل شده عملکرد بهتری داشته باشد.

# دسترسی به ویژگی های دستگاه بومی

برنامه های تلفن همراه شما به احتمال زیاد نیاز به دسترسی به برخی از ویژگی های دستگاه های بومی مانند دوربین یا GPS دارند. دستیابی به آن چقدر آسان است؟ و از نظر ویژگیهای نسبتاً جدید (به عنوان مثال برنامه های ARارائه شده توسط Android / iOS) چقدر آسان است؟

: Ionic از Cordova یا راه حل خاص آن ، خازن ، برای دسترسی به ویژگی های دستگاه بومی استفاده می کند. این مجموعه بسته های بسیار مناسبی را برای دسترسی به ویژگی های رایج دستگاه بومی مانند دوربین فراهم می کند. همچنین می توانید بسته های مخصوص خود را در مورد ویژگی های بومی بنویسید و سپس آنها را در کد رشته خود قرار دهید.

Flutter: طی یک سال گذشته ، تیم Flutter تلاش زیادی برای تهیه بسته های رسمی برای برخی از رایج ترین ویژگی های دستگاه بومی که به آنها دسترسی دارید ، تلاش کرده است. همچنین یک اکوسیستم بسیار پر جنب و جوش وجود دارد و از این رو بسته ای را برای تقریباً هر ویژگی بومی که ممکن است بخواهید به آن دسترسی پیدا کنید ، پیدا می کنید. همچنین در صورت نیاز می توانید کد بومی واقعی را بنویسید و وصل کنید.

: NativeScriptمجموعه بسیار مناسبی از پلاگین ها (هم توسط تیم NativeScript و هم سایر توسعه دهندگانی که ایجاد شده است) ارائه می دهد که به شما امکان دسترسی به ویژگی های مهم دستگاه (و حتی برخی از کمتر رایج) های بومی را می دهد. علاوه بر این ، اتصال کد بومی خود به برنامه NativeScript نیز آسان است.

React Native: به عنوان محبوب ترین راه حل ، مجموعه ای غنی از بسته های شخص ثالث و همچنین برخی API های داخلی را برای دسترسی به ویژگی های بستر محلی پیدا می کنید. تکیه بر بسته های شخص ثالث (که بیشتر شما مجبور به انجام آن هستید) البته این ضرری دارد که ممکن است نگهدارنده های اصلی آن پکیج را ترک کنند ، از این رو پشتیبانی از در سطح Ionic یا NativeScript نیست.

زبانهای بومی: لازم به گفتن نیست که همه API ها را برای یک پلتفرم معین در اینجا در دسترس دارید. و به همه API های بومی مستقیماً دسترسی دارید.

# استفاده در دنیای واقعی

بسیار خوب است اگر در مورد یک فناوری قانع باشید - اما بقیه جهان چگونه در مورد آن فکر می کنند؟ این ممکن است برای شما مهم نباشد اما اگر اینطور باشد - در اینجا مقایسه سریع است.

: Ionic هنوز هیچ برنامه خاصی ندارد اما ویترین برنامه هایی دارد که از آن استفاده می کنند. سرعت توسعه ای که شما می توانید با Ionic به دست بیاورید مخصوصاً برای تیم های بسیار چابک و / یا کوچک جذاب باشد. و لذا به این معنی نیست که هیچ شرکت بزرگتری از آن استفاده نمی کند (همانطور که در ویترین مشاهده می کنید).

Flutter: علیرغم اینکه نسبتاً جدید است ، از قبل برنامه های هیجان انگیزی با آن ساخته شده است - به عنوان مثال برنامه AdWords Google. شما می توانید یک لیست کامل را در ویترینآنها پیدا کنید ، احتمالا به زودی برنامه های عالی تری را در آن صفحه مشاهده خواهیم کرد.

NativeScript:نامهای بزرگی را در ویترینآن پیدا می کنید ، بیشتر شرکت هایی از فضای فناوری B2B. و به نظر می رسد بسیاری از برنامه ها برنامه های داخلی (یا برنامه هایی برای مشتری های این شرکت ها) هستند. اگر B2C را در نظر بگیریم ، به نظر می رسد هیچ برنامه خاصی در دسترس نباشد - که احتمالاً مربوط به محبوبیت کمتری NativeScript است.

:React Native برای مثال توسط چندین شرکت بزرگتر ، خود فیس بوک (که React Native را توسعه می دهد) استفاده می شود. اما همچنین باید توجه داشته باشیم که اخیراً یک شرکت بزرگ که از آن استفاده کرده است - AirBnB - از آن فاصله گرفته است. احتمالاً به دلیل همین مقاله ، تیم RN در تلاش است تا از برخی محدودیت ها و مشکلات ذکر شده خلاص شود.

زبانهای بومی: اکثریت قریب به اتفاق برنامه های موجود به این زبان های بومی نوشته شده است. هزاران برنامه و بازی بزرگ را پیدا می کنید که از این زبان ها استفاده می کنند.

با توجه به همه این معیارها - کدام یک را باید انتخاب کنید؟

اینجا انتخاب بدی نیست ، همه اینها گزینه های عالی هستند!

اول از همه ، شما باید تصمیم بگیرید که آیا می خواهید به زبانهای بومی (Swift ، ObjectiveC ، Java) بپیوندید و مضرات یادگیری دو چیز و نوشتن دو برنامه را بپذیرید یا خیر. این کار زیادی است و تسلط بر دو زبان و سیستم عامل بسیار سخت تر از تسلط بر یک زبان است.

اگر نمی خواهید از زبانهای بومی استفاده کنید ، باید تصمیم بگیرید که آیا راه حل بسته بندی شده را پیشنهاد می کنید زیرا Ionic آن را ارائه می دهد یا خیر. در حالی که از نقطه ضعف عملکرد (که ممکن است آنقدر که در بالا مورد بحث قرار نگرفت) اهمیت نداشته باشد ، می توانید یک تجربه توسعه فوق العاده سریع بدست آورید. می توانید از دانش وب خود برای توسعه وب استفاده کنید و در مدت زمان اندک دو برنامه را با یک پشته فناوری بسازید.

اما اگر عملکرد برای شما بسیار مهم است - یا باید به بسیاری از ویژگی های (پیشرفته) دستگاه بومی دسترسی داشته باشید - ممکن است بخواهید به React Native ، Flutter یا NativeScript نگاهی بیندازید. در اینجا ، جزئیات ذکر شده در بالا اهمیت دارند زیرا این رویکردها در غیر این صورت کاملاً مشابه هستند.

پس اگر تصمیم خود را گرفته اید ، می توانید تصمیم ، تجربه و نظرات تان را هم با ما به اشتراک بگذارید

منبع: https://www.academind.com

توضیح : من مترجم نیستم و با کمک گوگل جهت درک کلی مقاله و کمی تغییرات این مطالب را گردآوری کردم لذا امکان دارد برخی جاها آن شیوایی و مفهوم را نرساند که بابتش پیشاپیش عذرخواهی میکنم

react natieionicflutternativescriptبرنامه نویسی
شاید از این پست‌ها خوشتان بیاید