ความแตกต่างระหว่าง Expo และ React Native คืออะไร


204

จากเว็บไซต์ Expo

Expo ช่วยให้นักพัฒนาเว็บสามารถสร้างแอปที่แท้จริงที่ทำงานได้ทั้ง iOS และ Android โดยเขียนเพียงครั้งเดียวด้วย JavaScript

นี่ไม่ใช่สิ่งที่ React Native ทำใช่หรือไม่ ความแตกต่างคืออะไร?

คำตอบ:


209

ฉันทำงานที่ Expo!

เมื่อคุณเขียนรหัสในExpoคุณเขียนReact Nativeรหัส Expoมีสองชิ้นหลัก:

1) expo-cli: เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์สำหรับการสร้างโครงการการดูบันทึกการเปิดอุปกรณ์ของคุณการเผยแพร่ ฯลฯ

2) Expoลูกค้า: แอปในโทรศัพท์ของคุณที่ช่วยให้คุณเปิดโครงการในขณะที่คุณกำลังทำงานกับพวกเขาโดยไม่จำเป็นต้องผ่านXCodeหรือหรือAndroid Studioให้คนอื่นดูด้วย! และหากคุณเผยแพร่ผ่านexpo-cliผู้คนสามารถเข้าถึงได้ตลอดเวลาผ่านExpoไคลเอนต์บน Android หรือบน iOS หากลงชื่อเข้าใช้บัญชีเดียวกันที่เผยแพร่ด้วย สุดท้ายนี้เรายังทำให้สามารถสร้างแอปแบบสแตนด์อโลนเพื่อให้ผู้คนไม่ต้องใช้Expoไคลเอนต์เพื่อเปิดมันและคุณสามารถแจกจ่ายไปยัง app store และ play store ได้หากต้องการ

ดังนั้นExpoเป็นชุดของเครื่องมือที่สร้างขึ้นบน / React Nativeรอบ เครื่องมือเหล่านี้ขึ้นอยู่กับความเชื่อหลักที่เรายึดถือExpo: เป็นไปได้ในการสร้างแอพส่วนใหญ่โดยไม่จำเป็นต้องเขียนโค้ดเนทีฟหากคุณมี API ที่Javascriptครอบคลุม

นี่เป็นสิ่งสำคัญเนื่องจากReact Nativeคุณสามารถเลื่อนลงไปที่รหัสภาษาได้ สิ่งนี้มีประโยชน์อย่างไม่น่าเชื่อบางครั้ง แต่มีค่าใช้จ่าย: คุณต้องส่งคนของคุณไบนารีถ้าคุณต้องการให้พวกเขาทดสอบพวกเขาคนในด้านอื่น ๆ ของโลกไม่เพียงแค่แตะที่ลิงค์เพื่อเปิดในขณะที่คุณทำงาน ที่นี่และคุณไม่สามารถเผยแพร่ได้ด้วยการคลิกเพียงครั้งเดียวเพื่อให้บางคนสามารถเข้าถึงได้เช่นเดียวกับที่คุณทำในเบราว์เซอร์

ด้วยExpoเราขอแนะนำให้พยายามหลีกเลี่ยงการปล่อยรหัสภาษาท้องถิ่นหากคุณทำได้ ดังที่ฉันได้กล่าวไว้ข้างต้นเราคิดว่าด้วยชุด API ที่ครอบคลุมมีให้Javascriptซึ่งจะไม่จำเป็นสำหรับแอพส่วนใหญ่ ดังนั้นเรามุ่งมั่นที่จะให้บริการชุด API ที่ครอบคลุมนี้จากนั้นสร้างเครื่องมือที่ยอดเยี่ยมทั้งหมดที่สามารถมีอยู่ในโลกที่มีการใช้งานจริงเนทีฟร่วมกัน

