ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
視覚に訴えるリンクの埋め込みと共有
新しいLink Presentationフレームワークを活用すると、Appデベロッパは、美しくて一貫性のある、視覚に訴える方法でリンクを表示させることができます。このセッションでは、Link Presentationを使用してURLからメタデータを取得する方法、App内に魅力的なリンクを設置する方法、リンクのメタデータをiOSの新しいシェアシート体験に提供する方法を紹介します。
リソース
関連ビデオ
Tech Talks
-
ダウンロード
(音楽) Safari WebKitチームの ティム・ホートンです アプリケーション内での リッチリンクの使い方を紹介します
iOS 10とmacOS Sierraでは メッセージにリッチリンクを導入し URLがより美しく便利になりました
そして 最大限に活用するために 一部のリンクに特性を持たせました 例えば Inline Videoや オーディオPlayback― Tweet用の特別な表示など 他には複数の画像や Apple Mapsの リンクなども含まれます
今年のiOS 13とmacOS 10.15は APIが新しくなり アプリケーション内で リッチリンクを表示できます 最小限の作業で 同じ結果が得られます この動画で見ていくのは― レシピのブックマークの 開発の様子です LinkPresentation フレームワークの機能を使い ただのURLのリストを 格子状のリンクに変えていきます
3つのテーマを取り上げます 1つ目は URLの メタデータの表示方法 2つ目は ユーザへの 分かりやすい表示方法 3つ目は フェッチしたメタデータで iOS 13で新しくなった 共有シートの表示を速める方法
まずメタデータを取り込みます
すでに レシピのアプリケーション上で URL取得の仕組みがあるとします テーブル表示も可能ですが 使い勝手が良くありません 見分けも非常に困難です タイトルを付ける方法もありますが もっと簡単にできます
LinkPresentation フレームワークを使うのです LPMetadataProviderクラスを使い Webサイトから メタデータを簡単に取り込めます URLを渡すだけで LPLinkMetadataオブジェクトを 返してくれます メディアのタイトルも含みます
実際に見てみましょう まずは LPMetadataProviderを作成し 対象のURLの startFetchingMetadataを呼びます 完了ハンドラが呼ばれたら エラーを確認しましょう Serverの応答が無いか遅い場合や ネットワークに未接続の場合は フェッチは完了しません 最後はメタデータの使用です 詳細は後ほど
MetadataProviderと LinkMetadataを使う場合 いくつか覚えておくことがあります まず メタデータオブジェクトは タイトル アイコン 画像 動画を 含むことがあります 指定しなければ何も含みません セキュアコーディングでは シリアライズが可能 これが重要なのは LPMetadataProviderが ネット接続するからです 手間も省けます 同じリンクの表示に 通信のコストを 掛けずにも済みます 取得したメタデータは ローカルにキャッシュしましょう また ローカルURLの メタデータの場合 QuickLookThumnalingのAPIで ファイルのサムネイルを 取得できます
では 取得したメタデータの― 配置方法の説明です
分かりやすい例です 先程のオブジェクトに LPLinkViewを作るだけです
とてもシンプルです
レシピのアプリケーションに戻り テーブルに LPLinkViewを加えましょう
いいですね よくみる表示で 一目で各レシピが確認できます LPLinkViewには 本来のサイズがありますが 別のサイズにも変更できます 制限内で最も理想的なサイズに 表示するように処理するのです
最後にお話しするのは iOS 13での共有シートの表示を LinkMetadataを活用して 速める方法です
URLを共有する場合は 共有シートが最も上のリンクの プレビューを表示します そのためには 共有シートが表示された時点で サーバに接続し メタデータを取り込む必要があります タイトルとアイコンの表示が 非同期です もう一度見てみましょう ヘッダに注目してください
すでに URLのLPLinkMetadata オブジェクトがあれば そのまま 共有シートに渡すだけ すぐにプレビューが表示されます UIActivityItemSourceの実装で activityViewController LinkMetadataメソッドを使うと メタデータのオブジェクトが 返ります
違いを見てみましょう 同じテーブルのデータです
良くなりました メッセージをユーザが共有する際も 同じメタデータが渡されます そのため スムーズな処理となります もう一点 タイトルと画像付きの データベースがあり フェッチされていない場合です 共有シートの加速化などのために メタデータの再取得は不要です 代わりに 既存のデータソースから LPLinkMetadataのフィールドを 埋めるだけです LPLinkMetadataの オブジェクトを作成し 元のURLとフィールドを 埋めるだけです あれば追加情報も入力します
重要点3つをもう一度 LPMetadataProviderを使い メタデータをフェッチできます リッチなコンテキストを 提供するためです きれいなリンクの表示には LPLinkViewを使いましょう 共有シートのプレビューを速めるには 既存のLPLinkMetadataを使います 詳細は developer.apple.comにて
ありがとうございました
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。