[ios] CoreSpotlight와 사용자 검색 환경 설정

iOS 앱을 개발하다 보면 사용자가 앱 내부의 콘텐츠를 검색할 수 있는 기능을 제공해야 할 때가 있습니다. iOS에서는 CoreSpotlight 프레임워크를 통해 이러한 기능을 구현할 수 있습니다. 또한, 이러한 기능을 사용자가 시스템 검색에 표시하도록 설정할 수 있습니다. 이를 통해 사용자가 iOS의 시스템 검색을 통해 앱 내부 콘텐츠를 빠르게 찾을 수 있게 됩니다.

CoreSpotlight 개요

CoreSpotlight는 iOS 9부터 도입된 프레임워크로, 앱 내의 중요한 콘텐츠를 시스템 검색에 추가할 수 있도록 합니다. 이를 통해 사용자가 앱을 사용하지 않고도 iOS의 시스템 검색을 통해 앱의 콘텐츠를 찾을 수 있습니다.

CoreSpotlight 기능 구현

CoreSpotlight를 통해 검색 가능한 항목을 추가하려면 CSSearchableItem을 생성하여 해당 항목의 메타데이터를 정의하고, CSSearchableIndex를 사용하여 이 항목을 인덱싱해야 합니다. 예를 들어, 사용자가 앱 내의 문서를 검색할 수 있도록 하려면 각 문서에 대한 CSSearchableItem을 생성하고, 이를 CSSearchableIndex에 추가하여 검색 가능하게 만들 수 있습니다.

다음은 Swift 언어를 사용하여 CoreSpotlight 기능을 구현하는 예시 코드입니다.

import CoreSpotlight
import MobileCoreServices

let searchableItem = CSSearchableItem(uniqueIdentifier: "document1", domainIdentifier: "documents", attributeSet: attributeSet)
CSSearchableIndex.default().indexSearchableItems([searchableItem]) { error in
    if let error = error {
        print("Error indexing item: \(error.localizedDescription)")
    } else {
        print("Item indexed successfully")
    }
}

사용자 검색 환경 설정

앱에서 CoreSpotlight를 사용하여 검색 가능한 항목을 추가했다면, 해당 항목들이 iOS의 시스템 검색에 표시되도록 설정할 수 있습니다. Info.plist 파일에 NSUserActivityTypes 키를 추가하고, 해당 키에 사용자 활동 유형을 지정하여 해당 활동이 iOS 시스템 검색에 표시되도록 설정할 수 있습니다.

다음은 Info.plist 파일에 NSUserActivityTypes 키를 추가하여 사용자 활동 유형을 지정하는 예시 코드입니다.

<key>NSUserActivityTypes</key>
<array>
    <string>com.example.app.document</string>
    <string>com.example.app.image</string>
</array>

위 예시 코드에서 com.example.app.documentcom.example.app.image는 각각 문서와 이미지 검색 활동의 유형을 나타내며, 이를 통해 해당 유형의 검색 활동이 iOS의 시스템 검색에 표시될 수 있도록 설정할 수 있습니다.

이렇게 설정된 사용자 활동 유형을 통해 iOS의 시스템 검색에서 앱의 콘텐츠가 노출되어 사용자가 빠르게 앱 내의 콘텐츠를 검색하고 찾을 수 있도록 도와줍니다.

결론

CoreSpotlight를 사용하여 iOS 앱의 콘텐츠를 시스템 검색에 추가하고, 사용자가 빠르고 편리하게 앱 내부의 콘텐츠를 검색할 수 있도록 도와줄 수 있습니다. CoreSpotlight와 사용자 검색 환경 설정을 통해 앱의 가용성과 사용자 경험을 향상시킬 수 있습니다.