جستجو برای:
سبد خرید 0
  • خانه
  • دوره های آموزشی
    • دوره های حضوری و آنلاین
      • دوره جامع برنامه نویسی اندروید
      • دوره جامع برنامه نویسی فلاتر
      • دوره برنامه نویسی React Native
      • دوره آموزشی برنامه نویسی iOS
    • دوره های متخصص و حرفه ای
      • دوره متخصص اندروید (پروژه محور)
      • دوره متخصص فلاتر (پروژه محور)
      • دوره آموزش امنیت در اندروید
      • دوره درآمدزایی دلاری از گوگل پلی در ایران
  • آموزش رایگان
    • دوره رایگان اندروید
    • دوره رایگان فلاتر
  • مشاورهجدید
  • دوره VIP
  • وبلاگ
ورود
گذرواژه خود را فراموش کرده اید؟
عضویت

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

ارسال مجدد کد یکبار مصرف (00:60)
  • 02188945907
  • info@amooznegar.com
  • لیست علاقه مندی ها
آکادمی آموزنگار
  • خانه
  • دوره های آموزشی
    • دوره های حضوری و آنلاین
      • دوره جامع برنامه نویسی اندروید
      • دوره جامع برنامه نویسی فلاتر
      • دوره برنامه نویسی React Native
      • دوره آموزشی برنامه نویسی iOS
    • دوره های متخصص و حرفه ای
      • دوره متخصص اندروید (پروژه محور)
      • دوره متخصص فلاتر (پروژه محور)
      • دوره آموزش امنیت در اندروید
      • دوره درآمدزایی دلاری از گوگل پلی در ایران
  • آموزش رایگان
    • دوره رایگان اندروید
    • دوره رایگان فلاتر
  • مشاورهجدید
  • دوره VIP
  • وبلاگ
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

آکادمی آموزنگار > اخبار > برنامه نویسی > برنامه نویسی react native > Flutter یا React Native کدامیک را انتخاب کنیم؟

Flutter یا React Native کدامیک را انتخاب کنیم؟

1400-05-30
ارسال شده توسط آموزنگار
برنامه نویسی react native، فلاتر
فلاتر یا ریکت نیتیو

آیا می خواهید برنامه ها را سریعتر توسعه دهید؟ و اینکه میخواهید با توسعه کراس پلتفرم (cross platform) به دنبال کاهش هزینه ها باشید اما نمیدانید کدام تکنولوژی را انتخاب کنید؟

در این مقاله ما به شما کمک کنیم تا فریمورکی که با ایده برنامه شما مطابقت دارد را پیدا کنیم.

Flutter در برابر React Native: به طور خلاصه

