$30 off During Our Annual Pro Sale. View Details »

DynamicLinks 知られざる?Firebaseの秘技

nacatl
November 15, 2018

DynamicLinks 知られざる?Firebaseの秘技

nacatl

November 15, 2018
Tweet

More Decks by nacatl

Other Decks in Programming

Transcript

  1. Copyright 2018 Studyplus, Inc. All Rights Reserved.
    Dynamic Links
    ~知られざる?Firebaseの秘技~
    Yuzuru Nakashima / Studyplus Inc.
    2018.11.15 @ potatotips #56

    View Slide

  2. 自己紹介
    ✎ なかてぃる
    affinity_robots
    nacatl
    ✎ スタディプラスのAndroidエンジニア
    ✎ 趣味: Magic the Gathering

    View Slide

  3. 目次
    ✎ DynamicLinksって何?
    ✎ 何ができるの?
    ✎ どうやって作るの?
    ✎ 使い方は?

    View Slide

  4. DynamicLinksって何?
    What is this?

    View Slide

  5. DynamicLinksって何?
    Firebaseが提供しているサービスの一つ。
    簡単に言えば
    アプリに対する
    すごーい!
    リダイレクトリンク
    です。

    View Slide

  6. 何ができるの?
    What can it do?

    View Slide

  7. 何ができるの?
    Android or iOS or PC(その他)
    で場合分けして、リダイレクトさせられる

    View Slide

  8. 何ができるの?
    アプリのインストール有無を判定でき、
    ストアからのインストールを挟んでも
    ディープリンクを判定できる!!
    - インストール済み→ディープリンク起動
    - 未インストール→ストア(か任意URL)に遷移

    View Slide

  9. どうやって作るの?
    How do I create it?

    View Slide

  10. どうやって作るの?
    原型。パラメータをクエリで突っ込む
    https://{Firebaseプロジェクトの固有ドメイン}.app.goo.gl
    ?link={https://で始まるリンク。アプリのディープリンクはここを見る}
    &dfl={デスクトップ用フォールバックリンク}
    &apn={Androidアプリのパッケージ名}
    &afl={Android用フォールバックリンク(ストアの代わりの割り込み先)}
    &amv={Android用の、リンクを開ける最小のバージョンコード}
    &isi={iOSアプリのストアID}
    &ibi={iOSアプリのバンドルID}
    &ius={iOS用のカスタムスキーム}
    &ifl={iOS用フォールバックリンク}
    &imv={iOS用の、リンクを開ける最小のバージョンコード}
    ... あとiPad用とか広告用とか

    View Slide

  11. どうやって作るの?
    短縮APIに投げる
    POST
    https://firebasedynamiclinks.googleap
    is.com/v1/shortLinks?key={api_key}
    Content-Type: application/json

    View Slide

  12. どうやって作るの?
    {
    "dynamicLinkInfo": {
    "dynamicLinkDomain": "abc123.app.goo.gl",
    "link": "https://example.com/",
    "androidInfo": {
    {
    "androidPackageName": "com.example.android"
    }
    },
    "iosInfo": {
    {
    "iosBundleId": "com.example.ios"
    }
    }
    }
    }
    Jsonの中身: パラメータ別に

    View Slide

  13. どうやって作るの?
    Jsonの中身: 長いのそのまま
    {
    "longDynamicLink":
    "https://abc123.app.goo.gl/?link=https://example.com/&apn=com
    .example.android&ibi=com.example.ios"
    }

    View Slide

  14. どうやって作るの?
    FirebaseConsoleのウィザード

    View Slide

  15. どうやって作るの?
    クエリにd=1でデバッグ

    View Slide

  16. 使い方は?
    How to use?

    View Slide

  17. ✎ https://{Firebaseプロジェクトの固有ドメイン}で
    起動できるようにしておく
    - (iOS→ユニバーサルリンク、スキーム起動)
    - (Android→Intent Filterでスキーム起動)
    ✎ ディープリンク起動時にDynamicLinksの確

    ✎ DynamicLinksからディープリンクを
    取得して処理
    使い方は?

    View Slide

  18. 作ったリンクは…
    ✎ 例えばSNSにシェアしてみたり
    ✎ 物理的にQRカード作って配ったり
    ✎ リンクごとにAnalyticsも取れる
    使い方は?

    View Slide

  19. 複数のプラットフォームにまたがるアプリに、
    共通のリンクで何かを共有させたい時に
    すごく有用だと思う。

    View Slide

  20. ご静聴ありがとうございました

    View Slide