ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Journaling Suggestions APIの紹介
プライバシーを保護しながら、ユーザーがアプリを通じて日常生活のちょっとした出来事や大切な思い出を振り返るのに役立つ、新しいJournaling Suggestions APIについて紹介します。このAPIを活用してジャーナル記録の提案用のアセットとメタデータを取得する方法、アプリ上にピッカーを呼び出す方法、提案されたコンテンツをユーザーが保存できるようにする方法などを確認しましょう。
リソース
-
ダウンロード
こんにちは Renéです Sensing And Connectivity Teamに 所属しています iOS 17で発表された新しいJournaling Suggestions APIについて説明します
AppleはiOS 17.2で 日常生活を振り返るのに役立つ ジャーナルアプリを導入しています 記録をつける習慣には深い歴史があり ゆっくり振り返って書くことで 心身の健康状態の改善につながります しかし どのように始めればよいのか わからない場合もあります 記録の開始を手助けするために iOSが日常の大切な出来事を見つけ ジャーナル入力のきっかけを提案します これをジャーナル 記録の提案と呼びます これは誰かが撮った写真 ワークアウト 訪れた場所などで構成されます ジャーナル記録の提案はプライベート アクセス適用ピッカーであり ほかのアプリでも利用できます ジャーナル記録の提案は アプリとは 別のプロセスで実行されますが アプリ上に表示されます ユーザーが実際に選択したもの だけがアプリに返されます もちろん 提案を選択してアプリに送信する前に iOSが生成した内容を確認できます アプリでは各カテゴリへのアクセス確認 プロンプトを表示することなく 位置情報や写真など様々なカテゴリの データからの提案を利用できます 日常生活の振り返りに役立つ日記や 健康関連のアプリを開発している場合 Journaling Suggestions APIは 最適です ここではその使い方を紹介します 最初にJournaling Suggestions APIの 要点とプライバシーの重要性を説明します 次に 非常に簡単なコード例を使用して ピッカーを呼び出す方法を説明します それから 提案から詳細を取得する 方法を紹介します このAPIに組み込まれている すべての便利機能や 提案コンテンツをアプリにすばやく 統合する方法も説明します 最後に ジャーナル記録の提案を初めて 使用する際のユーザーの操作や ユーザーがシートのコンテンツを 設定する方法について説明します
最初に Journaling Suggestions APIの要点と ユーザーのプライバシーを どのように考慮するかを説明し いくつかの定義と概念を紹介します
画面にピッカーが現れると 最初に提案のリストが表示されます それぞれの提案にはタイトルがあり 写真 ワークアウト 場所など 多数のアセットが含まれます 各提案には最大13個のコンテンツ アセットを含めることができます リストは2つのタブで構成されています 1つは「おすすめ」で もう1つは「最近」です
「おすすめ」に表示される ピッカーでは最も重要な提案が 先頭に表示されます 当社のランク付けアルゴリズムでは高度な 機械学習技術を組み合わせており 多様性 最新性 ユーザーの関心との間で 適切なバランスを見つけます このタブには特別な提案も含まれ 思い出の写真のハイライトのほか 週ごとのまとめや泊まりがけの旅行など 直近の数日間を対象に提案が表示されます 「最近」タブでは提案が時間に 基づいて整理されます 簡単に時間をさかのぼることができます
提案をタップすると 中継画面が表示され すべての詳細と添付されたすべての アセットコンテンツを確認できます カルーセル表示を使用すると より大きなサイズでアセットを確認できます ユーザーがデータをアプリと 共有する際に この機能は重要です リスト表示ではアセットに関連付けられた すべてのメタデータを確認できます 各ビューではアセットの選択と選択解除を 行い 送信内容を厳選できます 提案のタイトルを編集することもできます 希望するものを選択し アプリに追加するボタンをタップする だけでコンテンツを追加できます プライバシーを第一に設計されている ことに注意してください 許可要求はアプリでは必要なく そのプロセスの外で実行されます また アプリが受け取るのはユーザーが 選択したコンテンツのみであり それ以外は受け取りません このようにiOSはプライバシーを 保ちながらコンテンツを提案できます 素晴らしさを理解して いただけたと思います 次に アプリでこのピッカーを 呼び出す方法を説明します 必要な作業は次の通りです ジャーナル記録の提案機能を アプリに追加します 適切な権限が追加され アプリで このAPIを使用できます ピッカーの作成に必要なフレームワークを SwiftUIコードにインポートします コンテンツ取得のためピッカーインスタンス クロージャをインストルメント化します アプリ上にピッカーを表示することも できます 最初にジャーナル記録の提案 機能を追加します
機能の追加はXcodeでアプリのビルド ターゲットをタップするだけです 次に「Signing and Capabilities」タブで 「+ Capability」をタップすると 「Journaling Suggestions」が 見つかります これによりアプリでピッカーを 表示することをiOSに指示できます それではAPIを使用したアプリの 例を見てみましょう
このアプリにはピッカーを呼び出して提案の タイトルを取得するボタンがあるだけです 最初にフレームワークをインポートします そしてラベルを付けて ピッカーインスタンスを作成します 「onCompletion」クロージャがあり アプリと共有される情報が表示されます ここにはタイトルだけがあり ボタンの下に表示できます デモをお見せしましょう ボタンをタップするとアプリ上に ピッカーが表示されます
ブラウズして提案を1つ選択します コンテンツは問題ないようです これをアプリと共有してみます
ピッカーが閉じて 提案のタイトルが アプリに表示されます 簡単ですね ここまでXcodeの設定方法 APIのインポート方法 提案のタイトルを取得する簡単な 見本を作成する方法を学びました このクロージャ関数にはほかにも 知っておくべきことがあります 実際 1つの提案に対して受け取ることが できるアセットは9種類あります それらを確認した後 写真アセットを 活用する例を構築する方法を説明します
ワークアウトはルートの有無に応じて 2つの形式で表すことができます どちらの場合も 時間や消費カロリーのほか 利用可能であれば平均心拍数などの 追加情報が提供されます
連絡先には連絡先のプロフィール写真か イニシャルを含む生成画像が表示されます
場所は訪問先を示し 地名やピン 留めした場所などのメタデータも含まれます
曲の場合はタイトル アルバム カバー アートなどの再生項目が含まれます
PodcastにはPodcast名 エピソード名 カバーアートなどがあり
写真には写真へのURLなどがあります
Live Photosにはビデオへの URLとそのプレビューが含まれます
ビデオにはビデオへのURLが含まれます
モーションアクティビティには 歩数とアイコンがあります 次に クロージャでこれらのアセットを 取得する方法を説明します
呼び出しでは suggestionの content(forType:)メソッドで アセットタイプを指定し 特定タイプの アイテムの転送を待つことができます 例えば写真を取得する場合は content(forType:)で写真を指定します
写真を受け取ったら すぐに表示できます この例では 写真をリスト表示にインライン化するために 「photo」タイプのすべてのアイテムを調べ 各アイテムのURLを取得し アイテムを AsyncImageとして挿入しています
AsyncImageでは画像を保存できない場合が ありますが 表示の構成には便利です アセットをほかのSwiftUIタイプに変換し 統合を高速化することもできます この改良したコードを確認してみましょう
まずピッカーを作成します
「onCompletion」クロージャブロックで 提案のタイトルと写真アセットを取得します 次にAsyncImageを使用して 写真を挿入し 表示させます
そのデモをお見せします
ボタンをタップするとアプリ上に ピッカーが再度表示されます
提案を1つ選択し アプリに追加するボタンをタップします
ピッカーが閉じます 前と同様にタイトルが得られ ピッカー からのインライン写真も表示されました 以上が ユーザーが追加を選択した提案から アセットを取得する方法です
ピッカーの呼び出し方法 提案や 関連する写真の取得方法を説明しました アセットタイプが9つあり それぞれに 独自プロパティがあることもわかりました 例では すべての写真アセットを取得して AsyncImageを作成しました しかし実際には 画像を含む アセットはほかにもあります それらをUIImageまたはImage View としてリクエストして同様に扱えます ここでマッピングを確認してみましょう 一部のアセットはUIImageや Image Viewとして取得できます 例えば画像をディスクに保存する場合は URLコンテンツを使用します 先の例では 同じコードを使用してこれらの アセットもリスト表示に挿入できます UIImageと互換性のあるすべての アセットをキャプチャしてみましょう
写真に加え UIImage互換アセットを 表示するようコードを変更します
これをリスト表示に挿入すると AsyncImageの代わりにUIImageを構築し 画像をアイテムにラップして渡します この方法で タイプに関係なくアセットを UIImageとして取得できます この更新を加えた例のデモをお見せします
写真が表示されるだけでなく 曲のアルバムアートも画像に 変換されたことに注意してください
詳しくはJournaling Suggestions API ドキュメントを確認してください
ピッカーに表示するiOS生成コンテンツを ユーザーが制御する方法を説明します アプリでは制御できませんが 受け取るコンテンツの種類に影響します ジャーナルまたは別のアプリが ピッカーを初めて呼び出すと ジャーナル記録の提案でできることを 説明するフローが開始されます これはiOSが行うため 何もする必要はありません
フロー中にユーザーは iOSが提案の生成に使う様々な タイプのイベントやデータを選択できます これらは5つのスイッチで設定します ワークアウトとエクササイズ については「アクティビティ」 Podcastやミュージックについては 「メディア」 やり取りした人々については「連絡先」 ライブラリ 思い出 共有写真については 「写真」 時間を過ごした場所については 「利用頻度の高い場所」を使用します これらのスイッチによりiOSがピッカーに 何をリストするかが決まります
設定はすべてのアプリに適用されます この設定は設定アプリの 「プライバシーとセキュリティ」にある 「ジャーナル記録の提案」で いつでも変更できます
以上をまとめます この新しいAPIによって 振り返りに 役立つユーザー体験を構築できます アプリ上にピッカーを表示し ユーザーがアプリに追加した提案に 関するアセットと詳細を取得できます プロセス外で機能するので プライバシーを 理想的な方法で保護できます
ご視聴ありがとうございました Journaling Suggestions APIを使用して 新しい体験を構築してください
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。