กลับไปยังการเปรียบเทียบ
UI ข้ามแพลตฟอร์ม

Perry vs React Native

React Native ให้คุณเขียน JavaScript/TypeScript ที่ขับ UI เนทีฟบน iOS และ Android — คอมโพเนนต์ UI แมปไปยังวิดเจ็ตแพลตฟอร์มผ่านสะพาน JS-to-native (หรือใน New Architecture เป็นเลเยอร์ JSI / Fabric ที่มีรูปร่างเชิงแนวคิดเหมือนกัน) Perry เลือกแนวทางที่แตกต่าง: TypeScript ถูกคอมไพล์ ahead-of-time เป็นโค้ดเครื่องเนทีฟ และ UI เนทีฟเป็นส่วนหนึ่งของไบนารีที่คอมไพล์ ไม่ใช่สะพานที่รันไทม์

React Native คืออะไร?

React Native เป็นเฟรมเวิร์กของ Meta สำหรับสร้างแอปมือถือโดยใช้ React JavaScript รันใน engine ที่ฝังตัว — Hermes ตามค่าเริ่มต้น หรือ JavaScriptCore — และโต้ตอบกับวิดเจ็ตเนทีฟ iOS/Android ผ่านสะพาน (legacy) หรือ JSI/Fabric (New Architecture) เฟรมเวิร์กนี้มุ่งเน้นมือถือ (iOS และ Android); Microsoft ดูแล fork ของชุมชนสำหรับ Windows และ macOS React Native ขับเคลื่อนแอปที่ Meta, Microsoft, Shopify, Discord และอื่น ๆ อีกมาก

Perry คืออะไร?

Perry คอมไพล์ TypeScript ตรงเป็นโค้ดเครื่องเนทีฟ โมดูล perry/ui เป็นระบบ UI declarative สไตล์ SwiftUI ที่คอมไพล์เป็นวิดเจ็ตแพลตฟอร์มเนทีฟในเวลา build — ไม่มี JS runtime ในไบนารี ไม่มีสะพาน และไม่มี JSI โค้ดเบส TypeScript เดียวกันคอมไพล์เป็น macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, Wear OS, WebAssembly และเว็บ

เคียงข้างกัน

ฟีเจอร์PerryReact Native
โมเดลการรันโค้ดเครื่องเนทีฟคอมไพล์ AOTJS engine (Hermes/JSC) + สะพานเนทีฟ (หรือ JSI/Fabric)
JS engine ในแอปไม่มีHermes (ค่าเริ่มต้น) หรือ JavaScriptCore
UIวิดเจ็ตเนทีฟ — API declarative สไตล์ SwiftUIวิดเจ็ตเนทีฟผ่าน React + สะพาน / Fabric
เป้าหมายหลักmacOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, WebiOS, Android (Windows/macOS ผ่าน community fork)
ไบนารี Server / CLI / desktopใช่ (เครื่องมือ CLI, เซิร์ฟเวอร์, แอปเดสก์ท็อป)ไม่ (เฟรมเวิร์ก UI มือถือ)
สะพานระหว่าง JS กับเนทีฟไม่มีสะพาน — โค้ดเนทีฟคือโปรแกรมมี (สะพาน legacy หรือ JSI/Fabric)
Hot reload ระหว่างพัฒนาperry dev (watch-mode auto-recompile)Fast Refresh (เร็วมาก)
ความสมบูรณ์Pre-1.0เสถียร, ใช้งานในโปรดักชันอย่างกว้างขวาง
Library คอมโพเนนต์perry/ui core widget + perry-react React-compat layerมหาศาล — React Native + แพ็กเกจของชุมชน

