מבוא

(המציאות המוגברת של מוביל צמחה מזימיק חדש ככלי רב עוצמה למעורבות משתמשים, ויזואליזציה המוצר, וחינוך אינטראקטיבי. React Native, עם הבטחת הקוד לשימוש מחדש ב- iOS ו- Android, מציעה פלטפורמה אטרקטיבית לאספקת חוויות AR ביעילות.עם זאת, שילוב AR לתוך שיטות תגובה אינו פשוט: הוא דורש חיזוק מסגרות Native וניהול מחזורי חיים מורכבים.

תגובה Native כקרן Cross-Platform עבור AR

(התגובה מאפשרת למפתחים לכתוב לוגיקה הליבה של היישום ב- JavaScript ולייצר רכיבים מקומיים.כאשר מדובר במציאות מוגברת, הלוגיקה של הניסוח והעקביות חייבת בדרך כלל לרוץ בשכבה Native עקב דרישות ביצועים.זה אומר שכל שילוב AR ב- React Native יסתמך על מכלול: מנגנונים מודולים בסיסיים של גשר FLT:1 שחושפים יכולות ARLT בצד JavaScript.

בחירת בין Vuforia ו-ARKit

ההחלטה בין Vuforia ו ARKit לעתים קרובות נשענת על דרישות פלטפורמה ומורכבות תכונה. VuforiaFLT:1 תומך הן iOS והן Android, מה שהופך אותו לבחירה הטבעית עבור יישומים אשר חייב לספק פונקציונליות זהה של AR בשתי הפלטפורמות.הוא מציע יכולות מתקדמות כמו זיהוי תמונה, מעקב ולחצנים וירטואליים שפועלים על מגוון רחב של מכשירים:2ARKF: 3K3Tateicial, ככל הנראה, תכונות אבטחה גבוהה יותר, כמו זיהוי של Apple-iOS-Redowware, ו-iOS, ו-iOS, תכונות אבטחה גבוהה יותר, ו-iOS, תכונות אבטחה גבוהה יותר, עבור תכונות מחשבתית, עבור תכונות מחשבתית, ו-Relimates, עבור תכונות מחשבתית גבוהה יותר, ו-iOS-Relimatesamupit, עבור מחשבתית, ו-upit, עבור תכונות אבטחה גבוהה יותר, עבור מחשבתית, ו-upit, עבור מחשבתית גבוהה יותר, עבור מחשבתית גבוהה יותר, עבור מחשבתית גבוהה יותר, תכונות אבטחה גבוהה יותר, עבור תכונות אבטחה גבוהה יותר, עבור מחשבתית, עבור מחשבתית, עבור מחשבתית גבוהה יותר, תכונות אבטחה גבוהה יותר, תכונות מחשבתית, ו- iOS-

עמוק עמוק לתוך Vuforia אינטגרציה עם React Native

Prerequisites and Setup

לפני כתיבת קוד, עליך לקבל מפתח רישיון Vuforia מפרויקטים Native FLT:0Vuforia Developer PortalFLT:1 (גם אתה צריך להוריד את ה-Vuforia SDK עבור אנדרואיד ו- iOS.com יש ליצור פרויקטים Native באמצעות Coria (לא חשיפה הנדרשת אם אתה צריך גישה Native) , IPD ו-FLT, יש צורך להיות מוגדר באופן ידני באמצעות הגדרות ההפעלה של iOS, כמו iOS XR.

בריחת Vuforia באמצעות מודולים ילידים

(התבנית הנפוצה ביותר היא ליצור מודול יליד שמנהל את מחזור החיים של מנוע Vuforia בצד אנדרואיד, אתה יוצר FLT:2 אשר מרחיב את ה-Vuf 3: 3, מודול זה יטפל ב ראשונית של מנוע Vuforia, לטעון את תחילת הנתונים, והתחל את ה- AR.JavaScript מקבל אירועים (למשל, FLT:4) באמצעות LT5: יישום טיפוסי כמו: 7.F Promise, 7.

ב- iOS, אנלוגיה (FLT:9) משתמשת הגשר אובייקטיבי-C. Vuforia's iOS SDK בנוי על C++, כך ייתכן שיהיה עליך ליצור קטע אובייקטיבי-C++. המפתח הוא להפעיל את ה-Vuforia להפוך לולאה על חוט נפרד ולהעביר מסגרות מצלמה דרך שיחת מפנה.גשר Native React ניתן להשתמש כדי לשלוח תוצאות זיהוי מטרות ל- JavaScript.

יישום מטרות צילום ו-Virtual Buttons

מטרות תמונה הן הליבה של חוויות Vuforia רבות.You תצטרך להעלות תמונות התייחסות למנהל Vuforia Target כדי ליצור את תחילת הנתונים, אשר אז נכללת במשאבים של האפליקציה שלך. in Native Code, לאחר טעינה של הנתונים, אתה להגדיר את זה FLT 10 כדי ליצור הקשבה עצמאית, כאשר Vuforia מזהה מטרה, זה יכול להחדיר את זה כדי לזהות JavaScript על ידי פולט אירוע כולל זיהוי פנים, כי אתה יכול להגדיר את מטרות וירטואלית.

מצלמה חתלתול Permissions ו-Sid Management

משתמשים חייבים להעניק אישור מצלמה לפני AR יכול להתחיל. על אנדרואיד, להשתמש ב-API של ה-AP ב-React Native. ב- iOS, ה-FLT:12 ב- Info.plist מספיק, אבל המודול הילידים צריך לבקש רשות בזמן ריצה.ניהול של סשן הוא קריטי: עליך לעצור את מנוע Vuforia כאשר האפליקציה שלך הולכת ברקע ולחדש אותו על בסיס.

מלכודות ופתרונות

  • (FLT:0)Slow Dataset:FLT:1 Load datasets asynchronly ולהציג אינדיקטור טעינה בשכבה JS. השתמש בהבטחה של מודול Native כדי לציין השלמת אות.
  • (FLT:0)Render Disputes:FLT:1 Vuforia מצפה להקשר OpenGL. אם אתה משתמש בספריית אנימציה של צד שלישי שיוצרת גם את הקשר GL, עליך לשתף את ההקשר באמצעות 'EGLContext' באנדרואיד או 'EAGLcontext' ב- iOS.
  • (ב) ⁇ :0) ⁇ מזכר: (ב) 1FLT:1 מודולים ילידים חייבים לשחרר כראוי את אובייקטים Vuforia. השתמש בהתייחסויות חלשות בשכבה המתפתלת ולקרוא ל'Vforia.deinit() בשיטת הניקיון של המודול.
  • (FLT:0) אישור על מכשירים נמוכים: ההרחבה 1: ההרחבה של Vuforia's CameraDevice.setCameraConfiguration () כדי לשמור על 30 FPS.

עמוק עמוק לתוך ARKit אינטגרציה עם React Native

שימוש ב- Libraries Like React-native-arkit או ViroReact

[הנתיב המהיר ביותר ל-ARKit in React Native הוא להשתמש בספריה קיימת. [FLT]:14 היה חלוץ מוקדם, אך הוא כבר לא נשמר באופן פעיל.FLT:0ViroactirFLT:1 תומך הן ARKit והן ARCore (מסגרת אנדרואיד של גוגל) ומספק API תגובה ברורה עם רכיבים כמו LT2: ו- 'Fhealrated's 3', כי לעתים קרובות יותר תלוי במודול של iOS או ב-iOS.

הקמת מושב AR

מפגשים ARKit מנוהלים על ידי "ARSession" של מודול הילידים שלך ייווצר וירוץ ישיבה עם אובייקט תצורה (למשל, "ARWorldTrackingConfiguration" בצד האובייקטיבי-C, אתה יוצר מפגש עם "UIView" המארח "ניהול של מנט הראייה" (SceneKit) או "מציאות" (Kit)" (הראייה של ה-Kit) יכול להתגלות דרך ה-"תראות של JavaScript.

(ב) .

נציג הפגישה ('ARSsionDelegate') מקבל עדכונים על תוספות עוגן, שינויים במסגרות וטעויות.You Bridge אלה בחזרה ל- JavaScript באמצעות אירועים.

איתור מטוסים ומיקום אובייקטים

שם ARKit המטוס זיהוי (horizontal ו אנכי) הוא תכונה בולטת.כאשר עוגן מזוהה, שיטת הציר שלך "הוסף Node" נקראה.You יכול להוסיף צומת מטוס שקוף במיקום של CNN זה.כדי לאפשר למשתמשים להציב אובייקטים וירטואליים, אתה נתקל במחאה נגד הסצנה באמצעות "hittttttest:types" ו להמיר את ההתאמות לעמדה של 3DU יכול להיות תגובה לאחור.

עקבו אחרי פילטרs and Filters

מצב המצלמה הקדמי של ARKit ('ARFaceTrackingConfiguration') מאפשר מעקב פנים אל פנים.אפשר להתמודד עם נתונים של sh או ליישם מסכות וירטואליות.במודול הילידים, כאשר עוגן הפנים נוסף, אתה לא יכול להחזיר את מסגרת 'ARFaceGeometry' של אובייקטים וצורות תערובת.

שיקולים

ARKit הוא מותאם מאוד, אבל גשר React Native יכול להפוך צוואר בקבוק.מזער את תדירות של שיחות Native-to-JS על ידי עריכת עדכונים.עבור נתונים רצופים כמו עמדות מסגרת מצלמה, להשתמש בכתובת Native להפוך את המעדכנת מיקום זיכרון משותף ומאפשר JavaScript לקרוא באמצעות לוח זמנים. אפשרות אחרת היא להפוך תוכן 3D בלבד בקוד Native ונשלחת פקודות גבוהות (למשל, על ידי CIRS, על ידי קובץ טרום- 60D).

בריחת הפער: Vuforia vs ARKit - A Practicalהשוואה

תמיכה ב- Cross-Platform

  • (FLT:0)Vuforia:FLT:1 פועל הן iOS והן Android; תומך מגוון רחב של מכשירים, כולל חומרה ישנה יותר. אידיאלי עבור יישומים ארגוניים אשר חייבים לרוץ על ציים מגוונים.
  • (FLT:0ARKit: VisFLT:1) iOS בלבד; דורש שבב A9 או מאוחר יותר (iPhone 6S וחדש יותר) הטוב ביותר עבור יישומים מיקוד בסיס משתמש הומוגני iOS.

עקבו אחרי Capabilities

  • (FLT:0)Vuforia:FLT:1 הכרה בדימוי העליון, מעקב רב-טרגט, ולחצנים וירטואליים.Good for Marker-based AR (למשל, אריזה מוצר).
  • (ב) ⁇ :0ARKit: ⁇ FLT:1) מעקב מעולה ללא סימן, איתור מטוסים, שחזור סצינה ולכידת תנועה.

אינטגרציה עם React Native

  • (ב) ⁇ :0 ⁇ :0; ⁇ : 1) , נדרש קוד מקורי ידני יותר בשל ההתחלתיזציה המורכבת שלה וניהול ההקשר OpenGL. עקומת הלמידה היא תלולה יותר.
  • (הופנה מהדף ⁇ :0ARKit: ⁇ FLT:1) פשוט אם אתה מכיר את הפיתוח של iOS Native. RealityKit Simplifies להפוך אבל מוסיף שכבה מופשטת נוספת.

עלויות והודעות

  • (ב) .0.Vuforia: FLT:1 , עם שכבה חופשית מוגבלת ל-1,000 הכרה בחודש.
  • (ב) ⁇ :0ARKit:IRFLT:1 חינם עם Apple Developer חברות (99/Year) ללא תמלוגים.

שיטות טובות ל React Native AR Development

אופטימיזציה של ביצועים

חוויות AR דורשות שיעורי מסגרת גבוהים עקביים.תמיד פרופיל האפליקציה שלך באמצעות מכשירים כמו "האנימציה הליבה של ́Xcode' או 'אנדרואיד Studio' של GPU פרופיל '. . . . . . . . . . . .GPU פרופיל 's GPU' . . הקטנת התחדשות מיותרת ב-Renders in Reacts על ידי שימוש ב-"PureComponent"או "Reactream"אם אתה חייב להשתמש באלמנטים הקשורים ל- AR.componrequested Physics"מתבסס על רכיבי AR.comidance, אם אתה משתמש ב- AR.componr.componrequested.compond.comidation" עבור רכיבי AR.componr.compond.compond.componrequir.componreecting, כדי למנוע חישובים עם רכיבי AR.compond.componrequir.componrequest.componrequir.componrequested.componre, כדי לשמור על רכיבי AR.componid.componrequir.compond.componreectr.componre, כדי

עיצוב חווית המשתמש עבור AR

תכנון עבור AR הולך מעבר ל- UX. משתמשים צריכים לנקות את לוח התכנון כדי להבין כיצד לתקשר עם עולם AR. לספק רמזים חזותיים (למשל, מתווה מטוס טרנסינט) כדי לציין היכן ש- AR הוא פעיל. Handle מעקב כישלונות בחסד: אם ARKit מאבדת מעקב (למשל, אור נמוך), להציג הודעת אזהרה.

בדיקות ווויכוח

דיון AR הוא מאתגר לשמצה כי אתה לא יכול לבדוק את הנקה ב סימולטור. השתמש במכשירים פיזיים עבור כל בדיקות. Leverage עם "console.log" ב JavaScript ו 'NSLog' / 'Log.d 'קוד ב קוד Native.עבור Vuforia, אפליקציית Vuforiaer Viewer יכול לעזור לבדוק תמונות לפני יישום המלא של יישום, עבור ARK, את ה-re 'Ricial â' כדי לאמת את מודל זה, מעקב אחר פרופיל 3.

כיוונים עתידיים וטכנולוגיות מתפתחות

בעוד Vuforia ו ARKit להישאר דומיננטי, מערכת האקולוגית AR מתפתחת. ARCore של גוגל (אנדרואיד) זוגות עם ARKit עבור iOS כדי ליצור בסיס חוצה פלטפורמות, אבל ללא תמונות הכרה prowes של Vuforia. RealityKit 2 על iOS עכשיו תומך ללכוד ואופטימיזציה מציאותית יותר עם ARXR הוא צובר, אבל הביצועים שלה מסלולים של ARFre מבטיח יותר של פיתוח של פורמט AR.

מסקנה

תוך שימת דגש על המציאות המוגברת ל- React Native דורש תפיסה מוצקה של התפתחות Native, הנדסה ביצועים זהירה, והבנה ברורה של ההבדלים בין Vuforia ו- ARKit. Vuforia מציעה עקביות חוצה-כוכבית ועקב מבוסס סמרטוט, מה שהופך אותו מתאים ל-AWS וליישומים קמעונאיים. ARKit מספק הבנה סצינה לא קדמית ואיכות חזותית עבור חוויות iOS-exclusive.