برنامه نویسی

Lynx vs React Native: جایگزین جدیدی در جهانی جهانی پلتفرم؟

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

معماری: قلب سیاهگوش

دو موضوع در مقابل پونته با استفاده از بومی واکنش نشان می دهد

سیاهگوش مدلی از سر دوتایی که به طور اساسی منطق تجارت را از ارائه جدا می کند. در حالی که بومی React هنوز هم به پل معروف (و گاهی مشکل ساز) بین جاوا اسکریپت و بومی بستگی دارد ، سیاهگوش با: کار می کند:

  • موضوع UI (PRIMJS): موتور JavaScript بهینه شده (چنگال QuickJS) منحصراً برای ارائه
  • موضوع پس زمینه: پردازش سنگین ، تماس های API و مدیریت دولت

در عمل ، این باعث می شود تنگناهای ارتباطی بین موضوعاتی که هنوز RN را تعقیب می کنند ، به خصوص در لیست های پیچیده یا انیمیشن های سنگین از بین برود. Primjs دارای یک GC افزایشی با مکث <1ms ، هرمس در مقابل 3-5ms است - تفاوت که می تواند برای حفظ 60 فریم در ثانیه بسیار مهم باشد.

Rectlynx: React Reimaginado؟

بسته @lynx-js/react این یک مهندسی جالب است:

  • Mantém a api do react 17+ (قلاب ، زمینه)
  • دستورالعمل موتور سیاهگوش از طریق SWC
  • تجاوز برنامه نویسی نخ اصلی برای تعامل بحرانی (به عنوان مثال دست زدن به ژست)

این به شما امکان می دهد از اکوسیستم React (Zustand ، Tanstack Query) با موتور بهینه شده Lynx استفاده کنید.

اما آنجا آرام باش
مؤلفه هایی که به API های خاص RN بستگی دارند (چگونه react-native-reanimated) آنها نیاز به تکرار دارند.

عملکرد: اعدادی که بر UX واقعی تأثیر می گذارد

معیارهای آشکار کننده

Galaxy S23 Ultra Test با موارد لیست 10K:

متریک سیاه پوست واژگون شدن بومی
متوسط ​​FPS 59.8 54.3
قطره قاب/60s 12 87
لمس تاخیر 48ms 112ms

راز در است IFR (ارائه فریم اول فوری)، تکنیکی که به طور خلاصه موضوع اصلی را تا زمان ارائه اولیه مسدود می کند ، چیزی ضد صلاحیت ، اما صفحه های سفید را در راه اندازی از بین می برد.

حافظه: جنگ MB (بیت خراش؟ AMEM؟)

در برنامه های ساده:

  • سیاهگوش: 28MB پایه در مقابل 45MB DO RN
  • در سناریوی شدید (محصولات 10K): 148MB در مقابل 210MB

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

  • ذخیره ذخیره بدون مترجم
  • ادغام مستقیم با مدل شیء سیاهگوش

ابزارها: پاشنه آشیل

تکامل Devtools

ای lynx-devtoolاین یک مجموعه مبتنی بر الکترون با:

  • بازرس عناصر سبک Chrome Devtools
  • مشخصات عملکرد اصلی
  • ادغام با CDP (پروتکل Chrome Devtools)

اما در مقایسه با اکوسیستم بالغ RN (Flipper ، Reactotron) ، از دست رفته:

  • اشکال زدایی د redux/jotai
  • بازرس پیشرفته شبکه
  • بارگیری مجدد قابل اعتماد داغ

خبر خوب: o rspeedy (ساخت ابزار مبتنی بر زنگ زدگی) تحویل به <1s ، چیزی که هنوز هم در RN با کد های بزرگ درد درد دارد.

اکوسیستم: چالش جامعه

Rectlynx vs React Native

در حالی که RN در NPM 3.5K+ LIBS دارد ، Lynx امروز ارائه می دهد:

  • 32 بسته رسمی در org @lynx-js
  • 14 مخزن عمومی در GitHub
  • ادغام تجربی با نمایشگاه از طریق مشتری Custom Dev

بزرگترین شکاف در کتابخانه های بومی است:

  • هیچ معادل آن وجود ندارد react-native-maps
  • اعلان های فشار به پل دستی نیاز دارند
  • پیوند عمیق نیاز به پیکربندی سطح پایین دارد

استراتژی پذیرش مترقی

مستندات 3 روش را نشان می دهد:

  1. جاسازی: اجزای سیاهگوش را به برنامه بومی موجود اضافه کنید
  2. لایه مهاجرت: برای حمل قطعات به تدریج از React-Native-Lynx استفاده کنید
  3. گرینفیلد: پروژه جدید با Rectlynx + rspeedy

برای تیم هایی که دارای تخصص React هستند ، منحنی صاف است. اما فقدان راه حل های آماده برای تأیید اعتبار ، تجزیه و تحلیل یا IAP نیاز به سرمایه گذاری در توسعه سفارشی دارد.

نتیجه گیری: آیا خطر ارزش دارد؟

چه موقع باید سیاهگوش را در نظر بگیریم

  • برنامه هایی با IU پیچیده و تعامل با فرکانس بالا
  • پروژه هایی که نیاز به سرماخوردگی دارند <500ms در دستگاه های کم مصرف
  • تیم هایی که قادر به مشارکت در OSS هستند

هنگام نگه داشتن React Native

  • برنامه هایی که به اکوسیستم بالغ بستگی دارند (Firebase ، Sentry و غیره)
  • پروژه هایی با به روزرسانی های مکرر از طریق CodePush
  • تیم هایی با تخصص تلفیقی در RN

سیاهگوش یک “قاتل RN” نیست ، بلکه یک تکامل طبیعی مدل متقابل پلتفرم است.
درست همانطور که RN PhoneGap را بهبود بخشیده است ، سیاهگوش نوآوری های معماری را به ارمغان می آورد که می تواند چرخه توسعه ترکیبی بعدی را تعریف کند.

و شما ، آیا می خواهید در یک پروژه آزمایشی امتحان کنید؟ 🧪🔬

آیا سیاهگوش را دوست داشتید؟ آیا ارزش بررسی دارد؟
https://medium.com/@dilsharahasanka/getting-started-with-lynx-a-next-gen-cross-platform-framework-15fe7a76e14d

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا