Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Firebase Dynamic Linksって何?
Search
naoki yamamoto
April 16, 2019
Programming
2
5.7k
Firebase Dynamic Linksって何?
Firebase Dynamic Linksの概要とAndroidでの実装
naoki yamamoto
April 16, 2019
Tweet
Share
More Decks by naoki yamamoto
See All by naoki yamamoto
FirebaseMLKit入門.pdf
mos1210
0
1.7k
Other Decks in Programming
See All in Programming
DataformでPythonする / dataform-de-python
snhryt
0
110
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
3
310
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
250
JetBrainsのAI機能の紹介 #jjug
yusuke
0
160
構文解析器入門
ydah
7
1.9k
Quality Gates in the Age of Agentic Coding
helmedeiros
PRO
1
110
中級グラフィックス入門~効率的なメッシュレット描画~
projectasura
3
2k
AWS Summit Japan 2024と2025の比較/はじめてのKiro、今あなたは岐路に立つ
satoshi256kbyte
1
260
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
230
Comparing decimals in Swift Testing
417_72ki
0
130
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
8
1.1k
What's new in AppKit on macOS 26
1024jp
0
180
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1031
460k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
The Cult of Friendly URLs
andyhume
79
6.5k
Adopting Sorbet at Scale
ufuk
77
9.5k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Navigating Team Friction
lara
188
15k
Designing for Performance
lara
610
69k
Git: the NoSQL Database
bkeepers
PRO
431
65k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Practical Orchestrator
shlominoach
190
11k
Transcript
'JSFCBTF%ZOBNJD-JOLTͬͯԿʁ 'JSFCBTFษڧձJOେࡕºԭೄ ݄ !NPT
ࢁຊঘل ·ͱͳ͓͖ ʙ8FCΞϓϦ։ൃ ʙ"OESPJEΞϓϦ։ൃ ཎՏෑެԂʹͯ !NPT ࣗݾհ
ΞδΣϯμ 'JSFCBTF%ZOBNJD-JOLTͱ ࣮ํ๏ ·ͱΊ
'JSFCBTF%ZOBNJD-JOLTͱ
μΠφϛοΫͳϦϯΫʁ
ϓϥοτϑΥʔϜɾΞϓϦͷΠϯετʔϧঢ় گʹԠͯ͡࠷దͳৼΔ͍Λ͢ΔϦϯΫ μΠφϛοΫಈత
IUUQTGPPCBBQBHFMJOLHJGU@B PC ϒϥβ Android ΞϓϦ iPhone ϒϥβ ʮ1$ͱJ04ϒϥβͰ։͘ʯʮ"OESPJEΞ ϓϦͰ։͘ʯͱ͍͏Α͏ʹৼΔ͍Λࢦఆͯ͠ μΠφϛοΫϦϯΫΛ࡞Δ͜ͱ͕Ͱ͖Δ
ྉۚ: ແྉ
ϦϯΫΛ։͘ ະΠϯετʔϧͷ߹ΞϓϦετΞ ΞϓϦ ΞϓϦͰϦϯΫΛղੳ͠ɺ ҙͷಈ࡞Λͤ͞Δ Ϣʔβʔ Πϯετʔϧࡁ? Yes No
ᶃΞϓϦ͕ະΠϯετʔϧ࣌ΞϓϦετΞ ᶄΠϯετʔϧޙʹϦϯΫใ͕ҡ࣋͞ΕΔ ͷͰɺ͍͖ͳΓը໘ΛදࣔͰ͖Δ ͷϑϥϫʔΪϑτ IUUQTGPPCBBQBHFMJOLHJGU@B INSTALL ᶃ ᶄ ΧʔτʹೖΕΔ ۩ମྫ
ΞϓϦ ϒϥβ4/4ͳͲ
Dynamic Links ༻ྫ Firebase Dynamic LinksͷϢʔεέʔε • ΣϒϢʔβʔΛΞϓϦϢʔβʔʹ͢Δ ΞϓϦΠϯετʔϧޙʹΣϒͰද͍ࣔͯͨ͠ը໘ʹରԠ͢ΔΞϓϦͷը໘ ͕දࣔͰ͖Δ
• SNSɺϝʔϧɺSMSͰͷΩϟϯϖʔϯ • ϢʔβʔؒͰͷڞ༗ ΞϓϦʹϢʔβʔΛট͢Δ ϢʔβʔʹΑΔհʹใुΛ༩͢Δ • ύιίϯϢʔβʔΛΞϓϦϢʔβʔʹ͢Δ • ࣮ੈքͰͷΞϓϦͷએ QRίʔυEddystoneϏʔίϯΛ༻ͯ͠ΠϕϯτձͰΞϓϦΛએ
࣮ํ๏ "OESPJEͰͬͯΈͨ
ׂѪ w 'JSFCBTFΞΧϯτͷ࡞ w 'JSFCBTFͷίϯιʔϧͰͷϓϩδΣΫτ࡞
'JSFCBTFͱ%ZOBNJD-JOLT4%,Λઃఆ͢Δ μΠφϛοΫϦϯΫΛ࡞͢Δ ΞϓϦͰμΠφϛοΫϦϯΫΛॲཧ͢Δ ࣮खॱ
'JSFCBTFͱ%ZOBNJD-JOLT4%,Λઃఆ͢Δ μΠφϛοΫϦϯΫΛ࡞͢Δ ΞϓϦͰμΠφϛοΫϦϯΫΛॲཧ͢Δ
w 'JSFCBTFʹΞϓϦใΛొ w ઃఆϑΝΠϧΛμϯϩʔυͯ͠ΞϓϦʹஔ w ΞϓϦʹ'JSFCBTF4%,ΛՃ લఏ݅ɿΞϓϦΛ࡞͓ͬͯ͘ 'JSFCBTFొͱ4%,ઃఆ
None
None
None
implementation 'com.android.support:support-v4:28.0.0' αϙʔταΠϒϥϦͷόʔδϣϯڝ߹Λղܾ͢ΔͨΊҎԼه͕ඞཁ
εΩοϓͯ͠OKɻΞϓϦΛىಈ͠ ͯ1΄ͲͭͱҎԼը໘
'JSFCBTFͱ%ZOBNJD-JOLT4%,Λઃఆ͢Δ μΠφϛοΫϦϯΫΛ࡞͢Δ ΞϓϦͰμΠφϛοΫϦϯΫΛॲཧ͢Δ
w 'JSFCBTFίϯιʔϧ w J04 "OESPJEͷ%ZOBNJD-JOL#VJMEFS"1* w 3&45"1* w खಈͰ63-Λ࡞Δ %ZOBNJD-JOLTͷ࡞ํ๏
None
googleఏڙͷυϝΠϯ༻࣌ mos1210ͷ෦ઃఆՄೳ
None
None
ॳظϥϯμϜɹઃఆՄೳ
PCϒϥβͰ։͘߹ͷURL σΟʔϓϦϯΫͷҰཡʹදࣔ͞ΕΔ
None
None
None
͜ͷஈ֊Ͱ"OESPJEͰ্ه63-Λୟ͚ΞϓϦετΞʹભҠ ΞφϦςΟΫεɺ͘Β͍ͯө͞ΕΔ
None
'JSFCBTFͱ%ZOBNJD-JOLT4%,Λઃఆ͢Δ μΠφϛοΫϦϯΫΛ࡞͢Δ ΞϓϦͰμΠφϛοΫϦϯΫΛॲཧ͢Δ
w J04 w "OESPJE w $ w 6OJUZ %ZOBNJD-JOLTͷड৴ํ๏
ΞϓϦ: build.gradle AndroidManifest.xml implementation 'com.google.firebase:firebase-dynamic-links:16.1.8' ϥϯνϟʔΞΫςΟϏςΟͰμΠφϛοΫϦϯΫΛड৴͢Δ߹ෆཁ <activity android:name=".MainActivity"> <intent-filter> <action
android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="classmethod.connpass.com" android:scheme=“https" android:pathPrefix="/event"/> </intent-filter> </activity>
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) FirebaseDynamicLinks.getInstance() .getDynamicLink(intent) .addOnSuccessListener(this)
{ pendingDynamicLinkData -> val deepLink: Uri? = pendingDynamicLinkData?.link if (deepLink != null) { if (deepLink.path == "/event/124390/") { txt.text = "େࡕΠϕϯτͩΑʔʂ" } else if (deepLink.path == "/event/124317/") { txt.text = "ԭೄΠϕϯτͩΑʔʂ" } } else { txt.text = "௨ৗىಈͩΑʔʂ" } } .addOnFailureListener(this) { e -> Log.w(TAG, "Failure", e) } } MainActivity.kt
σϞ
·ͱΊ
w ͭͷϦϯΫͰ༷ʑͳϓϥοτϑΥʔϜʹରԠͰ͖Δ w ΠϯετʔϧޙʹϦϯΫΛղੳͯ͠ҙͷಈ࡞͕Մೳ w ΞφϦςΟΫεͰΫϦοΫͳͲܭଌՄೳ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