อย่างไรก็ตามหากคุณต้องพบว่าคุณดรอปดาวน์เป็น Native อย่างแน่นอนคุณสามารถใช้ExpoKitเพื่อดำเนินการต่อโดยใช้ Native APIs ที่Expoให้คุณในขณะที่มีการควบคุมในระดับเดียวกับที่คุณทำในโครงการเนทิฟใด ๆ " ExpoKitเป็นไลบรารี Objective-C และ Java ที่อนุญาตให้คุณใช้Expoแพลตฟอร์มและExpoโครงการที่มีอยู่ของคุณเป็นส่วนหนึ่งของโครงการเนทีฟมาตรฐานขนาดใหญ่" อ่านเพิ่มเติมได้ที่นี่


5
"ด้วยเลขชี้กำลังคุณจะไม่สามารถเลื่อนลงไปเป็นรหัสเนทีฟ" เป็นเรื่องดีที่รู้ว่าคุณไม่จำเป็นต้องวางรหัสลงในเครื่อง แต่ถ้าคุณต้องการทำไม Exponent จึงป้องกันไม่ให้คุณทำ
อ็อตโต

3
อาฉันเห็นได้ว่ามันไม่ชัดเจน ดังนั้นลูกค้า Exponent จึงเป็นโอเพ่นซอร์สอย่างสมบูรณ์ ( github.com/exponentjs/exponent ) ซึ่งหมายความว่าคุณสามารถเขียนโค้ดเนทีฟได้หากคุณต้องการ แต่จากนั้นคุณจะทำการจัดการไลบรารี่ Exponent เป็นชุดของโมดูลเนทิฟใน React Native ทั่วไป แอป นี่เป็นสิ่งที่ดีมากและเป็นแรงจูงใจให้เราเปิดโครงการ ที่กล่าวว่าหากคุณต้องการใช้เครื่องมือของเรา (ตัวสร้างไบนารีแอปไคลเอนต์เลขชี้กำลังบน app / play store เพื่อแบ่งปันการสร้างแบบทดสอบการแจ้งเตือนแบบพุชในตัว ฯลฯ ) คุณจะไม่สามารถเขียนรหัสพื้นเมืองได้
brentvatne

ในช่วงเวลาของการเขียนงาน Expo ได้รับค่อนข้างดีกับการรวมปลั๊กอินที่มีประโยชน์ อย่างไรก็ตามพวกเขากำลังขาดการรวมปลั๊กอิน MAJOR สำหรับ IAP และหากไม่มีคุณก็ไม่สามารถสร้างรายได้จากแอพของคุณ !!! และคุณถามว่าอะไรคือสิ่งที่ทำให้แอพถ้าฉันทำกำไรไม่ได้ !!
อดัม

97

ฉันพยายามทำเอกสารสรุปและคำตอบจากพนักงาน Expo:

ตอบสนอง Native init:

ข้อดี :

  • คุณสามารถเพิ่มโมดูลเนทีฟที่เขียนใน Java / Objective-C (อาจเป็นเพียงโมดูลเดียวที่แข็งแกร่งที่สุด)

ข้อเสีย :

  • ต้องการ Android Studio และ XCode เพื่อเรียกใช้โครงการ
  • คุณไม่สามารถพัฒนาสำหรับ iOS ได้หากไม่มี Mac
  • อุปกรณ์ต้องเชื่อมต่อผ่าน USB เพื่อใช้สำหรับการทดสอบ
  • ฟอนต์ต้องถูกนำเข้าด้วยตนเองใน XCode
  • หากคุณต้องการแชร์แอพคุณต้องส่งไฟล์. apk / .ipa ทั้งหมด
  • ไม่ได้ให้ API ของ JS API ออกมานอกกรอบเช่นการแจ้งเตือนแบบกด, ตัวจัดการสินทรัพย์พวกเขาจำเป็นต้องติดตั้งด้วยตนเองและเชื่อมโยงกับ npm เช่น
  • การตั้งค่าโครงการทำงานอย่างถูกต้อง (การกำหนดค่าอุปกรณ์รวม) ค่อนข้างซับซ้อนและใช้เวลานาน