FlutterReact Native Flutter
تعریف کلییک Toolkit UI قابل حمل برای ایجاد برنامه های Native کامپایل شده در موبایل ، وب و دسکتاپ از یک codebaseفریمورکی برای ایجاد برنامه های native به وسیله React
انتشار رسمیدسامبر 2018 ، Google I/Oمارس 2015 ، کنفرانس F8 فیسبوک
سازندهGoogleFacebook
رایگان و منبع بازFree & open sourceبلهبله
زبان برنامه نویسیدارت (Dart)جاوا اسکریپت (JavaScript)
محبوبیت120،000 ستاره در Github (مه 2021)95،300 ستاره در Github (مه 2021)
قابلیت Hot Reloadبلهبله
عملکرد nativeعالیعالی
UI (رابط کاربری)برنامه های Flutter در سیستم عامل های به روز همانند نسخه های قدیمی عملکرد قابل قبولی دارند.از آنجا که آنها فقط یک codebase دارند ، عملکرد برنامه ها در iOS و Android یکسان است ، اما به لطف Material Design و ویجت های Cupertino ، می توانند از platform design نیز الگو برداری کنند. چگونه ممکن است؟Flutter شامل دو دسته ویجت است که با design languages خاص مطابقت دارد: ویجت های Material Design ، design languages گوگل را با همان نام پیاده سازی می کنند. ویجت های Cupertino از طراحی iOS اپل الگو برداری می کنند.این بدان معنی است که عملکرد و رفتار  برنامه Flutter شما در هر پلتفرمی طبیعی است و از کامپوننت های native خود الگو برداری می کند.کامپوننت های برنامه دقیقاً شبیه کامپوننت های native هستند (به عنوان مثال یک دکمه(Button) در دستگاه iOS دقیقاً شبیه یک دکمه native iOS است و در Android هم به همین صورت است).در حقیقت استفاده React Native از کامپوننت هایnative under the hood ، باید به شما این اطمینان را بدهد که پس از هرگونه به روزرسانی UI سیستم عامل ، کامپوننت برنامه شما نیز فوراً upgrade شود.گفته می شود ، این عمل می تواند UI برنامه را به هم بریزد ، اما بسیار کم اتفاق می افتد.اگر می خواهید برنامه شما در کراس پلتفرم ها و همچنین در نسخه های قدیمی سیستم عامل (همانطور که Flutter به آن دست یافته) تقریباً یکسان به نظر برسد ، پس از کتابخانه های third-party استفاده کنید. آنها به شما امکان می دهند از کامپوننت های Material Design به جای کامپوننت native استفاده کنید.
اشتراک گذاری کدبا Flutter 2 ، ما می توانیم از همان codebase درپنج سیستم عامل استفاده کنیم: iOS ، Android ، Windows ، macOS و linux.فلاتر حتی می تواند در اتومبیل ها ، تلویزیون ها و لوازم خانگی هوشمند به کار گرفته شود.شاید بزرگترین خبر در موردFlutter 2 ، پشتیبانی از کیفیت تولید وب باشد. کاربرد آن به شرح زیر است:·       PWA ها ، دسترسی وب را با قابلیت های یک برنامه رومیزی(Desktop) ترکیب می کند .·       SPA ها، یک بار بارگیری می شوند و داده ها را به سرویس های اینترنتی از و به اینترنت منتقل می کنند.·       برنامه های موجود تلفن همراه – اجازه می دهد برنامه های Flutter بر روی دسکتاپ اجرا شوند.iOS و Android ، اما کتابخانه هایی وجود دارد که به شما امکان می دهد از کد یکسانی برای ایجاد برنامه های iOS ، Android ، وب و Windows 10 استفاده کنید.همچنین شما می‌توانید کد مشترک در موبایل, دسکتاپ و برنامه‌های وب را در یک repository جداگانه extract کنید و از آن به عنوان یک پروژه جداگانه استفاده کنید ; سپس به روش دیگر برای آن dependency injection را انجام دهید.این کار به توسعه دهنده اجازه می‌دهد تا بر روی نوشتن کد برای یک پلتفرم خاص بدون نیاز به سازگاری با یک برنامه دیگر تمرکز کند.
برترین برنامه های ساخته شده با این تکنولوژیبرنامه Xianyu سازنده Alibaba ، برنامه Hamilton سازنده Hamilton Musical ، برنامه Google Ads ، Philips Hue ، My BMW ، MakaniInstagram, Facebook, Facebook Ads, Skype, Tesla
زمان ارائه به بازارمعمولا بسیار سریعتر از توسعه native است.همانند سرعت توسعه با Flutter است.با این حال…React Native از المان های bridge  و native استفاده می کند ، بنابراین ممکن است برای هر پلتفرم به بهینه سازی جداگانه نیاز داشته باشد. مشکلی که Flutter مبتنی بر widget با آن مواجه نمی شود، در نتیجه ممکن است توسعه برنامه با React Native طولانی تر شود.
مزایا ·       ظاهر عالی به لطف ویجت های قدرتمند·       رشد سریع community و محبوبیت.·       documentation عالی با پشتیبانی قوی از تیم Flutter (که توسعه با Flutter را آسان می کند) ؛·       بهبود Flutter در وب و ارائه یک codebase قدرتمند در سراسر پلتفرم های تلفن همراه و وبثبات (5+ سال در بازار)بسیاری از market player ها از React Native استفاده می کنند.انجمن (community) کامل و وسیعیادگیری آسان تکنولوژیتعداد زیاد آموزش و کتابخانه ، که امکان توسعه سریع و آسان را فراهم می کند.کد را به راحتی می توان مجدداً برای توسعه برنامه وب و دسکتاپ استفاده کرد.
چه زمانی استفاده از آن مناسب نیست ؟اگر…برنامه شما نیاز به3D Touch داشته باشد. (در حال حاضر ، Flutter از 3D پشتیبانی نمی کند ،اما این ویژگی در نقشه راه بلند مدت تیم Flutter وجود دارد)طراحی برنامه شما برای platform خاصی باشد.نیاز به تعاملات متعدد با سیستم عامل و یا نیاز به کتابخانه های native کمیاب و با کم شناخت.نیاز به یک رابط کاربری minimalistic (ساده گرا) دارید ، اما استفاده از سخت افزار تلفن همراه بسیار مهم باشد. (به عنوان مثال برنامه ای که موسیقی پخش می کند یا فقط عکس می گیرد).می خواهید فورا یک برنامه (برنامه کم حجم) ایجاد کنیداگر برنامه شما شبیه هر یک از موارد بالا است ، بهتر است توسعه native را انتخاب کنید.اگر…برنامه شما باید task کم‌تر یا خیلی خاص (مانند محاسبات) درbackground را انجام دهد.شما نیاز به ارتباط custom با بلوتوث دارید (که پیاده سازی آن با استفاده از React Native دشوار است).می خواهید یک برنامه فقط برای Android ایجاد کنیددر حقیقت ، اگر می خواهید یک برنامه iOS بسازید و با جاوا اسکریپت آشنایی دارید ، React Native گزینه خوبی است .اما اگر می خواهید فقط یک برنامه Android داشته باشید ، احتمالاً بهتر است توسعه native با یک تیم دیگر داشته باشید. چرا؟ در حال حاضر React Native، iOS را بهتر از Android پشتیبانی می کند.اگر برنامه شما هر یک از موارد بالا را داشته باشد ، بهتر است توسعه native را انتخاب کنید.

