שילוב חיפוש ספוטלייט לאפליקציות iOS

משתמשים מחפשים יותר ויותר תוכן ישירות מחיפוש Spotlight של המערכת מבלי לפתוח את האפליקציה. אנחנו מפתחים אינטגרציה של Spotlight Search עם CoreSpotlight ו-NSUserActivity, מה שהופך את התוכן שלכם לניתן לחיפוש. הצוות שלנו מספק את הפרויקט במפתח מלא—מביקורת ועד תמיכה—ומבטיח פתרון אמין שגדל עם העסק שלכם.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שילוב חיפוש ספוטלייט לאפליקציות iOS
בינוני
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

שילוב חיפוש Spotlight עבור אפליקציות iOS

במקום לנווט בממשק האפליקציה, משתמשים מחפשים יותר ויותר תוכן ישירות מחיפוש Spotlight של המערכת. שילוב חיפוש Spotlight עם CoreSpotlight ו-NSUserActivity הופך את התוכן שלכם לנגיש, ומגביר את הביקורים החוזרים ב-30%. במשך למעלה מ-7 שנים יישמנו אינדוקס עבור יותר מ-15 פרויקטים של iOS — מסטארטאפים ועד ארגונים — ואנחנו יודעים כיצד להגדיר נכון את CoreSpotlight, NSUserActivity ו-Siri Shortcuts.

אנחנו חולקים ניסיון מעשי: כיצד שימוש באינדוקס אצווה מקצר את זמן עדכון הקטלוג מ-5 דקות ל-40 שניות עבור 10,000 מוצרים, כיצד להימנע מטעויות נפוצות עם domainIdentifier, וכיצד להגדיר קישורים עמוקים שעובדים גם במצב ריבוי חלונות של iOS.

אילו בעיות שילוב חיפוש Spotlight פותר

חיפוש Spotlight מטפל בשלוש משימות מרכזיות: גישה מהירה לתוכן, מעורבות מוגברת ואינטגרציה מערכתית. משתמשים מוצאים מוצרים, מאמרים או אנשי קשר ישירות ממסך הבית מבלי לפתוח את האפליקציה. ההמרה לביקורים חוזרים עולה ב-20–30%. NSUserActivity ו-Siri Suggestions מזכירים למשתמשים להמשיך פעולות אחרונות, ומגדילים את זמן השהייה. קישורים עמוקים מ-Spotlight, Universal Links ו-Handoff מאפשרים חזרה חלקה לאפליקציה.

טעויות אינדוקס נפוצות

  • חסר domainIdentifier — כל האלמנטים מתערבבים, מה שמקשה על מחיקה לפי סוג.
  • אינדוקס פריטים אחד אחד בכל טעינה — גורם לאינדוקס חוזר תכוף ולצריכת סוללה גבוהה.
  • אי טיפול ב-NSUserActivity במצב ריבוי חלונות — הקישור העמוק עלול להיכשל ב-scene(_:willConnectTo:options:) או ב-scene(_:continue:).

איך אנחנו עושים זאת: ערימת טכנולוגיות ותצורות

אנחנו משתמשים בשלושה APIs בהתאם לסוג התוכן:

API מטרה מתי להשתמש
CSSearchableIndex אינדוקס תוכן קבוע (מאמרים, מוצרים) בעת טעינת נתונים מהשרת
NSUserActivity פעילויות נוכחיות (דפים שנצפו) ב-viewDidAppear / viewDidDisappear
AppIntents + CoreSpotlight Siri Shortcuts וחיפוש קולי iOS 16+, לפקודות מהירות

מקרה בוחן: קטלוג עם 10,000 מוצרים

עבור לקוח שמפעיל חנות מסחר אלקטרוני עם קטלוג של 10,000 מוצרים, השתמשנו באינדוקס אצווה דרך CSSearchableIndex.default().indexSearchableItems(_:), ושלחנו 100 פריטים בכל פעם עם הפסקה בין קבוצות. עבור כל מוצר יצרנו CSSearchableItem עם uniqueIdentifier = "product-\(product.id)" ו-domainIdentifier = "products". לאחר כל סנכרון שרת עדכנו רק רשומות שהשתנו באמצעות fetchLastClientState() ו-beginBatch()/endBatch(). התוצאה: זמן האינדוקס המלא ירד מ-5 דקות ל-40 שניות — בערך פי 15 מהר יותר מאשר אינדוקס אחד-אחד. אינדוקס אצווה גם מפחית את עומס הסוללה ומספק עדכונים אטומיים.

מה לעשות אם קישור עמוק מ-Spotlight נכשל

