# はじめに
スライドの QR -> Twitter のプロフィールページに飛べる
本トークのスライドをつぶやいている
手元の環境で見たい方はチェック
# iOS Engineer@Sansan
# キーボード
ものを作ることが好きで最近は自作キーボード沼にはまっている
右下の画像はリモートワーク用とプライベート用のキーボード
# After iOSDC Japan 2020
9/29 19:00~
Sansan(株)、note(株)、(株)ZOZOテクノロジーズの3社による合同イベント
Firebase In-App Messaging
オンラインでの開催 -> 気軽に参加
# スライドの動画
QR コードを読み取り、アプリへ遷移する
左側はアプリがすでにインストール済みの場合
右側はアプリが未インストールの場合
# 表の説明
上から
Availability - どの iOS バージョンから利用可能か
Vulnerability - 脆弱性
Limitation - 制限
# Custom URL Scheme
## iOS 2.0+
古くからアプリ内のコンテンツへのリンクを用意するために利用されてきた
## Hijacking
問題として複数のアプリで同じ Custom URL Scheme を定義できたため、ハイジャックが可能であること
Apple は iOS 11 から Custom URL Scheme で起動するアプリを先にインストールしたアプリに制限することで対処しましたが、利用の仕方によっては攻撃者から悪用されるため注意が必要
# Universal Links
## iOS 9.0+
Custom URL Scheme に変わる技術として登場した
起動確認ダイアログを表示せずにシームレスに起動したり、アプリ未インストール時にリンク先の URL をブラウザで表示できるようになったりとユーザー体験の面で大きく改善した
## Safety
HTTPS サーバーに設定ファイルを置き、アプリにも HTTPS サーバーのドメインを紐付けるため、ハイジャックは難しくなり、安全に利用できる。
## Limitation
ただし、制限として「同一ドメイン上での URL 遷移の場合、アプリを開けない」
Apple はユーザーの意図を尊重するためと説明していますが、プロダクト提供者からすると、 Web の体験よりネイティブアプリの体験の方が良い場合にとても困る。
# Firebase Dynamic Links
## iOS 8.0+
他の2つの類似技術と比べた際のメリットは次のスライドで説明します。
## Open-Redirect
不正なユーザーがあなたが管理しているドメインから管理外のサイトへリダイレクトするような Dynamic Link を作成することで Open-Redirect 脆弱性を突くことができます。
ドキュメントではホワイトリストを設定することで防御することを推奨しています。
PC で Dynamic Link へアクセスがあった場合は Dynamic Link に設定されたディープリンクの URL を開くことが出来ます
# Custom URL Scheme
ページが開けませんダイアログが表示される
# Universal Links
設定した URL しか開けない
# Frebase Dynamic Links
アプリの App Store ページに
飛ばす
別の Web ページに飛ばすことも可能
# 何が嬉しいか
リンクからどの割合のユーザがアプリインストールに遷移して、体験が中断されたかが分かったり
再起動数を見ることでそのリンクが日常的に利用されているか分かる
↓
どの部分の体験を改善していったら良いか判断軸に利用できます
私が1から設定を行ってみた手順になるため、実際に導入をする際にスライドを見ながら、導入してもらえると嬉しいです。
今回はトークの都合上、早回しでお送りします。
補足: Firebase コンソールで設定するで実施した URL 接頭辞がこちらで追加するドメインになります。
補足: Firebase Dynamic Links は類似技術である Universal Links や Custom URL Sceheme を利用している技術のため、それぞれの delegate にてハンドリングをします。
記載のメソッドを利用して、アプリがインストールされている場合にユニバーサルリンクとして受信されるダイナミックリンクをハンドリングします。
記載のメソッドを利用して、アプリの Custom URL Scheme を通して受信したダイナミックリンクをハンドリングします。
挙げたのは iOS に関わるパラメーターだけで Android についてのパラメーターももちろんありますし、 Firebase コンソール上で設定できるものはすべて利用可能です。
# スライドの動画
Sansan のオンライン名刺の受け取りの体験の動画です。
Sansanに登録をタップすると、アプリがインストール済みの場合、アプリで受け取りが完了します。
# スライドの動画
アプリが未インストール、または、必要なバージョンを満たしていない場合は Web で受け取りが完了しています。
# まとめ
Firebase Dynamic Links を利用することで、最小限の変更で多くのことを実現できました。
これらを上手く活用することでアプリの既存ユーザーだけでなく、潜在的なユーザーへもアプローチが容易になると思います。