งานแสดงสินค้า

ข้อดี :

  • การตั้งค่าโครงการเป็นเรื่องง่ายและสามารถทำได้ในไม่กี่นาที
  • คุณ (และคนอื่น ๆ ) สามารถเปิดโครงการในขณะที่คุณกำลังทำงานอยู่
  • การแชร์แอพเป็นเรื่องง่าย (ผ่าน QR-code หรือลิงค์) คุณไม่จำเป็นต้องส่งไฟล์. apk หรือ. ipa ทั้งหมด
  • ไม่จำเป็นต้องสร้างบิลด์เพื่อเรียกใช้แอพ
  • รวมไลบรารีพื้นฐานบางอย่างในโครงการมาตรฐาน (แจ้งเตือนแบบพุช, ผู้จัดการสินทรัพย์, ... )
  • คุณสามารถนำมันออกสู่ ExpoKit และรวมรหัสเนทีฟต่อไปโดยใช้คุณสมบัติ Expo บางอย่าง แต่ไม่ทั้งหมด
  • Expo สามารถสร้างไฟล์. apk และ. ipa (แจกจ่ายไปยังร้านค้าที่เป็นไปได้ด้วย Expo)

ข้อเสีย :

  • คุณไม่สามารถเพิ่มโมดูลเนทิฟ (อาจเป็น gamechanger สำหรับบางคน)
  • คุณไม่สามารถใช้ไลบรารีที่ใช้รหัสเนทีฟใน Objective-C / Java
  • แอป Hello World มาตรฐานมีขนาดใหญ่ประมาณ 25MB (เนื่องจากมีห้องสมุดรวม)
  • หากคุณต้องการใช้: FaceDetector, ARKit หรือการชำระเงินคุณต้องนำมันออกสู่ ExpoKit
  • การนำออกไปยัง ExpoKit มีการปิดการใช้งานคุณลักษณะของงาน Expo เช่นคุณไม่สามารถแบ่งปันผ่านรหัส QR ได้
  • เมื่อเลื่อนไปที่ ExpoKit คุณจะถูก จำกัด เฉพาะรุ่นที่ตอบสนองทันทีซึ่งได้รับการสนับสนุนจาก ExpoKit ณ เวลานั้น
  • การดีบักใน ExpoKit (กับโมดูลเนทิฟ) มีความซับซ้อนมากขึ้นเนื่องจากมันผสมสองภาษาและไลบรารีที่แตกต่างกัน (ไม่มีการสนับสนุน Expo อย่างเป็นทางการอีกต่อไป)

ฉันหวังว่าฉันจะสามารถสรุปประเด็นที่สำคัญที่สุดได้ โปรดเพิ่มคะแนนเพิ่มเติม

แหล่งที่มา: https://code.tutsplus.com/tutorials/detaching-expo-apps-to-expokit-concepts--cms-30661 https://github.com/react-community/create-react-native-app/ ปัญหา / 516 # issecomment-373629114 https://docs.expo.io/versions/latest/guides/detach.html (เอกสารทางการทั่วไปโดยทั่วไป)


1
ขอบคุณ @BenjaminHeinke สำหรับภาพที่ชัดเจนของข้อดีและข้อเสีย ฉันกำลังประสบข้อเสียอยู่ที่ # 2 กับการตัดสินใจของเราที่จะใช้งาน expo สำหรับแอพที่ตอบสนองต่อการโต้ตอบ เราไม่สามารถรวมกับ Appsee ได้เนื่องจากสิ่งนี้ ไม่มีวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่?
CoolDocMan

2
อุปกรณ์ไม่จำเป็นต้องเชื่อมต่อกับ USB เพื่อทำการทดสอบการรวบรวมและติดตั้งครั้งแรกจะต้องทำผ่าน USB หลังจากนั้นคุณสามารถใช้ Wi-Fi ได้! จะต้องมีการคอมไพล์ซ้ำหากคุณทำการเปลี่ยนแปลงกับเนทิฟ
rszalski

