Soumettre la recherche
Mettre en ligne
Universal Links対応をした話
•
Télécharger en tant que PPTX, PDF
•
4 j'aime
•
9,075 vues
C
Chiharu Nameki
Suivre
2017/5/24 potatotips #40
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 26
Télécharger maintenant
Recommandé
グラフデータベース入門
グラフデータベース入門
Masaya Dake
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介
briscola-tokyo
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTT DATA OSS Professional Services
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
Amazon Web Services Japan
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
Recommandé
グラフデータベース入門
グラフデータベース入門
Masaya Dake
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介
briscola-tokyo
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTT DATA OSS Professional Services
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
Amazon Web Services Japan
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
yuichiro nakazawa
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync
Amazon Web Services Japan
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
firewood
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
Kongの概要と導入事例
Kongの概要と導入事例
briscola-tokyo
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
Exastro Suite Community
AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Takunori Minamisawa
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Amazon Web Services Japan
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
iOS bust #1
iOS bust #1
Ken Haneda
Contenu connexe
Tendances
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
yuichiro nakazawa
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync
Amazon Web Services Japan
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
firewood
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
Kongの概要と導入事例
Kongの概要と導入事例
briscola-tokyo
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
Exastro Suite Community
AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Takunori Minamisawa
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Amazon Web Services Japan
Tendances
(20)
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
Kongの概要と導入事例
Kongの概要と導入事例
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
AWSで作る分析基盤
AWSで作る分析基盤
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Similaire à Universal Links対応をした話
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
iOS bust #1
iOS bust #1
Ken Haneda
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16
Masami Yabushita
Android以外os(OpenWebAppについて)
Android以外os(OpenWebAppについて)
Wataru Asai
スマートフォンアプリ開発の傾向とBaaSの活用
スマートフォンアプリ開発の傾向とBaaSの活用
大介 秋本
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト
rie05
Universal Link
Universal Link
toyship
20121122 paidcontent kato
20121122 paidcontent kato
一般社団法人メディア事業開発会議
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
LIFULL Co., Ltd.
Firefox OS 1.0 Application Development
Firefox OS 1.0 Application Development
dynamis
Office for iPad Office for iPhone 企業利用における問題点のまとめ
Office for iPad Office for iPhone 企業利用における問題点のまとめ
adachiyosuke
iOSローカライズことはじめ
iOSローカライズことはじめ
俊輔 嶺村
デベロッパー視点での3大スマホの違い
デベロッパー視点での3大スマホの違い
Makoto Kubota
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版
Tomoki Hasegawa
20110824 android apps_tanaka
20110824 android apps_tanaka
一般社団法人メディア事業開発会議
20140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料1
NIFTY Cloud
オープンセミナー2013@広島
オープンセミナー2013@広島
Masahiko Tani
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
feedtailor
モバイル革命到来!世界でもっとも信用されているサービス
モバイル革命到来!世界でもっとも信用されているサービス
株式会社ドーモ
SpeechPlatform with Kinect
SpeechPlatform with Kinect
Yoshinori Hayashi
Similaire à Universal Links対応をした話
(20)
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
iOS bust #1
iOS bust #1
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16
Android以外os(OpenWebAppについて)
Android以外os(OpenWebAppについて)
スマートフォンアプリ開発の傾向とBaaSの活用
スマートフォンアプリ開発の傾向とBaaSの活用
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト
Universal Link
Universal Link
20121122 paidcontent kato
20121122 paidcontent kato
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
Firefox OS 1.0 Application Development
Firefox OS 1.0 Application Development
Office for iPad Office for iPhone 企業利用における問題点のまとめ
Office for iPad Office for iPhone 企業利用における問題点のまとめ
iOSローカライズことはじめ
iOSローカライズことはじめ
デベロッパー視点での3大スマホの違い
デベロッパー視点での3大スマホの違い
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版
20110824 android apps_tanaka
20110824 android apps_tanaka
20140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料1
オープンセミナー2013@広島
オープンセミナー2013@広島
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
モバイル革命到来!世界でもっとも信用されているサービス
モバイル革命到来!世界でもっとも信用されているサービス
SpeechPlatform with Kinect
SpeechPlatform with Kinect
Universal Links対応をした話
1.
Universal Links対応をした話 iOS 10時代のDeep
Link技術 2017/5/24 potatotips #40 @ Retty株式会社 iOS/Android開発Tips共有会 行木 千春
2.
自己紹介 行木 千春(なめき ちはる) 昔
macOS向けアプリ・ミドルウェア開発者 → 今 iOSアプリ開発者 株式会社サイバーエージェント Amebaアプリ担当 アメブロの投稿・閲覧アプリです! 株式会社 nana music 音楽コラボレーションアプリ nana 音声エンジン製作者 音声処理技術が好きです
3.
モチベーション • Universal LinksはiOS
9以降の機能 • iOS 10が普及した今、サービスに導入しやすくなった • 実際に対応して得られた知見(発表当時の情報からのアップデー トなど)をまとめる
4.
おさらい ~ ユーザ視点で見たUniversal Links
~ HTTPまたはHTTPSのリンクをタップした時に ドメインに対応するアプリが起動する
5.
Universal Links経由でアプリが開いた時のステータスバー Safariで表示 (今後もSafariで開くようになる)遷移元アプリに戻る
6.
Safariで表示時に下に引っ張ると アプリで開くためのバーが出現 「開く」を選ぶと再びアプリで開くようになる この手順により、アプリで開くかSafariで開くかはユーザが選択可能 (正直わかりにくい😓)
7.
アプリが起動する条件 • ユーザがSafariで開くことを選択していない • iOS
9以降 • アプリがインストールされている 未インストールの場合、操作中のアプリでそのまま遷移 ストアが立ちあがったりはしない • 同一ドメイン内の遷移ではない 厳密にはスキーマが異なる場合は起動した e.g.) http://hoge.com/ から https://hoge.com/ への遷移
8.
• Entitlement の
Associated Domainsにapplinks:をつけてドメインを記載 e.g. applinks:example.com • Universal Links経由でアプリが開かれた時に呼ばれるメソッドを実装 • 扱えないURLはopen(_:options:completionHandler:)で開き直す アプリが立ちあがった後、さらに別アプリが起動するのでUX上いまいち。 なるべく発生しないようにしたい。 おさらい ~ アプリ側の対応 ~ func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {}
9.
• AASA (apple-app-site-association)
ファイルを配置 • ルートまたは .well-known サブディレクトリ配下に置く • HTTPSで直接アクセスできるようにする HTTPではダメ, リダイレクトもNG • アプリのインストール、またはアップデート時にOSに取得される サーバエラー(500系)の場合、3時間後に再取得 おさらい ~ サーバ側の対応 ~
10.
AASA (apple-app-site-association) ファイル { "applinks":
{ "apps": [], "details": [ { "appID": "XXXXXXXXXX.jp.co.hoge.AppName", "paths": [ "NOT /_*", "*" ] }, { "appID": "YYYYYYYYYY.jp.co.choge.AppName-ota", "paths": [ "NOT /_*", "*" ] } ] } } AppIDのPrefixを指定 昔ながらのアプリでは チームIDと異なるので注意 ←
11.
AASAファイルの記述方法 • detailsもpathも先頭から評価される • マッチしたらそこで評価を終了 •
複数のアプリが記述 & インストールされていたら、先に書かれて いる方が立ち上がる • Pathのマッチングルール • クエリやフラグメントは対象にならない • ? … 任意の1文字 (/もOK) • * … 任意の文字列(0文字でも/が混ざっていても良い) • NOT はiOS 9.2以降 • 最後のスラッシュの有無はマッチングに寄与しなかった 解釈はOSバージョンに依存するので注意してテストする
12.
func open(_ url:
URL, options: [String : Any] = [:], completionHandler completion: ((Bool) -> Void)? = nil) アプリ内からURLをUniversal Linksとして開くには UIApplication の open() メソッドを使う • 外部アプリで開けたかどうかの結果が取得できる • 自分自身の対応ドメインのURLを渡すとSafariが起動する iOS 10以降 iOS 9以前の open(_ : URL) -> Bool と比較すると • 開けるURLのタイプをUniversal Linksのみに限定可 • 非同期になった
13.
open()メソッドを呼ぶと 外部アプリで開く前に 確認ダイアログを出してくれるようになった
14.
「アプリで開く」バー • SafariのUI • 表示はカスタマイズ不可 •
表示される条件 • 対応アプリをインストール済み • 対応ドメインをSafariで開く設定にしている • HTMLにはSmart App Bannerなどの記述は必要ない
15.
推測:iOSが実際に何をしているか • iOS端末上にドメイン -
アプリのマッピング情報が存在 • アプリのインストール/アップデート時にマッピング情報を更新 • URLを開く際、URLのドメインに対応アプリが存在したらアプリ で開く ほぼ端末上の処理で成り立っている機能
16.
iOS 9とiOS 10での挙動の違い iOS
9 最初のリクエストがUniversal Linksのときのみアプリが起動する iOS 10 リダイレクト先がUniversal Linksの場合もアプリが起動する 最初のリクエストとリダイレクト先がどちらもUniversal Linksだった場合、 application(application:continueUserActivity:restorationHandler:) が2回呼び出される リダイレクト時の挙動が異なっていた
17.
テスト方法(運用前) • STGで技術検証 • 本番にAASAファイルを配置してテスト STGのURLはGoogleなどにインデックスされていないため ユーザ体験がどう変わるかの検証には本番を使う必要がある •
AASAファイルにはドメイン依存の情報がないため、STGと本番で 同じファイルを利用可能 • アプリの Associated Domains を環境によって書き換える
18.
テスト方法(運用後) ユーザ体験の検証のために本番のAASAファイルを更新?! … するわけにはいかない プロキシを利用するなどしてルーティングを工夫 📱host 書き換え proxy 本番 IP: xxxxxxx 社内からのみ見える 本番環境
19.
運用上の課題 • 機能を切り戻したり、挙動を変更するには アプリのアップデートが必要 AASAファイルを更新しても、アプリのアップデートのタイミングでしか取得しに来 てくれない • アプリバージョンとAASAファイルの整合性の保ち方 •
リファラなど流入元の情報が取得できないため、SEOの観点で困る
20.
ユーザの反応 • いきなりアプリが開くようになってうざい • 元に戻したいという問い合わせが来た →
操作方法を案内 むやみにアプリが開くのはストレス サービスの価値を本当に高められ ユーザにも納得感のある場所で使わないといけない
21.
Appendix: Custom URL
Scheme is dead? • URLが開けるかどうかを確認する canOpenURL() はiOS 9以降 info.plistにスキーマの記載が必要になった • iOS 8以前は代わりに canOpenURL() の呼び出し回数が50回に制限されていた • 実際にアプリを開く open() メソッドには制限がない • open()メソッドが外部アプリで開く前に確認ダイアログを出してく れるようになった 十分利用可能
22.
カスタムスキーマ最大の問題点 アプリがインストールされていないと Safariで「ページをひらけません」エラーが表示される 公開されているWeb面に使うのは厳しい アプリ間遷移で利用する分には open()メソッドでエラーハンドリングできるので良さそう
23.
所感 便利そうだが制限が多く、使い所が難しい
24.
ご静聴ありがとうございました 🙇
25.
WWDC 2017に参加します できたてのApple Parkに行ってみたい
26.
告知:CyberAgentで前後にイベントを開催します WWDC直前 Pre-WWDC Gathering https://cyberagent.connpass.com/event/55235/ 5/30 19:30~ 渋谷プライムプラザ4F
Creative Lounge WWDC後 CA.swift #3 WWDC 2017 Reporting 6/19
Télécharger maintenant