[ios] CoreSpotlight를 활용한 앱 내부 컨텐츠 태그링
iOS 앱을 개발하는 동안 사용자가 앱 내에서 특정한 콘텐츠를 검색하고 찾을 수 있도록 도와주는 것은 매우 중요합니다. iOS에서는 CoreSpotlight 프레임워크를 활용하여 앱 내부의 콘텐츠를 태그하는 기능을 제공합니다. 사용자는 이를 통해 iOS 기기의 시스템 검색과 Siri에 의해 앱 내부 콘텐츠를 쉽게 검색할 수 있습니다.
CoreSpotlight란 무엇인가?
CoreSpotlight는 iOS 9부터 도입된 프레임워크로, iOS 기기의 시스템 검색 기능을 앱에 통합하여 앱 내부 콘텐츠를 검색할 수 있도록 지원합니다. 이를 통해 사용자는 해당 콘텐츠로 직접 이동할 수 있습니다. 또한, 앱 내에서 검색된 콘텐츠를 Siri나 Spotlight에서도 검색 결과로 확인할 수 있습니다.
CoreSpotlight를 활용한 앱 내부 컨텐츠 태그링
CoreSpotlight를 활용하여 앱 내부의 콘텐츠를 태그하기 위해서는 다음과 같은 단계가 필요합니다.
- CSSearchableItemAttributeSet을 생성하여 컨텐츠에 대한 메타데이터를 설정합니다.
- CSSearchableItem을 생성하고, 위에서 설정한 메타데이터를 해당 아이템에 연결합니다.
- 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에서 쉽게 찾을 수 있도록 태그할 수 있습니다. 앱 사용자는 더 나은 검색 경험을 통해 편리하고 효율적으로 앱 내의 원하는 콘텐츠를 찾을 수 있게 될 것입니다.