30

คำตอบของ Brent Vatne นั้นใช้ได้ แต่ฉันต้องการเพิ่มรายละเอียด


Expo ขยายพื้นผิว API ของ React Native

React Native ไม่ให้ JS API ทั้งหมดที่คุณต้องการนอกกรอบ แต่จะมีคุณลักษณะดั้งเดิมเท่านั้น นักพัฒนา Native React คาดว่าจะใช้ Android Studio / XCode เพื่อเชื่อมโยงไลบรารีเนทีฟเพิ่มเติม Expo มีจุดประสงค์เพื่อปรับปรุง RN และมอบ JS API ทั้งหมดที่คุณต้องการสำหรับความต้องการทั่วไป โดยทั่วไปแล้วจะเป็นชุดของ libs ดั้งเดิมที่มีคุณภาพที่กำหนดไว้อย่างดีซึ่งได้จัดทำขึ้นสำหรับคุณใน lib เดียว บางครั้งห้องสมุดเหล่านี้มีอยู่จริงแล้วในโลก RN และรวมเข้ากับ ExpoKit

สิ่งสำคัญคือต้องสังเกตว่าทีมงาน Expo ไม่สามารถรวม lib ทุกตัวลงใน ExpoKit (ซึ่งอาจสร้างความหงุดหงิด) เนื่องจากขนาดของแอป Hello World จะเพิ่มขึ้นเนื่องจากจะส่ง API จำนวนมากที่ไม่ได้ใช้ ในแอพส่วนใหญ่

Expo ให้การอัพเดท JS แบบ over-the-air

เช่นเดียวกับระบบอื่น ๆ (CodePush ... ) Expo นำเสนอระบบเพื่ออัปเดตแอปของคุณผ่านทางอากาศ ซึ่งหมายความว่าคุณอัปโหลดชุดบันเดิล JS ของคุณบน CDN และแอปมือถือจะดาวน์โหลดและใช้งาน JS ใหม่โดยอัตโนมัติในการเริ่มต้นครั้งถัดไป (โดยไม่ต้องขอสิ่งพิมพ์ / รีวิวจากร้านค้า)

Expo มีเครื่องมือ CLI เพื่ออัปโหลด / จัดการชุดบันเดิล JS บน CDN สำหรับการพัฒนาคุณสามารถเลือกเป็น CDN และโฮสต์ JS bundle บน localhost และ XDE เป็นเพียง wrapper ที่มองเห็นได้บน CLI

Expo มอบลูกค้าทั่วไป

ลูกค้า Expo เป็นลูกค้าทั่วไปที่อนุญาตให้โหลดแอปใด ๆ ที่เข้ากันได้กับ Expo แอพ Expo ทั้งหมดจะแชร์รันไทม์ดั้งเดิมที่แน่นอน (RN + ExpoKit) แน่นอนความแตกต่างเพียงอย่างเดียวคือ JS ที่เราให้พวกเขา แอป Expo ที่คุณเผยแพร่ไปยังร้านค้าแอปมี URL มัด JS ของคุณอยู่ในนั้น เอ็กซ์โปไคลเอ็นต์กำลังสร้างในวิธีเฉพาะเพื่อให้คุณสามารถเลือก URL ที่จะโหลด JS โดยสแกน QRCode หรือระบุ URL

โปรดทราบว่าไคลเอนต์นี้ยังสามารถโหลดบันเดิล JS จาก localhost และทำให้ประสบการณ์การพัฒนาของคุณง่ายขึ้น: ไม่จำเป็นสำหรับ XCode หรือ Android Studio และเร็วขึ้นมากในการทำให้ Hello World ของคุณทำงานบนโทรศัพท์เป็นครั้งแรก (จากชั่วโมงเป็นนาที) คุณสามารถพัฒนาบน iPhone โดยไม่ต้องใช้ Mac และการติดตั้งใช้เวลา 2 นาที