مقدمه ای بر Flutter و React Native

فلاتر  (Flutter)چیست؟

Flutter یک Toolkit UI قابل حمل(Portable)  است. به عبارت دیگر ، یک برنامه جامع توسعه نرم افزار (SDK) است که شامل ویجت ها و ابزارها است.

فلاتر

چرا Flutter ؟

Flutter توسعه برنامه های cross-platform را امکان پذیر می کند.

Flutter روش ساده ای فراهم می کند تا توسعه دهندگان اپلیکیشن های جذاب موبایل (iOS ، Android) ، وب و دسکتاپ را با استفاده از یک codebase ایجاد و گسترش دهند.

Flutter’s desktop support

می توانید سورس کد Flutter را در یک برنامه  nativeدسکتاپ ویندوز ، macOS یا لینوکس کامپایل کنید.

توسعه دهندگان می توانند پلاگینی که از سیستم عامل های macOS ، Windows یا Linux پشتیبانی می کنند نصب کنند ، یا می توانند خودشان ایجاد کنند. در نتیجه با Flutter ، می توانید سورس کد Flutter را به زبان native برنامه دسکتاپ Windows ، macOS یا Linux کامپایل کنید.

Flutter’s desktop support به صورت نسخه بتا در دسترس است. با این حال، هنوز gap هایی در ویژگی های آن (feature) وجود دارد.

Flutter for Web

همان تجربیات (experiences) موبایل را در وب ارائه می دهد. این بدان معناست که اکنون می توانید برنامه های Android  ، iOS و browser را  از همان codebase بسازید.

نحوه خروجی گرفتن ios در فلاتر بدونه امضا و بدونه نیاز به اکانت
خواندن این مقاله
قدرت گرفته از افزونه نوشته‌های مرتبط هوشمند

Flutter for Web در سناریوهای زیر بسیار مفید است:

  • Progressive Web Apps (PWA) ساخته شده با Flutter:

فلاتر ، PWA های با کیفیت بالا را ارائه می دهد که محیط کاربری یکپارچه ای دارد ، از جمله نصب ، پشتیبانی آفلاین و UX مناسب

  • Single Page Applications (SPA)

یک بار بارگیری می شوند و داده ها را به سرویس های اینترنتی منتقل می کنند.

  • برنامه های موجود تلفن همراه

پشتیبانی وبFlutter یک مدل تحویل browser-base را برای برنامه های موجود تلفن همراه Flutter ارائه می دهد.

کمی بیشتر در مورد Flutter…

  • رایگان و منبع باز (Open Source) است.
  • بر اساس Dart است ، یک زبان برنامه نویسی شی گرا (نسخه دارت در حال حاضر 2.14 می باشد)است. نسبتاً جدید است و یادگیری آن آسان است . مخصوصاً برای توسعه دهندگان با تجربه که بیشتر با java و C#آشنا هستند. همچنین ، دارت از sound null safety پشتیبانی می کند.
  • معماری آن بر اساس برنامه نویسی واکنش گرا است که بسیار محبوب است. (از همان سبک React پیروی می کند)
  • ویجت های rendering engine با کارایی بالا ارائه می دهد که جذاب ، سریع و customizable هستند
  • با وجود ویجت ها، برنامه های Flutter ظاهر فوق العاده ای دارند

سازنده فلاتر کیست ؟

تیمی از گوگل Flutter را ساخت.

اما به عنوان یک پروژه open source ، هم گوگل و هم انجمن توسعه دهندگان Flutter در توسعه آن سهیم هستند.

مختصری از تاریخچه Flutter:

  • فوریه 2018 ، کنگره جهانی موبایل – اولین نسخه بتا Flutter
  • آوریل 2018 ، Google I/O – Flutter beta 2 release
  • مه 2018 ، Google I/O – Flutter beta 3 release
  • Flutter به 100 repository برتر GitHub می پیوندد
  • ژوئن 2018 – Flutter Preview 1 release
  • سپتامبر 2018 – Flutter Preview 2 release
  • نوامبر 2018 – Dart 2.1 release
  • دسامبر 2018 ، Google I/O – Flutter 1.0 release
  • یک نقطه عطف مهم برای این فناوری ، از دسامبر 2018 ، Flutter آماده و stable برای تولید در نظر گرفته شده است
  • فوریه 2019 ، کنگره جهانی موبایل – انتشار Flutter 1.2
  • مه 2019 ، کنگره جهانی موبایل:
  • Flutter 1.5 release
  • Flutter برای نسخه پیش نمایش وب
  • انتشار دارت 3
  • جولای 2019 ، Flutter 1.7 release
  • سپتامبر 2019 ، Flutter 1.9 release
  • Flutter به طور مرتب توسعه یافته است و گوگل نسخه های جدیدتر خود را منتشر کرده است. جدیدترین نسخه آن 2.0 است و در Google I/O در ماه مه 2021 اعلام شد.

