Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
CSC509 Lecture 14
javiergs
PRO
0
220
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
1
970
認証・認可の基本を学ぼう前編
kouyuume
0
190
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.4k
CSC305 Lecture 17
javiergs
PRO
0
340
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
220
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
110
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
120
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
5
2k
Cell-Based Architecture
larchanjo
0
100
Microservices rules: What good looks like
cer
PRO
0
1.1k
Featured
See All Featured
How GitHub (no longer) Works
holman
316
140k
Embracing the Ebb and Flow
colly
88
4.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How to train your dragon (web standard)
notwaldorf
97
6.4k
A designer walks into a library…
pauljervisheath
210
24k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.2k
Code Reviewing Like a Champion
maltzj
527
40k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
YesSQL, Process and Tooling at Scale
rocio
174
15k
It's Worth the Effort
3n
187
29k
We Have a Design System, Now What?
morganepeng
54
7.9k
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 ΞφϦςΟΫεͰΫϦοΫͳͲܭଌՄೳ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