จุดที่ Perry ชนะ

  • +ไม่มี JS engine ในแอปที่ส่งมอบ ไบนารีที่คอมไพล์ด้วย Perry ไม่แบก Hermes หรือ JSC; TypeScript คือไฟล์ปฏิบัติการ
  • +ไม่มีต้นทุนสะพาน / JSI การเรียก UI เนทีฟเป็นการเรียกฟังก์ชันที่คอมไพล์โดยตรง ไม่ใช่การ marshal JS-to-native
  • +การเข้าถึงแพลตฟอร์มที่กว้างกว่า โค้ดเบส Perry หนึ่งคอมไพล์เป็นเดสก์ท็อป (macOS/Linux/Windows), มือถือ (iOS/iPadOS/Android), wearables (watchOS/Wear OS), TV (tvOS), WASM และ Web React Native มุ่งเน้นมือถือ
  • +ไบนารีฝั่งเซิร์ฟเวอร์และ CLI จากคอมไพเลอร์เดียวกัน — Perry ยังเป็นรันไทม์เซิร์ฟเวอร์ ไม่ใช่แค่เฟรมเวิร์ก UI
  • +ประสิทธิภาพการคำนวณคอมไพล์ AOT — ไม่ต้อง warmup ไม่มี JIT ไม่มี round trip ผ่านสะพาน
  • +perry-react ให้ React/JSX ที่คอมไพล์เป็นวิดเจ็ตเนทีฟ ดังนั้นโมเดลความคิดของ React มีให้ใช้โดยไม่ต้องมี JS engine ในไบนารี

จุดที่ React Native ชนะ

  • +ระบบนิเวศที่สมบูรณ์และผ่านการพิสูจน์พร้อมการสนับสนุนจากชุมชน, library และเครื่องมือมหาศาล
  • +Fast Refresh ระหว่างพัฒนาดีที่สุดในระดับเดียวกัน — การเปลี่ยนโค้ดปรากฏในมิลลิวินาทีโดยไม่ต้อง build ใหม่
  • +Talent pool มหาศาล การจ้าง React Native developer ทำได้ง่าย; Perry ใหม่
  • +CI/CD ที่ตั้งหลักแล้ว, pipeline การเผยแพร่ App Store / Play Store และอัปเดต OTA สไตล์ codepush
  • +JSI/Fabric และ New Architecture ปิดช่องว่างประสิทธิภาพในอดีตกับเนทีฟไปมาก ในขณะที่ยังคงโมเดลการเขียนโปรแกรม React
  • +การสนับสนุนตรงจาก Meta และผู้ใช้รายใหญ่ (Microsoft, Shopify, Amazon) ทำให้เฟรมเวิร์กเดินหน้าต่อ

เมื่อใดควรเลือก Perry

เลือก Perry ถ้าคุณต้องการโค้ดเบส TypeScript เดียวข้ามมือถือ, เดสก์ท็อป, watch, TV, WASM และเว็บ; ถ้าคุณต้องการให้ไม่มี JS runtime ในแอปที่ส่งมอบ; ถ้าคุณต้องการ UI เนทีฟโดยไม่ต้องผ่านสะพาน; หรือถ้าคุณลงทุนกับ TypeScript อยู่แล้วและต้องการการคอมไพล์เนทีฟแทน JS engine

เมื่อใดควรเลือก React Native

เลือก React Native ถ้าคุณกำลังสร้างแอปมือถือและต้องการเฟรมเวิร์ก UI เนทีฟข้ามแพลตฟอร์มที่สมบูรณ์ที่สุด คุณมีทีม React อยู่แล้ว คุณพึ่งพาระบบนิเวศ library ของ React Native หรือคุณต้องการ stack มือถือข้ามแพลตฟอร์มมาตรฐานอุตสาหกรรมในวันนี้

บทสรุป

React Native เป็นเฟรมเวิร์กมุ่งเน้นมือถือพร้อม JS runtime และสะพาน (ที่ปรับปรุงแล้ว) Perry เป็นคอมไพเลอร์ที่สร้างไบนารีเนทีฟจาก TypeScript พร้อม UI เนทีฟเป็นส่วนหนึ่งของเอาต์พุตการคอมไพล์ ถ้าคุณต้องการ React บนมือถือพร้อมระบบนิเวศที่ลึกที่สุด React Native คือคำตอบในวันนี้ ถ้าคุณต้องการโค้ดเบส TypeScript เดียวที่คอมไพล์เป็นมือถือ + เดสก์ท็อป + watch + TV โดยไม่มี JS runtime ในแอป Perry คือคำตอบ

ลองใช้ Perry

คอมไพล์ TypeScript ของคุณเป็นเนทีฟวันนี้

เริ่มต้น