علاوه بر این ، Flutter 2.0.0 شامل صدها تغییر در پاسخ به بازخورد(feedback) توسعه دهندگان است.

Flutter دارای 188 درخواست pull فعال در GitHub (مه 2021) است ، که نشان می دهد انجمن توسعه دهندگان از آن استفاده می کنند و به بهبود آن کمک می کنند.

به طور خلاصه ، Flutter همچنان یک فناوری نوپا است.

با این حال ، با توجه به سرعت پیشرفت Flutter و محبوبیت بالای آن می توانیم با اطمینان بگوییم که باتوجه سنی که دارد بسیار پایدار و جاافتاده است.

کدام یک از برنامه های مشهور با Flutter ساخته شده اند؟

برنامه Xianyu توسط Alibaba (برنامه در App Store ، برنامه در Google Play) . Alibaba یکی از بزرگترین شرکت های تجارت الکترونیک در جهان است

برنامه Hamilton (برنامه در App Store ، برنامه در Google Play ، وب سایت) – برنامه رسمی Broadway Musical

برنامه Google Ads (برنامه در App Store ، برنامه در Google Play)

برنامه eBay Motors (برنامه در App Store ، برنامه در Google Play) – یک ابزار قدرتمند برای مشاهده ، خرید و فروش وسایل نقلیه  ، به صورت مستقیم از موبایل مصرف کننده (consumers) است.

Stadia (برنامه در App Store ، برنامه در Google Play) – پلت فرم بازی Google ، کاربران می توانند در لپ تاپ ، رایانه رومیزی و موبایل بازی کنند.

Groupon (برنامه در Store App ، برنامه در Google Play). از Flutter برای کمک به صدها هزار تاجر برای پیگیری عملکرد کمپین ، مدیریت رضایت مشتری و دریافت پشتیبانی استفاده می کند.

Baidu Tieba (برنامه در App Store) – بزرگترین بستر ارتباطی چینی که توسط شرکت موتور جستجوی چینی Baidu میزبانی می شود.

Phillips Hue (برنامه در App Store ، برنامه در Google Play) –  برنامه ای که نور چراغ ها و لوازم جانبی Hue را کنترل می کند.

برنامه Topline توسط Abbey Road Studios (برنامه در App Store ، برنامه در Google Play)

برنامهReflectly  (برنامه در Store App ، برنامه در Google Play ، وب سایت)

React Native چیست؟

React Native یک framework اپلیکشن موبایل می باشد که Open Source است و از جاوا اسکریپت استفاده می کند.

چرا React Native ؟

  • توسعه کراس پلتفرم
  • ساخت برنامه های موبایل با استفاده از زبان جاوا اسکریپت
  • توسعه برنامه های کاربردی برای Android و iOS با یک codebase
  • استفاده از طراحی مشابه

لطفا توجه داشته باشید

  • برنامه های ایجاد شده با React Native ، mobile web apps نیستند. همان بلوک‌های سازنده اصلی UI را همانند اپلیکیشن iOS و آندروید استفاده می‌کند این بدان معناست که به جای ساختن در جاوا ، کاتلین یا سوئیفت ، شما با استفاده از جاوا اسکریپت و React همان بلوک‌های سازنده را کنار هم قرار می‌دهید.
  • React Native از کامپوننت هایی استفاده می‌کند که مشابه Flutter هستند.

چه کسی React Native را ایجاد کرد؟

شرکت FaceBook

مختصری از تاریخچه React Native:

تابستان 2013 ، React Native به عنوان یک پروژه داخلی فیس بوک آغاز شد

ژانویه 2015 ، کنفرانس React.js – نسخه پیش نمایش React Native 1

مارس 2015 ، کنفرانس F8 – راه اندازی رسمی React Native

فیس بوک React Native را اعلام کرد ، “برای استفاده آماده شده و در Github در دسترس است”

با نگاهی به موارد فوق ، دو چیز به طور قطعی مشخص است: React Native قدیمی تر از Flutter است و دارای انجمن بزرگتری است. ناگفته نماند که تیم فیس بوک زمان زیادی برای پایداری API و همچنین تمرکز بر رفع مشکلات اساسی داشته است.

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

  • Lean Core – کاهش اندازه یک برنامه با انتقال component یا feature های اختیاری به مخازن(Repository) جداگانه (برای افزودن به برنامه در صورت نیاز)
  • TurboModules – برای بهبود مدیریت ماژول های native
  • React Native Fabric

چه برنامه های مشهوری با React Native ساخته شده اند؟

  • Instagram (iOS, Android)
  • Facebook (iOS, Android)
  • Fb Ads Manager (iOS, Android)
  • Pinterest (iOS, Android)
  • Skype (iOS, Android)
  • Tesla (iOS, Android)
  • Bloomberg (iOS, Android)
  • Wix.com (iOS· Android)