ที่จริงแล้วสามารถอัปเกรด Expo SDK ได้ไคลเอนต์ Expo จะรวมเลเยอร์ความเข้ากันได้เพื่อให้สามารถเรียกใช้ SDK รุ่น 5 ล่าสุดได้

Expo ให้บริการสร้าง

ในขณะที่แอป Expo ทั้งหมดใช้รหัสท้องถิ่นเดียวกัน Expo ก็สามารถสร้างแอปเหล่านี้ให้คุณได้อย่างง่ายดาย พวกเขาได้สร้างบริการสร้างคลาวด์

สิ่งสำคัญที่แตกต่างกัน 2 แอพที่สร้างขึ้นโดย Expo เป็นเพียง URL แบบ hardcoded ที่แอพนี้ควรดาวน์โหลดบันเดิล JS เพื่อให้ทำงาน

Expo ทำสิ่งอื่น ๆ ให้กับคุณเช่นจัดเตรียมวิธีการประกาศการตั้งค่าไอคอนแอพการวางแนวการอนุญาตคีย์ api ช่วยให้คุณตั้งค่าการแจ้งเตือนแบบพุชโปรไฟล์การจัดสรร ... การตั้งค่าจำนวนมากต้องฮาร์ดโค้ดในเวลาสร้างในแอพ ไม่สามารถเปลี่ยนผ่านอากาศได้

Expo คือการตอบโต้ Native สิ่งที่ Phonegap ใช้คือ Cordova

React Native นั้นคล้ายกับ Cordova มันไม่ใช่เทคโนโลยีมุมมองเดียวกัน (native vs webview) แต่ทั้งคู่อนุญาตให้คุณควบคุมคุณลักษณะดั้งเดิมจาก javascript และทั้งคู่มีระบบปลั๊กอินเพื่อให้นักพัฒนาสามารถเพิ่ม JS / การผูกดั้งเดิมได้อย่างง่ายดาย

PhoneGap คล้ายกับ Expo พวกเขาทั้งสองพยายามเพิ่ม API แบบ raw ของแพลตฟอร์มพื้นฐานที่สร้างขึ้นด้วยปลั๊กอินดั้งเดิมเพิ่มเติมที่กำหนดไว้ล่วงหน้า PhoneGap ยังให้บริการสร้างและมีไคลเอนต์ทั่วไปที่ทำงานได้ตราบใดที่คุณใช้ปลั๊กอินที่อนุมัติ

ข้อสรุป

อย่างที่คุณเห็น Expo เป็นชุดเครื่องมือ ในตอนท้ายมันอนุญาตให้พัฒนาแบ่งปันและเผยแพร่ไปยังร้านค้าโครงการมือถือของคุณได้อย่างง่ายดาย มันค่อนข้างคล้ายกับประสบการณ์ PhoneGap (แต่ดีกว่าและสับสนน้อยกว่า)

ฉันจะแนะนำ Expo ให้ชัดเจนสำหรับโครงการ React Native greenfield ใด ๆ ยกเว้น 2 กรณีนี้:

  • คุณรู้อยู่แล้วว่าคุณต้องการ API ที่ไม่พร้อมใช้งานในงานเอ็กซ์โป
  • คุณสนใจขนาดแอปของคุณมาก (HelloWorld คือ> 25mb เนื่องจากขนาดใหญ่ของ ExpoKit แต่หลังจากนั้นจะไม่เพิ่มขึ้นมากเท่าที่เป็นเพียง JS)

1
ฉันพยายามค้นหารายการ Expo ของ API ไม่รองรับ ใครรู้ว่าจะหาสิ่งนี้ได้ที่ไหน
ronnyrr

@ronnyrr Expo ไม่รองรับทุกสิ่งที่ไม่ใช่ JS และไม่รวมอยู่ใน RN และ ExpoKit ดิบ มีรายการที่ไม่สิ้นสุดของงาน Expo ที่ไม่รองรับเพราะเป็นทุกอย่างที่ไม่ได้อยู่ในรายชื่อฟีเจอร์ที่ Expo รองรับ สิ่งที่คุณขอไม่มีอยู่จริง
Sebastien Lorber

