فراتر از پلتفرم ها

در این مطلب از منبع زیر استفاده شده است https://academind.com/learn/flutter/react-native-vs-flutter-vs-ionic-vs-nativescript-vs-pwa/ از دغدغه های کسب و کارهای جدید و یا استارتاپی توسعه کسب و کار در بین کاربران مختلف با دستگاه های متفاوت و سیستم عامل های مختلف استصاحبان این کسب و کارها دو راه دارندچندین بار توسعه نرم افزارشان به ازای هر پلتفرم استفاده از ابزار های کراس پلتفرم در راه اول علاوه بر هزینه بیشتر ? چالش های ویرایش و یا تغییر نسخه های مختلف نرم افزار وجود دارد که به هیچ وجه توصیه نمیشودپس تنها راه باقی مانده استفاده از ابزارهای کراس پلتفرم (چند سکویی) است که در این مطلب تنها به مقایسه سه ابزار میپردازیمFlutterReact NativeIonicاولین عامل مقایسه را میتوان زبان پایه این ابزارها دانست زبان دارت (Dart) پایه فریمورک یا کیت توسعه نرم افزار (SDK) فلاتر است که توسط شرکت گوگل معرفی و عرضه شده است. این زبان کاملا قابل ترجمه(compile) به کد محلی(native code) برای تمامی پلتفرم هاست.زبان جاوا اسکریپت(Js) و کتابخانه React پایه فریمورک ریکت نیتیو است. لازم به ذکر است که این زبان و فریمورک توسط شرکت فیسبوک توسعه داده میشود. درمورد ایونیک کمی ماجرا فرق دارد این ابزار برپایه js+html+css است که برای توسعه وب استفاده میشود و از نسخه 4 میتوان از کامپوننت های فریمورک ها توسعه فرانت وب برای ظاهر سازی آن استفاده کرد هرچند که شرکتی به بزرگی مانند گوگل یا فیسبوک حامی آن نیست. دومین عامل سازگاری کد با پلتفرم های مختلف استمقایسه سازگاری ابزار ها با سطح محلی1. ایونیک : سازگاری کد با پلتفرم های مختلف عالی مفهوم "برنامه مبتنی بر وب" تضمین می کند که می توانید به راحتی از کد خود مجددا استفاده کنید - شما در پایان فقط یک برنامه مبتنی بر وب می سازید. کتابخانه ی عالی کامپوننت هایی از اجزای سازگار (که بطور خودکار برای پلتفرمی که برنامه در آن اجرا می شود طراحی شده است) نیز به این موضوع کمک می کند.2.فلاتر:سازگاری کد با پلتفرم های مختلف عالی (ولی کمتر از ایونیک)به کمک ساختار ویجت (widget) محور فلاتر سازگاری بالایی با پلتفرم ها دارد بعلاوه اینکه برای ظاهر ios نیز ابزارهایی دارد که باعث افزایش کدنویسی به نسبت ایونیک میشود3.ریکت نیتیو : سازگاری متوسط (کمی کمتر از متوسط)با وجود اینکه به کد محلی ترجمه میشود ولی به دلیل وجود کامپوننت های پایه کمتر و اجبار توسعه دهنده به ویرایش زیاد کامپوننت ها سازگاری کمی دارد.هرچند با وجود کتابخانه هایی کار باآن آسان تر شده است.سومین عامل مقایسه سرعت یادگیری استسرعت یادگیری ابزارها در مقایسه با سطح محلیدراین مقایسه همه ابزار ها تقریبا در یک سطح هستند هرچندکه نیاز به کمی تغییرات آن ها را متفاوت ساخته است چهارمین عامل کامپوننت های آماده استکامپوننت های آماده ابزار ها در مقایسه با سطح محلی ایونیک در هسته خود مجموعه بزرگی از اجزای از پیش ساخته است. کامپایلر /تولچین ای که یک برنامه محلی را به همراه دارد ،با بخشی از پکیج Ionic (از طریق CLI آن ) و به کمک پکیج های دیگری مانند Cordova یا Capacitor مؤلفه های ارائه شده توسط Ionic به طور خودکار با پلت فرم برنامه اجرا می شود و بنابراین ، Ionic ایجاد برنامه های زیبا و بومی را به آب خوردن تبدیل می کند!فلاتر به کمک Material-style , Cupertino-style کامپوننت یا ویجت های زیادی برای توسعه دهندگان آماده کرده است تا براحتی بتوانند ظاهر کاربری زیبا طراحیکنند.در ریکت نیتیو درصدی از کامپوننت ها طراحی شده اند اما علاوه بر اینکه نیاز به ویرایش دارند تطبیق پذیر نیستند و این دو باعث شده است تا در سطح پایینی باشدپنجمین عامل اکوسیستم استبه این معنا که یافتن جواب سوالات و یا کتابخانه های مورد نیاز چقدر راحت استمقایسه اکوسیستم ابزار ها با سطح محلیایونیک به خاطر جامعه بزرگ جاوا اسکریپت و به کمک جامعه بزرگ انگولار که با ان میتوان ایونیک را توسعه داد بسیار اکوسیستم بزرگی دارد و با استفاده از ابزار npm دسترسی به کتابخانه های زیادی را فراهم کرده است.فلاتر همانگونه که از بحث ها در سایت StackOverFlow مشخص است با وجود جوان بودن به طور چشم گیری در حال رشد است و با استفاده از pub دسترسی به کتابخانه های زیادی را فراهم کرده استریکت نیتیو نیز به لطف جاوا اسکریپت جامعه و کتابخانه های بزرگ و زیادی دارد اما نکته منفی این است که شما اغلب باید به اکوسیستم تکیه کنید ، زیرا تنها ویژگی های اصلی در خود React Native گنجانده شده است.ششمین عامل محبوبیت استمقایسه محبوبیت ابزار ها در مقایسه با سطح محلیاگر در این مرحله مقدار محبوبیت هر ابزار را در سایت گیتهاب را شاخص در نظر بگیریمریکت نیتیو با 80 هزار استار در رتبه اولفلاتر با 72 هزار استار در رتبه دومو ایونیک با 39 هزار استار در رتبه سوم استهفتمین عامل پرفورمنس یا بازدهی مناسب استمقایسه بازدهی با سطح محلیبه دلیل ساختار مبتنی بر وب ایونیک بدترین پرفورمنس و بازدهی را داردفلاتر و ریکت نیتیو با توجه به ترجمه شدن به سطح محلی تفاوت چندانی ندارند ولی نحوه عملکرد ان ها در کاربردها و دستگاه های متفاوت باعث شده که دقیقا یک امتیاز نداشته باشندهشتمین عامل دسترسی به ویژگی های محلی استمقایسه دسترسی ابزارها با سطح محلیایونیک به خاطر ساختار مبتنی بر وبی که دارد به سطح بسیار محدودی از ویژگی ها دسترسی دارد هرچند که به ویژگی های رایجی مثل دوربین دسترسی داردتیم فلاتر در طی یک سال اخیر پکیج های خوبی را برای اتصال به ویژگی های محلی توسعه داده اند با اینهمه شما میتوانید مستقیما به کمک زبان های جاوا و سوییفت به ویژگی ها دسترسی یابیدبرای ریکت نیتیو به لطف محوبیبت بالا نیز پکیج های زیادی موجود است اما نکته منفی اینست که هسته اصلی ممکن است با پکیج ها سازگار نباشدنهمین عامل کاربرد جهانی استمقایسه سطح برنامه های نوشته شده با هر ابزار ایونیک توسط کسب کارهای کوچک و زود بازده بیشتر استفاده شده است هرچند که دلیلی بر استفاده در اپ های بزرگ نیست نمونه اپ های پیاده سازی شده با ایونیک2. بر خلاف به نسبت جوان بودن فلاتر توسط برنامه های بزرگی استفاده شده است.نمونه اپ های پیاده سازی شده با فلاتر3. ریکت نیتیو توسط کمپانی های بزرگ تری استفاده شده است هرچند که مهاجرت کمپانی های بزرگی مانند AirBnB ازین ابزار کمی امتیاز ان را کاهش میدهدنمونه اپ های پیاده سازی شده با ریکت نیتیوبا تمام مقایسه های بالا در آخر باید گفت هر سه این ابزار ها قوی و قدرتمند اند و اینکه شما بعنوان برنامه نویس به سمت کدام میروید کاملا به سلیقه خودتان مربوط استدر اخر نیاز دانستم که نمودار علاقه مندی افراد به این سه ابزار را مبتنی بر جستجوی یک سال اخیر مردم ایالات متحده قرار دهماین نمودار در لینک زیر قابل دسترسی است https://stackshare.io/stackups/flutter-vs-ionic-vs-react-nativeبا تشکر از شما بابت خواندن این مطلب علاقه مندم که نظرات شما را نیز بدانم بخصوص راجب ابزارهایی که در این مطلب بررسی نشد ?✌