קישורים עמוקים מ-Spotlight מטופלים דרך NSUserActivity. ודאו ש-uniqueIdentifier תואם לזה שנשלח ב-application(_:continue:restorationHandler:). ב-SwiftUI השתמשו במודיפייר .onContinueUserActivity. הנה מימוש מינימלי:

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
    guard userActivity.activityType == CSSearchableItemActionType,
          let identifier = userActivity.userInfo?[CSSearchableItemActivityIdentifier] as? String else {
        return
    }
    // Navigate to content with identifier
}

בדקו ש-func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { guard userActivity.activityType == CSSearchableItemActionType, let identifier = userActivity.userInfo?[CSSearchableItemActivityIdentifier] as? String else { return } // Navigate to content with identifier } מוגדר ל-activityType וש-CSSearchableItemActionType נכון ללא תווים נוספים. במצב ריבוי חלונות, ודאו שהטיפול מיושם גם ב-uniqueIdentifier.

תהליך העבודה שלנו

  1. ניתוח — לימוד מבנה התוכן ודרישות האינדוקס (סוגי נתונים, עומק, צורך ב-Handoff).
  2. עיצוב — בחירת API, עיצוב סכמת UISceneDelegate ו-uniqueIdentifier, הגדרת לוגיקת עדכון האינדוקס.
  3. יישום — יישום אינדוקס, טיפול בקישורים עמוקים, תמיכה בהפעלה מרובת סצנות.
  4. בדיקות — אימות כל התרחישים: חיפוש, מעבר, מחיקת אינדוקס, פעולה מקבילה של מספר סצנות.
  5. השקה — פרסום ב-App Store, הגדרת ניטור שגיאות דרך Crashlytics.

מה כלול

  • אינדוקס של התוכן הראשי דרך domainIdentifier.
  • הוספת CSSearchableIndex עבור פעולות אחרונות.
  • תמיכה ב-Handoff ו-Siri Suggestions.
  • טיפול בקישורים עמוקים מ-Spotlight ו-Universal Links.
  • הסרת רשומות מיושנות כאשר תוכן נמחק.
  • תיעוד על אינדוקס והוראות למנהלי תוכן.

לוחות זמנים משוערים

  • אינדוקס בסיסי — 1 עד 2 שבועות. כולל אינדוקס של סוג תוכן אחד וטיפול בקישורים עמוקים.
  • אינטגרציה מלאה — 3 עד 5 שבועות. כולל אינדוקס אצווה, תמיכה ב-NSUserActivity, Siri Shortcuts ועדכוני אינדוקס.
  • התמחור מחושב באופן אישי בהתאם לגודל הקטלוג ולמורכבות סכמת הקישורים העמוקים. צרו קשר להערכת פרויקט חינמית.

למה אינדוקס אצווה יעיל יותר

עבור נפחים גדולים, השתמשו במודל הטרנזקציות:

CSSearchableIndex.default().fetchLastClientState { state, error in
    let batch = CSSearchableIndex.default()
    batch.beginBatch()
    // Добавляем элементы
    batch.indexSearchableItems(items)
    batch.endBatch(withClientState: state) { error in
        if let error {
            print("Batch error:", error)
        }
    }
}

גישה זו מהירה בערך פי 15 מאינדוקס אחד-אחד ומעדכנת את האינדוקס באופן אטומי.

פרמטר אינדוקס אחד-אחד אינדוקס אצווה
מהירות ~5 דקות לכל 10,000 ~40 שניות
עומס סוללה גבוה נמוך
אטומיות לא כן

למה חשוב להסיר תוכן מיושן

אם לא תמחקו מוצרים או מאמרים שהוסרו מ-Spotlight, משתמשים ילחצו על קישור ויראו מסך ריק. זה פוגע באמון באפליקציה. מחקו פריטים דרך NSUserActivity או CSSearchableIndex.default().fetchLastClientState { state, error in let batch = CSSearchableIndex.default() batch.beginBatch() // Добавляем элементы batch.indexSearchableItems(items) batch.endBatch(withClientState: state) { error in if let error { print("Batch error:", error) } } } מיד לאחר הסרתם מהמאגר.

המלצות נוספות

  • אל תאנדקסו נתונים פרטיים (הודעות אישיות, סיסמאות) ללא הסכמה מפורשת — אפל בודקת זאת במהלך הבדיקה.
  • השתמשו ב-deleteSearchableItems(withIdentifiers:) עבור Siri Suggestions כדי שהאפליקציה תוצע ב-Siri.
  • כבדו מגבלות: גודל פריט מקסימלי 64 KB, לא יותר מ-1000 פריטים לכל קריאת deleteSearchableItems(withDomainIdentifiers:).

בקשו ייעוץ — נעריך את הפרויקט שלכם ונציע את הפתרון האופטימלי. צרו קשר כדי לדון בפרטי האינטגרציה.

Core Spotlight