2
@ronnyrr ฉันคิดว่านี่คือสิ่งที่คุณกำลังมองหา: expo.canny.ioเป็นรายการคำขอคุณลักษณะที่คุณสามารถจัดเรียงตามความนิยม
Evan Bacon

26

มีการอธิบายในเอกสารทางการของงานเอ็กซ์โป

ความแตกต่างระหว่าง Expo และ React Native คืออะไร

Expo เป็นเหมือน Rails สำหรับ React Native มีการตั้งค่าสิ่งต่าง ๆ มากมายสำหรับคุณดังนั้นจึงเป็นการเริ่มต้นและเส้นทางที่ถูกต้องเร็วขึ้น

ด้วย Expo คุณไม่จำเป็นต้องมี Xcode หรือ Android Studio คุณเพียงแค่เขียน JavaScript โดยใช้โปรแกรมแก้ไขข้อความที่คุณคุ้นเคย (Atom, vim, emacs, Sublime, VS Code, อะไรก็ได้ที่คุณชอบ) คุณสามารถเรียกใช้ XDE (ซอฟต์แวร์เดสก์ท็อปของเรา) บน Mac, Windows และ Linux

นี่คือบางสิ่งที่งานเอ็กซ์โปมอบให้คุณใช้งานได้ทันที:

รองรับ iOS และ Android

คุณสามารถใช้แอพที่เขียนในงานเอ็กซ์โปทั้ง iOS และ Android ได้ทันที คุณไม่จำเป็นต้องทำกระบวนการสร้างแยกต่างหากสำหรับแต่ละกระบวนการ เพียงเปิดแอพ Expo ใดก็ได้ในแอป Expo Client จาก App Store บน iOS หรือ Android (หรือในเครื่องจำลองหรือเครื่องจำลองบนคอมพิวเตอร์ของคุณ)

แจ้งเตือนผลักดัน

การแจ้งเตือนแบบพุชสามารถใช้งานได้ทันทีทั้งใน iOS และ Android โดยใช้ API แบบรวมศูนย์เดียว คุณไม่ต้องตั้งค่า APNS และ GCM / FCM หรือกำหนดค่า ZeroPush หรืออะไรทำนองนั้น เราคิดว่าเราทำให้เรื่องนี้ง่ายขึ้นเท่าที่ควรตอนนี้

เข้าสู่ระบบ Facebook

การดำเนินการนี้อาจใช้เวลานานในการตั้งค่าอย่างถูกต้อง แต่คุณควรจะสามารถใช้งานได้ภายใน 10 นาทีหรือน้อยกว่าในงาน Expo

กำลังอัปเดตทันที

แอป Expo ทั้งหมดสามารถอัปเดตได้ในไม่กี่วินาทีโดยเพียงคลิกเผยแพร่ใน XDE คุณไม่ต้องตั้งค่าอะไรเลย มันใช้งานได้ด้วยวิธีนี้ หากคุณไม่ได้ใช้งาน Expo คุณอาจใช้ Microsoft Code Push หรือแก้ไขปัญหาของคุณเองสำหรับปัญหานี้

การจัดการสินทรัพย์

รูปภาพวิดีโอแบบอักษรและอื่น ๆ ล้วนมีการแจกจ่ายผ่านอินเทอร์เน็ตแบบไดนามิกด้วย Expo ซึ่งหมายความว่าพวกเขาทำงานด้วยการอัปเดตทันทีและสามารถเปลี่ยนแปลงได้ทันที ระบบการจัดการสินทรัพย์ในตัว Expo จะดูแลการอัปโหลดเนื้อหาทั้งหมดใน repo ของคุณไปยัง CDN เพื่อให้ทุกคนโหลดได้อย่างรวดเร็ว

