[ios] CoreSpotlight를 활용한 앱 내부 컨텐츠 태그링

iOS 앱을 개발하는 동안 사용자가 앱 내에서 특정한 콘텐츠를 검색하고 찾을 수 있도록 도와주는 것은 매우 중요합니다. iOS에서는 CoreSpotlight 프레임워크를 활용하여 앱 내부의 콘텐츠를 태그하는 기능을 제공합니다. 사용자는 이를 통해 iOS 기기의 시스템 검색과 Siri에 의해 앱 내부 콘텐츠를 쉽게 검색할 수 있습니다.

CoreSpotlight란 무엇인가?

CoreSpotlight는 iOS 9부터 도입된 프레임워크로, iOS 기기의 시스템 검색 기능을 앱에 통합하여 앱 내부 콘텐츠를 검색할 수 있도록 지원합니다. 이를 통해 사용자는 해당 콘텐츠로 직접 이동할 수 있습니다. 또한, 앱 내에서 검색된 콘텐츠를 Siri나 Spotlight에서도 검색 결과로 확인할 수 있습니다.

CoreSpotlight를 활용한 앱 내부 컨텐츠 태그링

CoreSpotlight를 활용하여 앱 내부의 콘텐츠를 태그하기 위해서는 다음과 같은 단계가 필요합니다.

  1. CSSearchableItemAttributeSet을 생성하여 컨텐츠에 대한 메타데이터를 설정합니다.
  2. CSSearchableItem을 생성하고, 위에서 설정한 메타데이터를 해당 아이템에 연결합니다.
  3. CoreSpotlight 메니저를 사용하여 CSSearchableItem을 색인화 합니다.

예제 코드

import CoreSpotlight
import MobileCoreServices

// CSSearchableItemAttributeSet을 생성하여 메타데이터를 설정
let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeImage as String)
attributeSet.title = "Example Image"
attributeSet.contentDescription = "This is an example image"

// CSSearchableItem을 생성하고 메타데이터를 연결
let item = CSSearchableItem(uniqueIdentifier: "exampleImage", domainIdentifier: "com.example.app.images", attributeSet: attributeSet)

// CoreSpotlight 메니저를 사용하여 CSSearchableItem을 색인화
CSSearchableIndex.default().indexSearchableItems([item]) { error in
    if let error = error {
        print("Error indexing item: \(error.localizedDescription)")
    } else {
        print("Item indexed successfully")
    }
}

위의 코드는 이미지 콘텐츠를 CoreSpotlight에 색인화하는 간단한 예제입니다.

마치며

CoreSpotlight를 활용하면 앱 내부 콘텐츠를 iOS 시스템 검색과 Siri에서 쉽게 찾을 수 있도록 태그할 수 있습니다. 앱 사용자는 더 나은 검색 경험을 통해 편리하고 효율적으로 앱 내의 원하는 콘텐츠를 찾을 수 있게 될 것입니다.