مزایا و معایب Flutter:

مزایای Flutter:

  • ویژگی Hot reload = برنامه نویسی سریع

از نظر توسعه دهندگان ، Flutter توسعه ای پویاتر و سریعتر را ارائه می دهد. این ویژگی یکی از بزرگترین نکات در مورد Flutter است که توسط هر شرکت توسعه دهنده برنامه های موبایل مورد استقبال قرار گرفته است.

توسعه دهندگان می توانند تغییراتی را در codebase در حال اجرا ایجاد کنند و بلافاصله آنها را در برنامه ببینند. که در اصطلاح به آن Hot reload می گویند و معمولاً  (میلی ثانیه) طول می کشد تا تغییرات نشان داده شود.

این ویژگی به تیم ها کمک می کند تا feature ها را اضافه کنند ، اشکالات را برطرف کرده و ایده های جدید را در یک لحظه آزمایش کنند.

  • یک codebase ، دو پلتفرم موبایل (و بیشتر !)

با Flutter ، توسعه دهندگان می توانند فقط با یک پایگاه کد برای دو پلتفرم برنامه بنویسند و هر دو سیستم عامل iOS و Android را پوشش می دهند.

  • تا 50 درصد تست کمتر

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

ما تقریباً 50 درصد تست های خودکار کمتر می نویسیم زیرا می توانیم آزمایشهای یکسانی را برای اجرا در هر دو پلتفرم ایجاد کنیم و تقاضا برای تیم QA خود را کاهش دهیم.

نصب و راه اندازی فلاتر
خواندن این مقاله
قدرت گرفته از افزونه نوشته‌های مرتبط هوشمند

با این وجود ، هنوز باید تستmanual،  مشابه برنامه نویسی native اجرا کنید ، زیرا متخصصان QA شما باید هر دو برنامه را در هر پلتفرم ، با دست بررسی کنند.

  • برنامه های سریعتر

برنامه های Flutter همواره سریع عمل می کنند . بدون اینکه هنگام Scroll ، هنگ کنند یا قطع شوند. چرا؟

Flutter از کتابخانه گرافیک Skia استفاده می کند. در این حال ، هر بار که View تغییر می کند ، UI دوباره ترسیم می شود.

بیشتر کارها روی GPU انجام می شود. به همین دلیل است که UI Flutter روان است و 60 فریم در ثانیه (فریم در ثانیه) deliver دارد.

با این حال ، باید در حین توسعه مراقب باشید تا باعث ترسیم مجدد المان های viewای که داده های آنها تغییر نکرده است ، نشوید.

ترسیم مجدد کل view به جای المان هایی که تغییر می کنند ، می تواند بر عملکرد و سرعت برنامه تأثیر بگذارد ، به خصوص اگر شما به بارگذاری منظم view نیاز داشته باشید ، به عنوان مثال برنامه کرونومتر

  • Design هایی که کاربران شما به آن علاقه مندند.

Flutter از کامپوننت های native استفاده نمی کند. در عوض ، Flutter دارای مجموعه ای از ویجت های سفارشی خود است که توسط فریمورک موتور گرافیکی ارائه و مدیریت می شود. کاربران کامپوننت UI متفاوتی نسبت به برنامه های native خواهند دید ، اما این لزوماً یک نقطه ضعف نیست.

  • UI مشابه ، حتی در دستگاه های قدیمی تر

برنامه های جدید حتی در سیستم های قدیمی iOS یا Android یکسان به نظر می رسند ، بنابراین هرگز نباید نگران support دستگاه های قدیمی باشید.

  • مناسب برای MVP ها :

اگر نیاز دارید که یک MVP (Minimum Viable Product) (محصولی که در مقابل ریسک تولید ضریب بازگشت سرمایه بالایی دارد.) برای برنامه خود بسازید. مثلاً به عنوان ویترین برای سرمایه گذاران بالقوه ، Flutter بهترین گزینه است ، به ویژه اگر زمان کوتاه باشد.

معایب Flutter:

  • وسعت انجمن(community) توسعه دهندگان:

گفته می شود، یک مزیت کلیدی برای React Native نسبت به Flutter ، توسعه دهندگان با تجربه تر و با تجربه تر است. علاوه بر این ، از نظر زبان های برنامه نویسی ، دارت حداقل به اندازه جاوا اسکریپت استفاده نمی شود ، حداقل در حال حاضر.

انجمن توسعه دهندگان برای آموزش مخاطبان خود و کسب تجربه بیشتر ، به زمان نیاز دارد.

با این حال انجمن Flutter به طور تصاعدی در حال رشد است.

  • کتابخانه ها و پشتیبانی – چشمگیر ، اما نه به اندازه توسعه native

