ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Shared with YouをAppに追加する
Shared with Youを使用すると、メッセージAppで共有されたコンテンツを、あなたのAppの中で簡単に見つけられるようになります。AppでShared with Youをサポートして、メッセージAppでコンテンツを扱う方法を学びましょう。「ピンで固定」することで暗黙的にShared with Youが許可され、コンテンツが自動的に共有される仕組みについて解説します。また、Shared with Youのコンテンツを「あなたと共有」の棚に表示したり、アトリビューションビューで表示する方法も紹介します。
リソース
関連ビデオ
WWDC22
WWDC20
-
ダウンロード
♪♪
こんにちは Karthik と申します Messages チームのエンジニアです この動画では Shared with You と App への導入方法を紹介します
Shared with You は iOS 15 で発表されました 友人や家族が メッセージApp で送信したリンクに 簡単にアクセスできるようデザインされています Shared with You を採用している システム App は Safari や News ミュージック に ポッドキャスト TV App や写真 App です Shared with You はコンテンツに対応します 視聴できていないときに コンテンツを受理することもあります たとえば買い物中に友達から テレビ番組のおすすめを受け取っても それは忘れられてしまうでしょう Shared with You を使用すると 後で TV App で 視聴するTV番組を簡単に見つけられます Shared with You を使用すると メッセージApp のチャットで 共有されたコンテンツに App から離れることなくアクセスできます
ユーザーが共有されたコンテンツを メッセージApp で「ピンで固定」すると Shared with You の検索で そのコンテンツの優先度が上がり このコンテンツが重要であると認識され 自動共有に同意した処理を開始します これについては後ほど詳しく説明します iOS 16 では Shared with You が拡張されました Shared with You の利便性を App に取り入れましょう
まず App で のShared with You の デザインについて説明します 次にそれがどう機能するか 最後に導入方法について説明します
まずはデザインから Appでの体験には2つの部分があります Shared with You シェルフと アトリビューションビューです シェルフは App で ブラウジングを行う専用スペースで メッセージ App で共有された コンテンツをハイライトします TV App の「今すぐ観る」タブの 「あなたと共有」シェルフ ミュージックとポッドキャストの 「今すぐ聴く」タブも同様です
コンテンツはランク付け 順序付けされたリストです これについては後半で説明します シェルフの各アイテムについて アトリビューションビューと リッチプレビューを表示します リッチプレビューにはサムネイルとタイトル あればサブタイトルも含まれます この例ではリッチプレビューは ポッドキャストアートと エピソード名と番組名で構成されています 共有コンテンツの アトリビューションビューもあります 誰からシェアされたのか 一目で分かります
ビューを展開したり全ての一覧を表示する 「Show More すべて見る」を用意します アトリビューションビューは 共有した人の名前とアバターを 安全に表示する プロセス外のビューです コンテンツが「ピンで固定」されているか どうかも表示されます コンテンツの詳細ビューにも アトリビューションビューを表示します ユーザーはコンテンツが共有された メッセージApp の会話に戻れます たとえばテレビ番組を視聴しているときに アトリビューションビューを見て おすすめされた事を思い出します 今番組を見ようとしていることを 友達に伝えることも可能です すべて App 内で行われ 返信した後は App のコンテンツに戻ります アトリビューションビューは インタラクティブです ビューをタップすると App 内で 直接 メッセージ App の会話を表示します アトリビューションビューには 返信や削除などのコンテキストメニューもあり 返信はビューのタップと同じ動作です 削除オプションは今後このコンテンツを 表示しないように指示します あなたのコンテキストメニューに これを追加することもできます コンテキストメニューの「削除」の タイトルはカスタマイズ可で Safariでは Webページのコンテキストメニューに 「リンクの削除」と表示されます この動画の後半で処理方法を説明します これでシェルフを表示する場所と アトリビューションビューを 表示する場所がわかりました では Shared with You の機能をお見せします メッセージで友人や家族が共有したリンクは Shared with You に表示されます グループ会話に含まれるリンクは 少なくとも1人の参加者が 連絡先にある場合に表示されます Shared with You はユニバーサルリンクと 同じテクノロジーをベースにしています ユニバーサルリンクを使用すると App とウェブサイトのコンテンツを シームレスにリンクできます ユーザーは Shared with You のコンテンツを 細かく制御できます
メッセージApp の外部で 共有するコンテンツを 会話ごと App ごと または全部まとめて設定できます 事前に許可を要求する必要はありません オーガニックに発生するものです リンクの「ピンで固定」は Shared with You で コンテンツを表示するための暗黙の許可です 「ピンで固定」されたコンテンツは App 内の Shared with You で常に利用できます コンテンツがメッセージAppで 「ピンに固定」されると ヒューリスティックに基づき 自動共有を有効にするオプションが表示されます 自動共有をオンにすると App の Shared with You にさらなるコンテンツが 自動的に表示されます
Shared with You のコンテンツは 順序を持っています シェルフの最初のアイテムは システムからの情報に基づいて Siri によってキュレーションされます ピンで固定されたアイテムがこれに続き リストの残りの部分は時系列で並べられます
Siri Suggestionsは ユーザーがそのコンテンツを見たか またはインタラクトしたか といった情報を使用します コンテンツはピンで固定されていますか? どのような文脈で提示されているますか? App がこのフィードバックを提供します 後半で詳しく説明します これらはすべてコンテンツがあまりに一時的で 陳腐化しないようにするために行われます リンクが複数回共有された会話では 最新のメッセージを表示します リンクが複数のメッセージ App 内の会話で 共有された場合 アトリビューションビューは それを視覚的に表現します たとえば Enrique と Sarah が シカゴのトップ25プレイリストを 共有している場合 アトリビューションビューには 両方の連絡先アバターが表示されます アトリビューションビューをタップすると 曖昧さ回避のためのメニューが表示され どちらのメッセージに返信するか 選択することができます Shared with You の設計では セキュリティとプライバシーを重視しています アトリビューションビューと曖昧性回避ビューは プロセスの外で描画されます Shared with Youは Universal Links の関連付けによって アプリケーションのコンテンツを保護し その App のみがそのコンテンツに アクセスできるようになっています App は受信者との会話にアクセスできません
これで Shared with You の機能がわかりました 最もエキサイティングな部分は App で Shared with You を導入する方法です まず Universal Links を導入し 次に Xcode の Capabilities タブで 新しい Shared with You を追加します 次にシェルフを App に配置し コンテンツにアトリビューションビューを 追加します Universal Links の導入方法はこうです
ユーザーは App 内のコンテンツ またはウェブサイトへのリンクを インテリジェントにたどれます サポートするには次の手順を実行します まず App とウェブサイト間の 双方向の関連付けを行い App が処理する URL を指定します 作成方法は App に Associated Domains を追加し ウェブサーバーにJSONファイルを追加します 次に App デリゲートを更新して システムが提供する ユーザーアクティビティオブジェクトに 応答します 詳細は2020のセッションをご覧ください 「ユニバーサルリンクの新機能」 iOS 16で Shared with You のフレームワークが 新たに導入されました このフレームワークには3つの 主要なクラスがあります SWHighlightCenter SWHighlight と SWAttributionView SWHighlightCenter は Shared with You のコンテンツを 取得するクラスです SWHighlight は共有コンテンツを ラップするモデルオブジェクトです SWAttributionView はコンテンツを メッセージ App の会話に関連付け 属性情報を表示します
ハイライトセンターは以下のような シンプルなオブジェクトで構成されています SWHighlight オブジェクトの 配列であるハイライトコンテンツが 追加や削除または更新されたときに App に通知を送信するデリゲートプロパティを 持っています ハイライトは SWHighlight クラスで 表示されます メッセージApp で共有された App の コンテンツの URL を持っており これを利用してコンテンツの参照と リッチプレビューのレンダリング App 内のコンテンツへの ナビゲーションを行います App の Shared with You コンテンツを 列挙する方法を説明します
まず SWHighlightCenter の インスタンスを作成します 次にデリゲートプロパティを設定します SWHighlightCenter Delegate メソッドを実装して ハイライトセンターの highlights プロパティから Shared with You コンテンツにアクセスします App は前回のハイライトリストを保持することで 最新のハイライトリストとの差分を 素早く取得することができます
各ハイライトの URL プロパティにより リッチプレビューを生成します このように App 内の Shared with You コンテンツを 簡単に列挙することができます 次にコンテンツに アトリビューションビューを追加して カスタマイズする方法を説明します SWAttributionView はコンテンツを共有した人の 名前とアバターを表示するビューです 各ハイライトには対応する アトリビューションビューがあります アトリビューションビューに ハイライトのプロパティを設定すると 帰属情報が他のプロセスにより レンダリングされます
アトリビューションビューの 最大幅を指定します アトリビューションビューは 必要に応じてスペースを埋めます アトリビューションビューのアラインメントを 最大スペース内に設定します 例をお見せしましょう
SWAttributionView のインスタンスを作成し highlight パティを設定します PreferredMaxLayout Width を設定します この例では共有コンテンツの サムネイルの下部です このビューの幅アンカーを制限するか フレーム幅を設定して コンテンツの最大幅を制御します UIView の minimumContentSizeCategory か maximumContentSizeCategory を使用して 必要に応じてビューの最大AXコンテンツ サイズカテゴリを設定します このビューの周囲に十分な垂直方向の スペースを確保します ビューの高さは preferredContentSizeCategory と その結果のフォントサイズに依存します ビューの高さが不必要に制限されている場合 ビューはクリップされるか 描画されない可能性があります この場合 horizontalAlignment は leading に設定されます Center または Trailing に 設定することもできます 次にアトリビューションビューの カスタマイズの方法です 表示コンテキストを設定することで ユーザーがどのように コンテンツを消費しているかを システムに通知することができます また Shared with You コンテンツの ランキングにも影響します ウィンドウに追加する前に これを設定してください アトリビューションビューの背景スタイルは 使用されているコンテンツの 背景に基づいてカスタマイズできます 例を示します displayContext プロパティの デフォルト値は summary です これはコンテンツが一覧の中に 表示されていることを示しています 映画を見たりポッドキャストを聞くなど ユーザーがコンテンツを 積極的に利用しているとき displayContext を detail に設定します displayContext の設定は App が提供するフィードバックとなり これは Siri Suggestions の ランク付けに役立ちます アトリビューションビューを モノクロ背景に配置するときには この例のようにアトリビューション ビューの背景スタイルを カラーに設定します カラー背景にアトリビューションビューを 配置する場合はマテリアルを使います これでビューのコンテンツに マテリアル背景のブラーが設定されます この例ではSafariのローディングページには 背景に画像があり 背景スタイルを正しく設定すると アトリビューションビューの 内容がより見やすくなります 次にコンテキストメニューを App のコンテンツに追加し タイトルをカスタマイズする方法を紹介します Appのコンテンツに添付されている 既存のコンテキストメニューを アトリビューションビューで補完できます このメニューは補強するコンテクスト メニューのインライン または末尾に追加する必要があります コンテキストメニューの削除オプションに カスタムタイトルを指定することができます この文字列には正しくローカライズされた 「削除」が含まれている必要があります この例ではSafariはメニューの タイトルを「リンクの削除」に コンテキストメニューでカスタマイズ しています 例を提示してこれを行う方法を紹介します まず AttributionView のインスタンスを作成し hilight プロパティを設定します menuTitleForHideAction から コンテキストメニューの削除に カスタムのタイトルを指定します コンテンツのコンテキストメニューを 構成するには attributionView の supplementalMenu で メニューを取得し それをコンテンツの コンテキストメニューに追加します これらの簡単な手順により App はアトリビューションビューで使用可能な コンテキストメニューオプションを コンテンツに追加できます これで App に Shared with You を 導入する方法が分かりました 導入方法の3つの簡単な手順を要約します Universal Links を導入 Xcode で Shared with You を App の Capabolity に追加 Shared with You フレームワークを インポートして使用 メッセージ App でコンテンツを共有し あなたの App で Shared with You を 使用することを楽しみにしています
-
-
12:06 - Enumerate Shared with You shelf
// Enumerate Shared with You shelf class SharedWithYouViewController: UIViewController, SWHighlightCenterDelegate { let highlightCenter = SWHighlightCenter() override func viewDidLoad() { super.viewDidLoad() highlightCenter.delegate = self } func highlightCenterHighlightsDidChange(_ highlightCenter: SWHighlightCenter) { for highlight in highlightCenter.highlights { let highlightURL = highlight.url // Generate a rich preview for the Highlight } } }
-
13:42 - Setting appearance of Attribution View
// Setting appearance of Attribution View let attributionView = SWAttributionView() attributionView.highlight = self.highlightCenter.highlights[index] attributionView.preferredMaxLayoutWidth = maximumWidthForView
-
14:36 - Horizontal Alignment for Attribution View
// Horizontal Alignment for Attribution View let attributionView = SWAttributionView() attributionView.highlight = self.highlightCenter.highlights[index] attributionView.preferredMaxLayoutWidth = maximumWidthForView attributionView.horizontalAlignment = .leading
-
15:19 - Display Context for Attribution View
// Display Context for Attribution View let attributionView = SWAttributionView() attributionView.highlight = self.highlightCenter.highlights[index] attributionView.preferredMaxLayoutWidth = maximumWidthForView attributionView.horizontalAlignment = .center attributionView.displayContext = .summary
-
17:12 - Add Shared with You Content Menu to your app’s content
// Add Shared with You Content Menu to your app’s content let attributionView = SWAttributionView() attributionView.highlight = self.highlightCenter.highlights[index] attributionView.menuTitleForHideAction = "Remove Item" let contextMenuConfig = UIContextMenuConfiguration(identifier: nil,previewProvider: nil) { [weak self] _ in let additionalMenu = attributionView.supplementalMenu // Append additionalMenu items to your content’s menu items }
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。