RORK LABEN
NATIVE — Rork Max では AR / LiDAR スキャン、Metal を使った 3D、Dynamic Island、Siri Intents、HealthKit、NFC、App Clips、Core ML まで届きますIOS27 — iOS 27 Developer Beta 4 で Siri AI の対象が iPhone 15 Pro / 15 Pro Max・16 シリーズ・17 系へ広がり、応答が初期ベータより明確に速くなりましたDESIGN — iOS・iPadOS・macOS 27 向けの Apple 純正デザインキットが Figma と Sketch 向けに公開されました。新 OS の UI を組む段階で参照できますCANARY — Android 17(Cinnamon Bun)は従来の Developer Preview を廃し、継続更新される Canary ビルドへ移行しました。検証のタイミング設計が変わりますSPARK — Android 17 の Gemini Spark は、アプリを直接操作して配車の予約や注文といった複合的な作業を自動化しますSCALE — Rork は a16z から $2.8M を調達し、月間訪問は74万件規模まで伸びていますNATIVE — Rork Max では AR / LiDAR スキャン、Metal を使った 3D、Dynamic Island、Siri Intents、HealthKit、NFC、App Clips、Core ML まで届きますIOS27 — iOS 27 Developer Beta 4 で Siri AI の対象が iPhone 15 Pro / 15 Pro Max・16 シリーズ・17 系へ広がり、応答が初期ベータより明確に速くなりましたDESIGN — iOS・iPadOS・macOS 27 向けの Apple 純正デザインキットが Figma と Sketch 向けに公開されました。新 OS の UI を組む段階で参照できますCANARY — Android 17(Cinnamon Bun)は従来の Developer Preview を廃し、継続更新される Canary ビルドへ移行しました。検証のタイミング設計が変わりますSPARK — Android 17 の Gemini Spark は、アプリを直接操作して配車の予約や注文といった複合的な作業を自動化しますSCALE — Rork は a16z から $2.8M を調達し、月間訪問は74万件規模まで伸びています
記事一覧/開発ツール
開発ツール/2026-06-16上級

Rork Max のネイティブアプリの中身を iPhone の検索に載せる — Core Spotlight で「探されるアプリ」にする実装

Rork Max が生成するネイティブ Swift アプリのコンテンツを Core Spotlight に索引し、iPhone の検索からアプリ内の特定画面へ直接たどり着ける導線を実装します。索引の登録・更新・削除と、検索結果が古くなる本番の落とし穴を個人開発目線で整理しました。

Rork Max231Core SpotlightSwift48検索導線NSUserActivityディープリンク8

プレミアム記事

壁紙アプリの利用者から、こんな声をもらったことがあります。「お気に入りに入れたあの一枚を、ホーム画面の検索からすぐ出せたら嬉しい」。アプリを開いてタブを切り替えて探すのではなく、iPhone 全体の検索(Spotlight)から直接そのコンテンツに飛べたら、確かに気持ちが良いはずです。

これを実現するのが Core Spotlight です。アプリ内のコンテンツを iPhone の検索索引に載せ、検索結果のタップから該当画面へ復帰させられます。React Native のブリッジ越しでは細部に手が届きにくい領域ですが、Rork Max はネイティブ Swift を生成するため、CoreSpotlight を import すれば索引の登録から復帰まで素直に組めます。ここでは「探されるアプリ」にするための実装を、登録・更新・削除と本番の落とし穴を軸に整理します。

なぜ Spotlight に載せる価値があるのか

個人開発のアプリは、一度インストールされても、日々の暮らしの中で存在を忘れられがちです。私自身、AdMob 中心の無料アプリを複数運用してきて、再訪のきっかけをどう作るかが収益を左右すると痛感しています。Spotlight への索引は、ユーザーが何かを検索した瞬間に、自分のアプリのコンテンツがそっと候補に並ぶ導線です。広告でも通知でもなく、ユーザーの能動的な検索に静かに応える形なので、体験を壊しません。

ただし索引は「載せて終わり」ではありません。コンテンツが変われば索引も追従させる必要があり、ここを怠ると検索結果が古いまま残ります。

Step 1: コンテンツを CSSearchableItem として索引する

最初に、アプリ内のコンテンツを CSSearchableItem に変換して索引へ登録します。uniqueIdentifier は後で該当コンテンツを復元するための鍵になるため、アプリ内の安定した ID を使います。

import CoreSpotlight
import MobileCoreServices
 
func index(wallpaper id: String, title: String, thumbnail: Data) {
    let attr = CSSearchableItemAttributeSet(contentType: .image)
    attr.title = title
    attr.contentDescription = "保存済みの壁紙"
    attr.thumbnailData = thumbnail            // 検索結果に出るサムネイル
 
    let item = CSSearchableItem(
        uniqueIdentifier: id,                 // 復元の鍵。安定した ID を使う
        domainIdentifier: "wallpaper",        // まとめて削除する単位
        attributeSet: attr
    )
    CSSearchableIndex.default().indexSearchableItems([item]) { error in
        if let error = error { print("index failed: \(error)") }
    }
}

domainIdentifier を用途ごとに分けておくと、後でカテゴリ単位の一括削除が楽になります。私はこれを最初に決めずに作って、削除時にまとめて消せず苦労しました。最初の設計で区切っておくことを推奨します。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
CSSearchableItem でアプリ内コンテンツを索引し、検索結果のタップから該当画面へ復帰する一連のコードを把握できます
コンテンツの追加・更新・削除に索引を追従させる設計と、索引が古いまま残る本番症状の切り分けが得られます
個人開発で「検索に出す対象」を絞った判断基準と、再索引のコストを抑える実践的な進め方が分かります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-07-18
AR で置いたものが翌朝には消えている — ARWorldMap による配置の永続化とリローカライズ設計
Rork Max が生成する AR アプリは、置いた 3D オブジェクトがアプリ再起動で消えます。ARWorldMap の保存タイミング、カスタムアンカーの符号化、リローカライズ待ちの見せ方、成立しない時の逃げ道までを設計として整理しました。
開発ツール2026-07-17
Rork の App Store 提出が「輸出コンプライアンス」で毎回止まるのを設定1行で終わらせる
Rork と Rork Max のビルドを App Store Connect に上げるたびに出る Missing Compliance 警告。免除の判断基準と、app.json / Info.plist で恒久的に消す設定、消えない場合の原因を整理しました。
開発ツール2026-07-16
Rork Max 生成コードの再生成ゾーン設計 — 手を入れるほど失われる「作り直せる自由」を残す
Rork Max の生成コードには「捨てて作り直せる」という見えない資産が乗っています。手を入れるたびに静かに失効するその資産を、台帳とCI検査で管理する設計を、個人開発の実運用からまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →