iOS 앱의 검색 기능을 향상시키고 사용자 경험을 향상시키기 위해 CoreSpotlight 프레임워크를 활용할 수 있습니다. 이 기술을 사용하면 iOS 장치의 시스템 검색에 컨텐츠를 도입할 수 있어 사용자가 앱 내에서 빠르고 쉽게 검색할 수 있습니다.
CoreSpotlight의 기능
CoreSpotlight는 iOS 9에서 소개된 프레임워크입니다. 이를 통해 앱 내의 콘텐츠를 시스템 검색에 추가하여 사용자가 앱을 사용하지 않을 때에도 검색 결과에 표시될 수 있습니다. 주요 기능은 아래와 같습니다:
- 사용자가 앱 내 콘텐츠를 시스템 검색에서 발견할 수 있도록 하는 기능
- 앱 내의 특정 콘텐츠를 복잡한 쿼리 및 필터를 적용하여 사용자가 빠르고 쉽게 발견할 수 있도록 함
CoreSpotlight를 활용한 검색 결과 제시 방법
-
NSUserActivity 사용: CoreSpotlight를 사용하여 앱 내 콘텐츠와 사용자 활동에 대한 검색 가능한 활동을 정의합니다.
NSUserActivity
를 이용하여 앱의 활동을 색인화하고, 해당 활동이 검색 결과에 표시되도록 할 수 있습니다.let userActivity = NSUserActivity(activityType: "com.example.app.view") userActivity.title = "Example Content" userActivity.userInfo = ["id": "123"] userActivity.keywords = ["example", "content"] userActivity.becomeCurrent()
-
CSSearchableItemAttributeSet 사용: 사용자가 검색 결과를 터치했을 때 표시될 콘텐츠에 대한 정보를 제공합니다.
CSSearchableItemAttributeSet
을 사용하여 콘텐츠의 메타데이터를 정의하고 사진, 비디오, 문서 등과 같은 다양한 파일 형식을 처리할 수 있습니다.let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeImage as String) attributeSet.title = "Example Content" attributeSet.contentDescription = "This is an example content." attributeSet.keywords = ["example", "content"] let item = CSSearchableItem(uniqueIdentifier: "123", domainIdentifier: "com.example.app", attributeSet: attributeSet)
-
콘텐츠를 색인화: 사용자의 검색 쿼리에 응답할 수 있는 콘텐츠를 색인화하기 위해
CSSearchableIndex
를 사용합니다.CSSearchableIndex
는 앱 내의 콘텐츠를 시스템 검색에 추가하고 업데이트하는 데 사용됩니다.CSSearchableIndex.default().indexSearchableItems([item]) { error in if let error = error { print("Error indexing items: \(error.localizedDescription)") } }
마치며
CoreSpotlight를 활용하면 앱 사용자가 빠르게 검색할 수 있도록 도와주는 강력한 기능을 구현할 수 있습니다. 앱의 컨텐츠가 iOS 장치의 시스템 검색에 적절히 표시되도록 하는 것은 사용자 경험을 향상시키고 앱의 가시성을 향상시킬 수 있는 중요한 요소입니다.
참고 자료: Apple Developer Documentation - CoreSpotlight
본 문서는 iOS 개발자를 대상으로 작성되었습니다.