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
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
440
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
610
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.5k
Reading Rails 1.0 Source Code
okuramasafumi
0
250
概念モデル→論理モデルで気をつけていること
sunnyone
3
290
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
270
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
2.4k
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
170
AIコーディングAgentとの向き合い方
eycjur
0
280
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
110
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
22
5.8k
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
310
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Being A Developer After 40
akosma
90
590k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Making Projects Easy
brettharned
117
6.4k
For a Future-Friendly Web
brad_frost
180
9.9k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Into the Great Unknown - MozCon
thekraken
40
2k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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 ΞφϦςΟΫεͰΫϦοΫͳͲܭଌՄೳ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