หากไม่มี Expo สิ่งที่ต้องทำปกติคือการรวมสินทรัพย์ของคุณเข้ากับแอปซึ่งหมายความว่าคุณไม่สามารถเปลี่ยนแปลงได้ หรือคุณต้องจัดการวางทรัพย์สินของคุณใน CDN หรือคล้ายกันด้วยตัวคุณเอง

การอัปเดตที่ง่ายขึ้นสำหรับการตอบสนองแบบเนทีฟใหม่

เราเปิดตัว Expo ใหม่ทุกสองสามสัปดาห์ คุณสามารถอยู่ในเวอร์ชันเก่าของ React Native หากคุณต้องการหรืออัพเกรดเป็นเวอร์ชั่นใหม่โดยไม่ต้องกังวลเกี่ยวกับการสร้างไบนารีแอปของคุณใหม่ คุณสามารถกังวลเกี่ยวกับการอัพเกรด JavaScript ในเวลาของคุณเอง

แต่ไม่มีโมดูลเนทิฟ ...

สิ่งที่ จำกัด มากที่สุดเกี่ยวกับ Expo คือคุณไม่สามารถเพิ่มโมดูลของคุณเองโดยไม่ต้องถอดออกและใช้งาน ExpoKit


2
ฉันใช้งาน expo ใน windows 8 วิธีสร้างรหัส QR เพื่อที่ฉันจะเรียกใช้แอพของฉันบนอุปกรณ์ของฉันโดยตรง
Prasanna

1
ฉันไม่ได้ลองบน Windows แต่ฉันคิดว่ามันจะต้องคล้ายกับระบบใด ๆ รหัส QR จะถูกสร้างขึ้นโดยอัตโนมัติทั้งในExpo XDEคอนโซลหรือในexp startเอาต์พุตคำสั่งคอนโซล
gumkins

1
$ prasanna บางครั้งคุณไม่เห็นรหัส QR เนื่องจากคุณไม่มีโทรศัพท์และเครื่องพัฒนาบนเครือข่ายเดียวกัน ตัวอย่างเช่นหากคุณทำงานที่บ้านตรวจสอบให้แน่ใจว่าโทรศัพท์ของคุณอยู่ในเครือข่ายภายในบ้านของคุณ และอื่น ๆ ...
ccalvert

expo startจะแสดงที่อยู่ IP ของคุณในพื้นที่ของคุณคุณสามารถเข้าถึงรหัส QR ได้จาก
Jordan Simba

7

EXPO CLI

ข้อดี:-

 1. No need to install Android studio and Xcode for start building mobile app.
 2. No requirement of high configuration machine for development.
 3. Mobile ui easily check on both devices android and iphone using barcode scanning.and some time you can check on online iphone and android simulators.
 4. fast development.

จุดด้อย: -

 1. Native dependency can not add on expo because expo project don't have ios and android folder so here expo is bounded.
 2. Making apk and ipa are to difficult  using expo.
 3. Size of the apk/ipa is huge

ตอบสนอง Native Cli

ข้อดี:-

 1. Easily add native dependency for android and ios because this project structure have ios and android folder.
 2. Apk and ipa build making is easy rather than expo.

Note":- React Native cli is right approach to started work on react native framework.

จุดด้อย: -

1. High configuration machine is require.
2. Adding dependency some time more difficult but good.
3. Required basic knowledge of android folder structure and ios folder structure but from this learn more things.

คุณสามารถเลือกวิธีใดก็ได้ตามที่คุณต้องการ


2

ฉันจะจดบันทึกไว้ที่นี่ว่า Expo กำลังใช้รุ่นที่เก่ากว่าของปฏิกิริยา 16.5 ซึ่งจะห้ามไม่ให้คุณใช้คุณสมบัติ hooks ใหม่ หากคุณตัดสินใจที่จะไปกับ Expo จงระวังที่จะรับชมการควบคุมเวอร์ชันของคุณ รุ่นที่เก่ากว่าของ say-navigation การนำทางจะต้องใช้กับเวอร์ชัน 16.5 หากคุณได้รับข้อผิดพลาดแปลก ๆ