پشتیبانی گوگل از Flutter موثر بوده ، اما Flutter هنوز نوپاست. این بدان معناست که شما همیشه نمی توانید نیاز خود را در کتابخانه های موجود پیدا کنید ، بنابراین توسعه دهندگان ممکن است نیاز به ایجاد قابلیت های سفارشی خودشان داشته باشند ، که این امر به زمان نیاز دارد.

  • پشتیبانی از ادغام مداوم

Flutter از پلتفرم های CI مانند Travis یا Jenkins پشتیانی نمی کند. بنابراین ، برای دستیابی به ساخت و تست خودکار ، توسعه دهندگان باید از اسکریپت های سفارشی استفاده کنند.

  • احتمال خطر پلتفرم

 اگرچه Flutter منبع باز(open source) است ، ولی چنانچه Google تصمیم بگیرد از پروژه کناره گیری کند ،این اتفاق فاجعه باری رخ خواهد داد. در این صورت ما نمی توانیم دنیایی را تصور کنیم که گوگل از Flutter دور می شود.

  • سایز برنامه

برنامه های کاربردی نوشته شده در Flutter حجم بیشتری نسبت به برنامه های native دارند. با این حال ، تیم Flutter به دنبال کاهش حجم برنامه های ساخته شده هستند.

React Native – مزایا و معایب

مزایای React Native

  • برنامه نویسی سریع = Fast refresh

تیم React Native ، در نسخه 0.61 ویژگی جدیدی به نام fast refresh را افزوده است که   Live reload و Hot Reload را با هم به کار می برد.

  • یک codebase ، دو پلتفرم موبایل (و بیشتر!)

جاوا اسکریپت هنگام نوشتن برنامه های چند پلتفرمی با به اشتراک گذاشتن کد با web apps به شما کمک می کند. این امر با ایجاد کامپوننت های  abstractانجام می شود که می توانید آنها را در پلتفرم ها کامپایل کنید.

به عنوان مثال در پایین کتابخانه هایی را مشاهده می کنید که با آنها می توانید به طور همزمان کد را در پلتفرم هایی غیر از iOS و Android (از جمله برنامه های وب و دسکتاپ) ایجاد کنید:

  • React Native for Web – از Android ، iOS و وب پشتیبانی می کند (توییتر از آن برای ایجاد Twitter Lite استفاده کرد)
  • ReactXp – توسط تیم Skype برای پشتیبانی از Android ، iOS و وب توسعه یافته است. بعلاوه ، روی ویندوز 10 (UWP) کار می کند
  • react-native-windows- توسط تیم مایکروسافت توسعه یافته و از همه دستگاه های پشتیبانی شده توسط ویندوز 10 (رایانه ها ، تبلت ها ، 2 در 1 ، ایکس باکس ، دستگاه های واقعیت ترکیبی و غیره) پشتیبانی می کند.
  • استفاده از یک زبان بسیار محبوب به نام جاوا اسکریپت

جاوا اسکریپت را بسیاری از توسعه دهندگان به خوبی می شناسند (در حالی که دارت هنوز چندان شناخته شده یا زیاد مورد استفاده قرار نگرفته). و اگر توسعه دهنده ای هستید که زبانهای برنامه نویسی با حالت ایستا (statically type)را ترجیح می دهید ، حتی می توانید از TypeScript، زیرمجموعه جاوا اسکریپت استفاده کنید.

  • آزادی انتخاب توسعه دهنده

با React Native توسعه دهندگان می توانند برنامه های کراس پلتفرم بسازند. نه بیشتر نه کمتر.

همچنین توسعه دهنده تصمیم می گیرد بر اساس الزامات پروژه و اولویت های خود ، از چه راه حل هایی می خواهد استفاده کند.

اگر توسعه دهنده ، Global State را انتخاب کند (نحوه ذخیره و مدیریت داده هایی که در بسیاری از کامپوننت های برنامه استفاده می شود) ، می تواند یک کتابخانه روتر را انتخاب کند یا بین جاوا اسکریپت و TypeScript انتخاب کند و همچنین می تواند تصمیم بگیرد که آیا ترجیح می دهد از یک کتابخانه UI سفارشی استفاده کند یا کتابخانه خود را بنویسد.

  • بلوغ و پختگی نسبی

از انتشار رسمی React Native بیش از 5 سال می گذرد ، بنابراین تیم فیس بوک زمان زیادی برای پایداری API و همچنین تمرکز بر رفع و حل مشکلات داشته است. مانند کاهش حجم برنامه

  • دارای یک انجمن فعال و گسترده

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

و اگرآن را با Repository ها، مقالات ، ابزارها و مطالب مربوط به فناوری های خاص  مقایسه کنید ، می بینید که React Native بسیار بهتر از Xamarin ، Flutter یا Ionic می باشد.

علاوه بر این ، React Native بخشی از “خانواده React” است. در حالی که بسیاری از کتابخانه های آن،  پلتفرم آگنوستیک هستند (مانند Formik ، React Router ، styled components) ، به این معنی که آنها در وب و موبایل کار می کنند.

