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.8k
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
AtCoder Conference 2025
shindannin
0
1.1k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
CSC307 Lecture 03
javiergs
PRO
1
490
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
210
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.5k
AgentCoreとHuman in the Loop
har1101
5
230
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.8k
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
106
230k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Visualization
eitanlees
150
17k
GitHub's CSS Performance
jonrohan
1032
470k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
30 Presentation Tips
portentint
PRO
1
210
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
79
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 ΞφϦςΟΫεͰΫϦοΫͳͲܭଌՄೳ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