ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
ジャーナルアプリの提案機能を強化
システムから得られる豊富なコンテンツを使用して、ジャーナルアプリにジャーナル記入の提案を表示する方法を説明します。心の健康状態データ、振り返りのプロンプト、サードパーティのメディアコンテンツやモーションベースのアクティビティのサポートなど、新たに利用できるようになったコンテンツもご紹介します。
関連する章
- 0:00 - Introduction
- 1:56 - Landscape support
- 2:34 - Suggestion updates
- 13:54 - Best practices
リソース
- Forum: App & System Services
- Journaling Suggestions
- Presenting the suggestions picker and processing a selection
関連ビデオ
WWDC24
Tech Talks
-
ダウンロード
こんにちは Sensing And Connectivityチームの Reneです 今回は iOS 18に搭載され アップデートされた Journaling Suggestions APIについて ご紹介します Journaling Suggestions APIは 人々が自身の生活を 振り返るのをサポートします 日記をつける習慣には長い歴史があり 振り返って書くことは 心身の健康によい影響を 与えることが示されています しかし どこから始めればよいか わからないこともあります このような場合に役立つのが Journaling Suggestionsです iOSはユーザーの生活の中で 意味のあるイベントを感知し 日記エントリの 出発点を提案します 提案はユーザーが撮った写真や ワークアウト 訪れた場所などから構成されます そしてわずか数か月で このAPIはすでに 数々の驚くべき事例で採用されています ここでそのいくつかを紹介します iOS 18の追加機能により このAPIはさらに豊かになります その内容について ここでお見せしていきます Journaling Suggestionsを あまりよく知らない方や 全体的な復習が必要な方は 昨年のTech Talksの 「Discover the Journaling Suggestions API」をご確認ください
このビデオはAPIの基本情報を すべて網羅しており APIのアーキテクチャから APIがアプリにもたらす様々な提案や アセットの活用方法までを 詳しく紹介しています さらに プライバシーの考慮事項と APIの下に構築されたユーザー コントロールについても説明しています まずは このような体験を 提案する方々のために 横向きモードの 完全なサポートから始めます その後 提案のアップデートについて説明し 新規および更新された アセットタイプについて説明します 次に APIの最初の導入者による 使用方法を振り返りながら ベストプラクティスと教訓を探ります それでは 横向きサポートから始めていきましょう iOS 17.2では Journaling Suggestionsピッカーは 縦向きに固定されていましたが iOS 18からは アプリが横向きを サポートしている場合は アプリの向きの設定に 従うようになります
インタースティシャル画面でも ユーザーがアプリと共有しようとしている コンテンツを確認できるように より広いスペースを活用して アセットが大きなサイズで 表示されます この機能を利用するために 特別なことをする必要はありません アプリが横向きをサポートしている場合 ピッカーはアプリの動作に従います 次に iOS 18がもたらす提案の アップデートについて詳しく見ていきます
Journaling Suggestionsには 多くのアセットタイプが含まれており ジャーナルのエントリを 美しく 意味のあるものにすることができます このトークでは このアセットタイプのうち 4つについて詳しく見ていきます State of Mindは 昨年導入されたヘルスケア機能で そのためのアセットを アプリで提案の一部として 受け取ることができます 活動的ではあるものの Apple Watchは持っていない という方のため Motion Activityの提案は新しいタイプの アクティビティをサポートします
Generic Mediaの提案によって 非Appleアプリ内で聴いた 音楽やポッドキャストについて ジャーナルを書くことができます そして最後に Reflection Promptを紹介します これは最初はJournalのみで 利用可能だった提案ですが 今では皆さんのアプリでも ご利用いただけます
それではState of Mindの 統合について見ていきましょう
iOS 17では ヘルスケアアプリでState of Mindを ログ記録する方法を導入しました 様々な研究により 特に感情を表現する作文は 精神的および身体的な健康の改善に つながることが示されています 感情や経験を文章で表現することで 否定的な影響を減らし ポジティブな感情を 味わうことができます そのため State of Mindは Journaling Suggestionsの 一部になったのです
記録できるState of Mindサンプルには 2つの主なカテゴリがあります 一つは 特定の瞬間に抱いた感情を 表現する瞬間的感情です もう一つは 一日全体を通して感じた 気分を表現する日々の気分です さらに 各State of Mindサンプルには それに関するコンテンツを 提供する情報が付いています
Valenceは そのState of Mindがどれほど ポジティブかネガティブかを示します Labelsは ユーザーのState of Mindが どのようなものだったかを表現します 例えば 落ち着いていた 平和だった 満足していた などです 最後に Associationsは その感情を 引き起こした要因の説明に役立ちます 例えば家族 仕事 フィットネスなどが あげられます もちろん すべてのState of Mindは ジャーナルに書き留める価値があり Valenceや種類 ユーザーが関連付ける要因にかかわらず すべて記載に値します State of Mindという機能には さらに多くの要素があり iOS 18での更新情報も まだまだあります 詳しくは「Explore Wellbeing APIs in HealthKit」のトークを 参照してください アプリがState of Mindサンプルを 記録する方法も紹介しています それでは State of Mindが Journaling Suggestionsに どのように統合されるか 見ていきましょう State of Mindの提案は 単独の提案として来ることもあれば 外出やアクティビティ 自宅で過ごした時間など 既存の提案に バンドルされることもあります iOS 18以前にJournaling Suggestionsを使い始めたユーザーには State of Mindのコンテンツ有効化の ヒントが提案シートに表示されます 新しいユーザーは オンボーディング中に これを有効にすることができます この新しいコンテンツは 新しいアセットタイプとして追加され ジャーナル記録アプリのデベロッパは ユーザーがそのコンテンツを アプリに送信する際に利用できるように することができます
他のタイプのアセットと同様に State of Mindには独自の アセットタイプがあります JournalingSuggestion.StateOfMind と呼ばれるものです このアセットには HKStateOfMind サンプルの表現や Valence、Labels、Associations が含まれます また 画像URLや 関連する明暗色 およびタイムスタンプも含まれます
State of Mindアセットの コンテンツを追加するには まず 提案の中から JournalingSuggestion.StateOfMind 型の すべてのコンテンツを取得します
その後 アイテムアイコンを使用して アセットをAsyncImageに変換するだけです
この例では カスタム関数を使用して アセットの絵文字表現も追加します
get Emotion Emoji関数は 非常にシンプルで
Valenceがポジティブか ネガティブか それともその中間かをチェックします
もちろん State of Mindの すべてのプロパティは ご自身のアプリで 使用することができます この例の結果を見てみましょう
この場合 選択された提案には 記録された日々の気分の State of Mindコンテンツが 含まれています さらに 含まれているラベルや 関連要素の値を使用して 感情豊かなジャーナル記録の体験を 作成することができます 以上が State of Mindの提案です 次に Motion Activityの提案に対する 機能強化について見ていきましょう iOS 17.2では Motion Activityの提案を導入しました これは長距離の散歩をワークアウトとして トラッキングしない人向けの提案です このタイプの提案は スマホベースのみであり 歩数をトラッキングします iOS 18では ランニングや ウォーキング/ランニング混合の アクティビティを導入しています このタイプの提案は引き続き アクティビティスイッチの下にあり ジャーナル記入の提案の 設定の下にあります そして以前と同様に このタイプの提案は ユーザーが撮影した写真や 聴いた音楽と 組み合わせることができます
歩数 アイコンのURL そしてタイムスタンプに加えて Motion Activityアセットには 移動タイプの追加フィールドが加わりました これにより 検出されたアクティビティが ウォーキングかランニングか またはその両方の混合だったのかを アプリに伝えることができます もちろん 各動作タイプには それぞれ専用の画像が付いています
State of Mindアセットの コンテンツを追加するには まず提案の中から JournalingSuggestion.MotionActivity 型の すべてのコンテンツを取得します 次にあらためて アイテムアイコンで アセットをAsyncImageに変換します
この例では カスタム関数を使用して Motion Activityの テキスト表現も追加します
getMotionActivityLabel関数も 非常にシンプルで 移動タイプや特殊なケースをチェックし ランニング ウォーキング ウォーキングとランニングの混合を 確認できます 以上が 新しいMotion Activity コンテンツの活用に必要なすべてです この例の結果を見てみましょう
このシンプルな例では ユーザーが選択したアセットに 新しい「ランニング」Motion Activityの 移動タイプが含まれています 以上が 更新されたMotion Activityの提案です 次に 完全に新しいタイプの提案である Generic Mediaを紹介します iOS 17.2では 楽曲およびポッドキャストの アセットを導入しました Apple MusicやApple Podcastで聴いた 音楽やポッドキャストに焦点を当てた アセットのカテゴリです
iOS 18では 音楽やポッドキャストのコンテンツを 提供する他のメディアアプリも サポートしています 例えば あなたのアプリを使用している人が Melody123や EnlightningTalksアプリの ファンであれば 彼らが聴いたコンテンツを ジャーナル記入の提案の一部として 表示することができます もちろん アプリで音楽とポッドキャストの 両方を提供できる場合もあります そのため この種の提案は Generic Mediaと呼び メディアを消費するために 使用されたアプリの アイコンで表現しています
この設定は メディアジャーナル記入の提案の 設定下で管理できます そしてまた メディアコンテンツを提供するアプリは 選択により ジャーナル記入の提案に参加させないように することができます 詳しくは「Now Playing API」を 参照してください
この新しいGeneric Mediaアセットタイプ には メディアのタイトル アーティスト名 アルバム名 アプリアイコン タイムスタンプが含まれます
Generic Mediaアセットの コンテンツを追加するには まず提案の中から JournalingSuggestion.GenericMedia 型のすべてのコンテンツを取得します
次に このメディアを消費するために 使用されたアプリの アイコンを使用して AsyncImageで アセットを変換するだけです
この例では 利用可能であれば タイトル アーティスト アルバム名が表示されます
なお これらのフィールドは 提供元アプリからの情報により異なり 必ずしも保証されないため ご注意ください そのため使用する前に これらのフィールドが 存在するかを必ず確認してください それでは この例の結果を見てみましょう
これを実行してみます この場合 Melody123の例のアプリからの Generic Mediaコンテンツを含む提案を 選びました アイコンで示されています そしてこのアプリはタイトル アーティスト名 アルバム名を含む 曲の詳細を受け取りました これでユーザーのお気に入りのアプリで メディアコンテンツをサポートできます では このリリースの 最後の追加項目を確認します 振り返り(Reflection)の提案です この提案は 感謝 優しさ 目的などについての 振り返りをサポートする 一般的なプロンプトです プロンプトは魅力的で 通常はテーマの枠組みを設定し そのテーマについて質問を投げかけます 世界との関わり方に基づいた 具体的な提案とは異なり Reflection Promptsは普遍的 かつ時間にとらわれないので いつでもそれらを通じて内省できるほか 定期的に見返すこともできます これらの提案はデフォルトで 有効になっていますが ジャーナル記入の提案設定の下にある 新しいトグルで 制御することができます また提案シートは 推奨タブに 同じ種類のいくつかの提案を 表示することも注目に値します ユーザーが自分に ぴったりのものを選べるように 各提案には様々なプロンプトを 切り替えるボタンが付いています
ユーザーが Reflection Promptを選択すると JournalingSuggestion.Reflection アセットがアプリに送られます このアセットは非常にシンプルで ユーザーが選んだ プロンプト文字列が含まれています シートでこのプロンプトを表示するために 使用された色も取得できますので アプリ内でこの体験を マッチさせることができます
Reflection Promptsアセットの コンテンツを追加するには 提案の中から JournalingSuggestion.Reflection型の すべてのコンテンツを取得します
次に それぞれのプロンプトを プロンプトプロパティを活用しながら テキスト要素を使用して表示します
この例では 提供された背景色を使用し getForegroundColor関数で 適切な前景色を選びます
getForegroundColor関数も 非常にシンプルなロジックで 背景色の明るさが平均より上か下かを 確認するだけです
これを実行してみます
この例では 選択された提案に 暗い色のReflectionコンテンツが含まれ プロンプトテキストは対照的な 白い前景色でレンダリングされます
このReflection Promptの文字列は ユーザーが表現豊かな作文体験の 出発点として利用できます
これで 新しいReflection提案の 処理方法についての説明は終了です あとは iOS 18が皆さんのもとに届くまでに アプリを準備する必要がありますね 引き続きベストプラクティスについて お話しします 新しく追加されたAPIを採用することで ユーザーが選択してアプリに送信できる 新しいコンテンツを 最大限に活用できます 提供するすべてのフィールドを 最大限に活用し アプリに適した方法で 体験を特化させることができます アプリに新しいAPIを採用しないと 完了ブロックで返される コンテンツの一部が アプリで無視される可能性があり ユーザーを驚かせるかもしれません しかし UIImageやImageなどの フォールバックアセットタイプを サポートすれば アップグレードに対して アプリをより堅牢にすることができます それにより すべてのフィールドを すぐに処理しなくても ある程度のサポートレベルを 保つことができます また 次の点を忘れないでください ユーザーがアプリと共有する コンテンツを管理します 提案に含められるコンテンツは オンボーディング時やプライバシー設定時に ユーザーが選択します アプリに送信する提案も ユーザーが選択します そしてアプリに送信する前に どのアセットを含めるか含めないかも ユーザーが選択します ユーザーがこれらをコントロールし それによってアプリが 受け取る内容が決まります Journaling Suggestionsの アップデートについてまとめます State of Mind、Generic Media Motion Activity そして Reflection Promptsの新機能は ユーザー体験を 次のレベルに引き上げてくれます
アプリが横向きをサポートしていれば すぐに確認できます アプリを変更する必要はありません そしてもちろん フィードバックも ぜひお寄せください 新しいバージョンのAPIで 皆さんが構築されるものを 非常に楽しみにしています
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。