همچنین Expo دسترسی به API های native را ساده می کند و راه حل های آماده ای برای ویژگی های خاص تلفن همراه دارد (به عنوان مثال ، push notification).

دومین کتابخانه AWS Amplify نام دارد. راه حلی که یکپارچه سازی با ویژگی های AWS ، را با پوشش دادن authentication ، ذخیره سازی ، push notification و analytics ساده می کند.

  • یادگیری آسان برای توسعه دهندگان React

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

  • تا 50 درصد تست کمتر

ما تقریباً 50 درصد تست های خودکار را کمتر می نویسیم زیرا می توانیم آزمایشهای یکسانی را برای اجرا در هر دو پلتفرم ایجاد کنیم و تقاضا برای تیم QA خود را کاهش دهیم. که به نظر همانند توسعه برنامه Flutter می باشد.

معایب React Native

  • Native نیستند
  • کامپوننت های کمتر از پیش ساخته شده

React Native فقط از کامپوننت های اصلی از پیش آماده شده پشتیبانی می کند (بسیاری از آنها با یک پلت فرم از پیش آماده شده سازگار هستند ، مانند button و loading و indicator و  slider).

  • آزادی انتخاب توسعه دهنده

هنگامی که توسعه دهنده یک پروژه جدیدی ایجاد می کند ، باید تصمیم بگیرد که از کدام پکیج navigation و همچنین از کدام global state management  استفاده کند.

درک تفاوت های جزیی هر راه حل ، ممکن است زمان زیادی بگیرد تا در ادامه ، بهترین راه حل ها برای پروژه تصمیم گیری شود.

  • تعداد زیادی پکیج رها شده

React Native کتابخانه های زیادی دارد. متأسفانه ، بسیاری از آنها یا کیفیت پایینی دارند، یا کلا رها شده اند.

توصیه می شود  برای جلوگیری از استفاده از پکیج های رها شده ، تعداد issues و دفعات commits در یک مخزن(Repository) را بررسی کنید.

  • رابط کاربری (UI) ضعیف

اینکه React Native از  کامپوننت هایnative  در پشت پرده استفاده می کند باید به شما اطمینان دهد که پس از هر بار به روزرسانیUI  سیستم عامل، کامپوننت برنامه شما نیز فوراً upgrade می شود.

این عمل می تواند UI برنامه را به هم بریزد اما احتمال آن بسیار کم است.

اگر به روزرسانی ها تغییرات خاصی را در API کامپوننت های native ایجاد کنند ، می توانند حتی خطرناک تر شوند. که چنین رویدادی بسیار کم اتفاق می افتد.

در حالی که در Flutter (به لطف نحوه بازسازی کامپوننت های native فریم ورک) ، UI برنامه بسیار پایدارتر است.

  • برنامه ها بزرگتر از برنامه های native هستند

اپلیکیشن های نوشته شده با React Native باید بتوانند کد جاوا اسکریپت (ماشین مجازی جاوا اسکریپت) را اجرا کنند. اندروید به طور پیش فرض این قابلیت را ندارد . به این معنی که برنامه ها باید دارای کتابخانه ای باشند که از کد جاوا اسکریپت پشتیبانی می کنند ، در نتیجه برنامه هایی بزرگتر از برنامه های  nativeاندرویدی هستند.

برنامه های iOS ساخته شده با React Native این مشکل را ندارند ، اما هنوز هم معمولاً بزرگتر از برنامه های native هستند. خبر خوب؟ همانطور که قبلاً اشاره کردیم ، تیم React Native در حال کار بر روی کاهش حجم برنامه های خود هستند.

پیش بینی آیندهFlutter  و React Native

شرکت های بیشتر و بیشتری جذب Flutter می شوند. به هر حال ، ما شاهد پیشرفت ماهانه در SDK Flutter هستیم . به علاوه ، انجمنی همیشه مفید و فعال دارد . همچنین ، Flutter ما را قادر می سازد نه تنها برنامه های تلفن همراه بلکه برنامه هایی را برای وب و دسکتاپ ایجاد کنیم.

با توجه به شرکت های برجسته ای مانند Alibaba که در حال حاضر از Flutter استفاده می کنند ، آینده برای فلاتر  امیدوار کننده به نظر می رسد.

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

نتایج واقعی چنین پیشرفت هایی عبارتند از:

  • Hermes – یک موتور جاوا اسکریپت open source می باشد که برای برنامه های موبایل بهینه شده است و زمان تعامل را بهبود می بخشد و حجم برنامه و استفاده از حافظه را کاهش می دهد.
  • تغییرات بزرگ در نسخه 60
    • مدیریت وابستگی iOS با استفاده از CocoaPods به طور پیش فرض آسان تر شده است ،
    • می توانید React Native را به AndroidX منتقل کنید ،
    • می توانید ویژگی های اختیاری را به عنوان بخشی از فرآیند core process. استخراج کنید.

