- 연혁

이 웹 사이트는 애플 리케이션에 전념. 우리는 정품 앱과 게임을 제공 할 목적으로이 사이트를 만들었습니다. 4AppsApk 최고의 안드로이드 애플 리케이션을위한 무료 APK 파일 다운로드 서비스, 계략.

핵심 스포트라이트와 그 장점을 이해

Core Spotlight는 경량, 개인 정보 보호 친화적 인 색인 시스템입니다. 그것은 완전히 ‐ 장치 - 아니 데이터는 CloudKit을 명시적으로 사용하지 않는 한 사용자의 전화를 나타. 이것은 노트, 연락처, 문서 또는 모든 사용자 생성 된 데이터와 같은 개인 콘텐츠를 위해 이상적입니다. 주요 이점은 다음과 같습니다.

  • Increasedvolve – 사용자가 원하는 콘텐츠를 발견하고 반복적인 사용법을 밀어줄 수 있습니다.
  • Seamless navigation – 검색 결과를 끄는 것은 관련 화면에 직접 앱을 열 수 있습니다.
  • 오프라인 기능 – 인터넷 연결 없이도 검색할 수 있는 인덱스 항목이 남아 있습니다.
  • Low 구현 비용 – API는 작고 잘 문서화되어 기존 데이터 모델과 쉽게 통합됩니다.

Core Spotlight는 ]NSUserActivity 색인을 붙이고, 정적 또는 자주 업데이트된 내용에 대해서는 CSSearchableItem 색인을 붙이는 직접적인 CSSearchableItem 색인을 붙입니다.

시설 및 설치

코드를 작성하기 전에 프로젝트가 올바르게 구성되도록하십시오.

  1. 앱은 iOS 9 이상 (iOS 9로 데뷔한 API)를 대상해야 합니다.
  2. Enable Core Spotlight Xcode의 기능 - Signing & Capabilities] add “Core Spotlight” entitlement. 이것은 종종 프레임 워크를 가져올 때 자동으로 포함되어 있습니다.
  3. Core Spotlight Framework 및 MobileCoreServices (Type 식별자용)를 가져옵니다. ] 및 .

추가 서버 구성 또는 사용자 권한이 필요하지 않습니다. 인덱스는 배경에서 비동기적으로 발생합니다.

검색 및 색인 검색 항목

Core Spotlight의 핵심은 ] 객체입니다. 각 항목은 다음과 같습니다.

  • A unique 식별자 (예: ]) - 나중에 선택 또는 업데이트 처리.
  • 선택 domain 식별자 – 그룹 관련 항목 (예: ).
  • attribute set (]]) - ], , ], ], 그리고 더 많은 속성과 내용들을 설명합니다.

여기에는 하나의 노트를 색인하는 완전한 Swift 예입니다.

import CoreSpotlight
import MobileCoreServices

func indexNote(note: Note) {
 let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeText as String)
 attributeSet.title = note.title
 attributeSet.contentDescription = note.body
 attributeSet.keywords = [note.title] + note.tags
 if let imageData = note.thumbnail?.pngData() {
 attributeSet.thumbnailData = imageData
 }

 let item = CSSearchableItem(
 uniqueIdentifier: "com.yourapp.note.\(note.id)",
 domainIdentifier: "com.yourapp.notes",
 attributeSet: attributeSet
 )
 // Optionally set expiration date (default is one month)
 // item.expirationDate = Date.distantFuture

 CSSearchableIndex.default().indexSearchableItems([item]) { error in
 if let error = error {
 print("Indexing error: \(error.localizedDescription)")
 } else {
 print("Note indexed successfully.")
 }
 }
}

속성 설정

] 에서 상속하고 수십 개의 속성을 제공합니다. 대부분의 앱에서는 다음과 같은 필수 사항이 있습니다.

  • – 짧은, 저명하게 나타나는 원시 텍스트.
  • – 제목 아래에서 더 긴 스니펫.
  • – ]의 배열은 대체 검색 조건을 위해.
  • 또는 ] - 비주얼 미리보기.
  • – 링크 항목은 함께 (예 : 부모의 메모).

미디어 콘텐츠의 경우, ], ], 또는 와 같은 유형별 속성을 사용하십시오.

Updating and Deleting Indexed 내용

앱의 콘텐츠 변경이 되면 동기화 인덱스를 유지해야 합니다. 같은 메서드를 사용하십시오:

제품 업데이트

] 같은 고유 식별자 - API는 자동으로 이전 항목을 대체합니다.

관련 상품

또는 ] 을 사용하여 stale 내용을 제거하십시오.

CSSearchableIndex.default().deleteSearchableItems(withIdentifiers: ["com.yourapp.note.123"]) { error in
 // handle
}

배치 작업은 효율적입니다 : 또는 ]에 배열을 전달합니다. 전체 재설정을 위해 ]를 사용하십시오 (대략적으로 필요).

사용자 활동 및 딥 링크링

사용자가 스포트라이트 결과를 탭할 때, 앱은 ] 윤곽을 통해 호출을받습니다. ] 또는 ]에서 다음 delegate 메소드를 구현하십시오.

func application(_ application: UIApplication,
 continue userActivity: NSUserActivity,
 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {

 if userActivity.activityType == CSSearchableItemActionType {
 if let userInfo = userActivity.userInfo,
 let identifier = userInfo[CSSearchableItemActivityIdentifier] as? String {
 // Navigate to the item with this identifier
 navigateToContent(identifier: identifier)
 return true
 }
 }
 return false
}

거주 국가

더 부드러운 경험을 위해, 또한 ]을 구현하여 로딩 상태를 보여줍니다. 장면 기반 앱 (iOS 13+)에서 ] 메소드 를 사용하십시오.