expo updateทำได้ค่อนข้างดีในการรับเวอร์ชันที่เข้ากันได้สำหรับแพ็คเกจส่วนใหญ่ที่จัดการโดย Expo ณ ตอนนี้ฉันไม่คิดว่ามันจะอัพเดต React Navigation แต่จริงๆแล้วห้องสมุดนั้นได้รับการสนับสนุนจาก Expo โดยส่วนตัวแล้วฉันไม่ค่อยพบปัญหาความเข้ากันได้ระหว่าง React Navigation และ Expo (ฉันคิดว่าฉันเจอปัญหาสองสามอย่างเมื่อใช้รุ่นเบต้า) อย่างไรก็ตามคุณอาจเห็นปัญหาความเข้ากันได้กับแพ็คเกจที่ไม่ได้จัดการโดย Expo
Christian Juth

2

คำตอบเกี่ยวกับข้อดีและข้อเสียของงานแสดงสินค้าและตอบสนอง cli พื้นเมืองเสร็จสมบูรณ์ ฉันต้องการพูดถึงจุดอื่นเป็นประสบการณ์ส่วนตัวของฉัน Expo มีโมดูลจำนวนมากตามค่าเริ่มต้นในโครงการและทำให้ทำงานได้ง่ายขึ้น แต่มันมีปัญหาใหญ่ในขั้นตอนการผลิตเพราะตัวสร้างandroidและiosรุ่นมีขนาดที่ดีมาก ตัวอย่างเช่นถ้าคุณมีหน้าเดียวกับขนาดไฟล์จะเกี่ยวกับ การมีโครงการเดียวกันในภาษาที่ตอบสนองพื้นเมืองจะส่งผลให้แอปมีขนาดเท่ากับ'Hello World'apk19 MB6 MBจะส่งผลให้แอปที่มีขนาดที่

โดยส่วนตัวแล้วฉันไม่แนะนำให้ใช้งาน expo หากคุณต้องการพัฒนาแอพเชิงพาณิชย์


ฉันไม่คิดว่านี่เป็นเหตุผลที่ดีพอที่แอปงานเอ็กซ์โปจะไม่พร้อมสำหรับการผลิต นอกจากนี้ยังได้รับการอธิบายอย่างละเอียดโดยคำตอบก่อนหน้า
Dawoodjee

1

ฉันมีประสบการณ์มากกว่าหนึ่งปีที่ทำงานกับงานแสดงสินค้าถ้าขนาดของแอปไม่สำคัญสำหรับคุณที่ใช้งาน Expo เพราะมันง่ายต่อการใช้งานแผนที่กดง่ายกว่า React-native แต่ในตอนท้ายของโครงการถ้าคุณต้องการเผยแพร่ แอพใน Google Play หรือร้านค้าอื่นที่คุณมีความท้าทายในการลบสิทธิ์ใน APK React-native คุณสามารถเปลี่ยนแปลงทุกอย่าง แต่สำหรับการนำเข้าห้องสมุดบางอย่างเช่นการแจ้งเตือนแบบพุชหรือแผนที่ต้องการความท้าทายบางอย่างเช่นกันเพราะคุณต้องเพิ่มห้องสมุดเหล่านี้ด้วยตนเอง โครงการ android และ iOS


-1

expo เป็น toolchain ที่สร้างขึ้นรอบ ๆ React Native เพื่อช่วยคุณเริ่มแอป มันมีชุดเครื่องมือที่ทำให้การพัฒนาและการทดสอบแอป React Native และอินเทอร์เฟซและบริการที่ใช้งานง่ายมีอยู่ในส่วนประกอบ React Native ดั้งเดิมของบุคคลที่สาม ด้วย Expo คุณสามารถค้นหาทั้งหมดได้ใน Expo SDK

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.