ایجاد یک محیط باز برای بحث در مورد React Native گامی مهم و نشانه ای برای پیشرفت مداوم و سیگنالی برای آینده روشن فناوری است.

با توجه به اینکه React Native دارای چنین ثابتی در بازار است  و در مسیر توسعه مستمر قرار دارد،  بعید است که به زودی شاهد رها شدن آن باشیم

با این وجود ، Flutter یک رقیب سرسخت برای React Native است.

خلاصه

چه زمانی از React Native و چه زمانی از Flutter استفاده کنیم؟

تحویل به موقع پروژه ها یکی از مهمترین مسایل در توسعه برنامه های موبایل و وب است.

ماهیت کراس پلتفرم React Native و Flutter زمان را برای ارائه به بازار کاهش می دهد. بعلاوه ، کتابخانه های third-party و کامپوننت های آماده ، آنها را برای ساختن برنامه شما کارآمدتر می کند.

همچنین ، با Flutter و React Native توسعه سریعی خواهید داشت و می توان هزینه های پروژه را نیز کاهش داد.

… و اینها دلایل کلیدی هستند که شما باید چهارچوب پروژه خود را در نظر بگیرید. و بررسی کنید کدام راه حل ارائه بهتر ارائه می دهند.

سریعترین زمان توسعه؟ یا با ایده برنامه شما بیشتر مطابقت دارد؟

خوب ، این بستگی به ویژگی های پروژه شما و میزان مهارت های تیم شما دارد.

آیا توسعه دهندگان شما دارت را می شناسند؟ اگر بله ، برنامه نویسی با Flutter انتخاب شما است.

آیا توسعه دهندگان شما به JavaScript مسلط هستند؟ اگر بله ، React Native انتخاب منطقی به نظر می رسد.

آیا می خواهید GUI برنامه خود را با استفاده از کامپوننت های UI native بسازید؟ اگر بله ، React Native را انتخاب کنید.

آیا طراحی برند اولویت اول شماست؟ اگر بله ، پیشنهاد می کنیم Flutter را انتخاب کنید.

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

از این موضوع اطمینان داشته باشید که هر دو) Flutter و (React Native فناوری های بسیار خوبی هستند. آنها از محبوبیت زیاد و اعتماد پایدار بهره مند هستند.

قبلی آموزش OpenStreetMap و مقایسه با نقشه گوگل مپ
بعدی 8 ویجت اصلی و مهم در flutter

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • GoLang
  • jetpack compose
  • PHP
  • اپلیکیشن
  • امنیت
  • اندروید
  • اوپن سورس
  • برنامه نویسی
  • برنامه نویسی iOS
  • برنامه نویسی react native
  • پادکست صوتی
  • تکنولوژی
  • جاوا
  • طراح رابط کاربری
  • طراحی رابط کاربری
  • طراحی وب
  • عمومی
  • فریلنسر
  • فلاتر
  • فناوری
  • کاتلین
  • کتاب های آموزشی
  • کسب و کار
  • هوش مصنوعی
  • وردپرس
برچسب‌ها
admob coroutine dagger dagger-hilt jetpack nft rxandroid rxjava spring swift ارز دیجیتال امنیت در اندروید دارت فایربیس فوشیا مصاحبه کاری معماری mvi نقشه راه برنامه نویسی کاتلین گوگل

آکادمی آموزنگار، جایی برای آغاز یک سفر شگفت‌انگیز در دنیای برنامه‌نویسی است. آموزنگار تلاش می‌کند تا هر فردی را از هر سطحی از زندگی و تجربه به دنیای جذاب برنامه‌نویسی وارد کند.

دسترسی سریع
  • درباره ما
  • تماس با ما
  • حریم خصوصی
  • سوالات متداول
نمادها
شبکه های اجتماعی
Facebook Twitter Youtube icon--white Whatsapp

تهران، میدان ولی عصر،خیابان شهیدان سازش،کوچه سوم پلاک 5 طبقه سوم واحد 31

021-88945907

تمامی حقوق برای آکادمی آموزنگار محفوظ می باشد

اشتراک گذاری در شبکه های اجتماعی
ارسال به ایمیل
https://amooznegar.com/?p=11087
ورود
استفاده از شماره تلفن
استفاده از آدرس ایمیل
آیا هنوز عضو نشده اید؟ ثبت نام کنید
بازیابی رمز عبور
استفاده از شماره تلفن
استفاده از آدرس ایمیل
ثبت نام
استفاده از شماره تلفن
استفاده از ایمیل
قبلا عضو شده اید؟ ورود به سیستم
محافظت توسط   
مرورگر شما از HTML5 پشتیبانی نمی کند.

سوالی دارید؟ از ما بپرسید، کارشناسان ما در اسرع وقت با شما تماس می گیرند.

آموزنگار

آکادمی آموزنگار

  • 021-88945907
  • شنبه تا چهارشنبه از ساعت 8 تا 17
  • info@amooznegar.com