[ios] CoreSpotlight를 이용한 검색 결과의 시각적 표현

iOS 애플리케이션을 개발할 때, 사용자가 앱 내의 콘텐츠를 효과적으로 검색하고 관리할 수 있도록 CoreSpotlight 프레임워크를 사용할 수 있습니다. CoreSpotlight를 활용하면 사용자가 앱 내에서 생성한 콘텐츠를 시스템 검색 결과에 표시하고, 해당 검색 결과를 터치하거나 클릭하여 앱으로 바로 이동할 수 있습니다. 여기서는 CoreSpotlight를 이용하여 검색 결과의 시각적 표현을 개선하는 방법에 대해 살펴보겠습니다.

CoreSpotlight 개요

CoreSpotlight는 iOS 9부터 도입된 프레임워크로, 앱 내의 콘텐츠를 시스템 검색에 추가하고 검색 결과를 표시하는 기능을 제공합니다. CoreSpotlight는 NSUserActivity 객체를 사용하여 앱의 콘텐츠를 시스템에 등록하고, 이를 통해 사용자가 해당 콘텐츠를 검색할 수 있도록 합니다.

검색 결과의 시각적 표현

CoreSpotlight를 사용하여 앱의 콘텐츠를 검색 결과에 표시할 때, 검색 결과의 시각적 표현을 개선하여 사용자에게 더욱 직관적이고 효율적인 검색 경험을 제공할 수 있습니다. 예를 들어, 검색 결과에 이미지 또는 키워드를 추가하여 사용자에게 콘텐츠의 내용을 미리 보여줄 수 있습니다.

CoreSpotlight를 이용하여 검색 결과를 시각적으로 표현하기 위해서는 NSUserActivity의 contentAttributeSet 속성을 사용하여 검색 결과에 표시될 이미지나 콘텐츠의 정보를 설정할 수 있습니다. 해당 속성은 CSSearchableItemAttributeSet 객체를 사용하여 구성할 수 있으며, 이를 통해 검색 결과에 표시될 제목, 설명, 이미지 등을 지정할 수 있습니다.

다음은 Swift로 작성된 예시 코드입니다.

import CoreSpotlight
import MobileCoreServices

let searchableItemAttributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeItem as String)
searchableItemAttributeSet.title = "콘텐츠 제목"
searchableItemAttributeSet.contentDescription = "콘텐츠 설명"
searchableItemAttributeSet.thumbnailData = UIImage(named: "썸네일이미지")?.pngData()

let attributeSet = NSUserActivity(activityType: "com.example.myActivity")
attributeSet.contentAttributeSet = searchableItemAttributeSet

let userActivity = attributeSet
userActivity.title = "콘텐츠 제목"
userActivity.userInfo = ["key": "value"]
userActivity.requiredUserInfoKeys = Set(arrayLiteral: "key")

CSSearchableIndex.default().indexSearchableItems([CSSearchableItem(uniqueIdentifier: "uniqueIdentifier", domainIdentifier: "domainIdentifier", attributeSet: attributeSet)])

위 예시 코드에서는 CSSearchableItemAttributeSet 객체를 생성하고, 필요한 속성들을 설정한 후 NSUserActivity 객체의 contentAttributeSet 속성에 할당하여 검색 결과에서 표시될 내용을 구성하고 있습니다.

결론

CoreSpotlight를 이용하여 검색 결과의 시각적 표현을 개선함으로써, 사용자가 앱 내의 콘텐츠를 더욱 쉽고 빠르게 찾을 수 있도록 도와줄 수 있습니다. 적절한 이미지나 요약 정보를 포함하여 검색 결과를 더욱 매력적으로 만들고, 사용자의 앱 경험을 향상시킬 수 있습니다.

위에서 제시한 내용은 CoreSpotlight를 활용한 시각적 표현의 예시이며, 더 다양한 방법으로 검색 결과를 시각적으로 표현할 수 있습니다. 각 앱의 특성에 맞게 적절한 방식으로 CoreSpotlight를 활용하여 검색 결과를 더욱 효과적으로 제시할 수 있도록 고민해보시기를 권장합니다.

이상으로 CoreSpotlight를 이용한 검색 결과의 시각적 표현에 대한 내용을 알아보았습니다. 부가적인 질문이 있으시다면 추가로 도움을 드리겠습니다.

참고 자료