NSUserActivity와 딥링크

Core Spotlight는 메커니즘과 함께 작동합니다. 이미 ]를 통해 활동을 색인하면 ] 플래그를 추가 할 수 있습니다. 그러나 제목과 설명에 대한 미세 횡단 제어를 위해 를 직접 사용하십시오.

효과적인 지수에 대한 모범 사례

이 가이드라인에 따라 색인된 내용이 관련 및 수행되어야 합니다.

1. 지수만 의미있는 내용

데이터의 모든 작은 조각을 색인하지 마십시오. 항목 사용자의 초점은 검색 할 가능성이 있습니다. 최근 문서, 높은 가치 페이지 또는 책갈피 콘텐츠.

2. Proper 만료 날짜 설정

기본적으로 1 개월 후에 만료되는 항목입니다. 정적 내용의 경우 ]]를 설정합니다. 시간 감지 데이터 (예 : 이벤트 알림)를 위해 현실적인 날짜를 사용하십시오.

3. 도메인 식별자 Wisely 사용

도메인 식별자는 한 번에 그룹에서 모든 항목을 삭제 할 수 있습니다. 예를 들어, 사용자가 폴더를 삭제하면 ]를 호출합니다.

4. Meaningful 키워드 제공

문법, 일반적인 마자 및 대안 이름을 포함 합니다. overstuffing 피; 5–10 잘 쵸 센 키워드 충분 한.

5. 색인을 붙이기 중복 내용

항목을 복제하면 (예를 들어, 다른 도메인의 동일한 제목), 사용자는 혼란스러운 결과를 볼 수 있습니다. 앱 레벨에서 삭제.

6. 대량 업데이트를위한 일괄 작업

많은 항목 (예를 들어, 클라우드 복원 후) 동기화 할 때, 50-100의 배열로 배치하여 메인 스레드를 차단하는 것을 방지합니다. 배열이있는 을 사용하여 여러 단일 통화가 아닙니다.

성능 및 배터리 고려

Core Spotlight는 낮은 ‐priority 배경 과정을 실행합니다. 그러나 가난한 구현은 배터리 또는 degrade 시스템 성능을 배수 할 수 있습니다.

  • Limit reindexing frequency – 데이터가 실제로 변경되는 경우만, 모든 앱 출시에 해당하지 않습니다.
  • 무기 큰 작업 – ]과 ]](]])을 사용해서 원자 업데이트.
  • Avoid 무거운 이미지 – ] 작은 (예를들면 64×64 포인트, JPEG 압축). 큰 이미지 증가 메모리 압력.
  • 기본 색인 - ]는 거의 모든 앱에 충분합니다. 사용자 정의 인덱스를 생성하는 것은 거의 필요하지 않습니다.

Apple의 Core Spotlight documentation]는 색인을 "fire and forget"으로 처리해야 강조 – 기본 스레드에서 완료 콜백을 위해 비동기적으로 대기하지 않습니다.

테스트 코어 Spotlight 통합

빚은 스포트라이트 결과는 항상 즉시 나타나지 않기 때문에 까다로울 수 있습니다. 이 테스트 전략을 따르십시오:

  1. Simulator testing – iOS Simulator(iOS 15 이상)를 사용. 색인을 끄는 후, 몇 초를 기다리면, 홈 화면을 검색할 수 있습니다. 결과가 더 이상 걸릴 수 있다는 것을 알고 있습니다.
  2. 장치 테스트 – 항상 물리적 장치에 테스트. 스포트라이트 색인은 실제 하드웨어에서 더 적극적인 행동한다.
  3. 인덱스을 재설정 – 설정 앱 사용: 일반 → 스포트라이트 검색 → 앱을 꺼내고 있습니다. 이 인덱스를 명확하게하고 신선한 시작을 강제합니다.
  4. Verify deletion – 항목을 삭제한 후, 이전 결과를 더 이상 나타나지 않습니다. 때로는 시스템 캐시 결과; 최대 30 초.
  5. ] 디버그 콘솔 - ]] Xcode의 계획 인수에서 ] 를 통과하여 로그를 활성화합니다.

유용한 자원은 WWDC 2015 "Core Spotlight 도입"], 이는 오늘날의 기본 개념을 커버.

관련 기사

Core Spotlight API는 사용자들이 앱과 상호 작용하는 방법을 변환 할 수있는 강력한 언더틸드 도구입니다. 시스템에 대한 최신 콘텐츠를 추가함으로써, 당신은 콘텐츠에 대한 검색에서 마찰없는 경로 제공 - 참여 및 유지 보수. 시작 작은: 당신의 가장 중요한 내용을 먼저 색인, 그리고 그 다음이 항목을 커버하기 위해 확장. 당신의 인덱스를 깨끗하게 유지하려면, 고유 식별자를 지속적으로 사용, 사용자 활동 콜백을 처리. 이 단계는 당신이 준비하는 첫 번째 경험으로, 당신은 단지 첫 번째 경험에 대한 자세한 내용을 전달하는 것이 좋습니다.

더 읽기를 위해, 공식 Core Spotlight Framework Reference]과 ]App Search Programming Guide를 참조하시기 바랍니다.