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
Introducing Firebase Analytics to an Existing Project
Search
Sho Ikeda
June 22, 2016
Programming
0
450
Introducing Firebase Analytics to an Existing Project
関西モバイルアプリ研究会 #15での発表資料です #関モバ
Sho Ikeda
June 22, 2016
Tweet
Share
More Decks by Sho Ikeda
See All by Sho Ikeda
Open Source Swift Workshop - Foundation and first party libraries
ikesyo
0
1.4k
Renovateで実現するライブラリの自動更新生活 / Automated Library Updates with Renovate
ikesyo
3
460
XcodeのDevelopment Assets探訪
ikesyo
1
800
RenovateによるiOSライブラリーの自動更新
ikesyo
2
3.2k
2019年のSwiftモック事情
ikesyo
3
7.6k
5分でわかる!Xcode 11から使えるXCFrameworks
ikesyo
2
3.4k
Travis CIのBuild Matrixを活用して、Swift製ライブラリをLinux対応させる
ikesyo
3
2.3k
Swift Packages and XCFrameworks in Xcode 11
ikesyo
1
1.1k
How to Mock Protocols in Swift
ikesyo
1
2.8k
Other Decks in Programming
See All in Programming
ruby.wasm 最前線 2024 - wasmでMockServerをつくる #rubykaigi
lnit
2
430
PandasAI:生成AIがデータ分析業務にもたらすパラダイムシフト
negi111111
4
210
Goでのチーム開発に途中参画した私が納得して実装を進めるためにやったこと ~ 命名編 ~
kaorumuta
0
150
DroidKnights 2024 : Compose Material3 커스텀 디자인 시스템 구축기
kwondae
0
220
"統合ERP"とアプリケーションアーキテクチャ
keitatomozawa
0
440
Modular Monolith + Go @ newmo
110y
0
350
いまどきの分析設計パターン10選
masuda220
PRO
13
2.5k
Pure GoでアニメーションGIFのリサイズを実装する
logica0419
0
230
ゼロからつくる 2D物理シミュレーション ~物理現象をコードに落とし込む方法~
infiniteloop_inc
0
110
俺の PHP プロファイラの話 PHP スクリプトで PHP 処理系のメモリをのぞき込む
infiniteloop_inc
0
100
エンジニア向け 株式会社バックテック 会社紹介資料 / for Engineers
backtech
1
250
Crafting Elegant Symfony Tests
kbond
1
200
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
227
17k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.7k
Learning to Love Humans: Emotional Interface Design
aarron
269
39k
StorybookのUI Testing Handbookを読んだ
zakiyama
14
4.8k
RailsConf 2023
tenderlove
11
630
Code Reviewing Like a Champion
maltzj
516
39k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
10
1.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
Testing 201, or: Great Expectations
jmmastey
32
6.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Building Adaptive Systems
keathley
33
2k
Faster Mobile Websites
deanohume
300
30k
Transcript
Introducing Firebase Analytics to an Existing Project @ikesyo ؔϞόΠϧΞϓϦݚڀձ #15,
2016-06-22 Wed #ؔϞό
@ikesyo • ͍͚͠ΐʔʗా ᠳ • ͯͳ@ژ • https://twitter.com/ikesyo • https://github.com/ikesyo
✨ Contributions ✨ • ReactiveCocoa • Carthage (Commandant, ReactiveTask) •
Result • Himotoki • 2.1.0 is released today with Swift 2.3/Xcode 8 compatibility ✨ • APIKit
Firebase
Products • Analytics • Auth • Database • Hosting •
Remote Config • Test Lab • Crash • Notifications • Dynamic Links • AdMob • ...
Firebase Analytics with Google TagManager
Getting Started • Get Started with Firebase Analytics for iOS
| Firebase • Tag Manager + Firebase: Getting Started | Google Tag Manager for iOS | Google Developers
Firebase Analytics • GoogleTagManager v5 FirebaseAnalytics ʹґଘ͢ΔΑ ͏ʹ import FirebaseAnalytics
... // Previously: // TAGManager.instance().dataLayer.push(["event": "eventName", "foo": "bar"]) // This sends the event to Google TagManager too. FIRAnalytics.logEventWithName("eventName", parameters: ["foor": "bar"])
Google TagManagerͷηοτΞοϓ
Google TagManagerͷηοτΞοϓ • ৽͍͠ίϯςφͷ༻ҙ • طଘͷίϯςφʢैདྷ൛ʣFirebaseͰ͑ͳ͍ • λάɺτϦΨʔɺมΛ࠶Ճ • ैདྷ൛ίϯςφͰΤΫεϙʔτͨ͠JSONϑΝΠϧFirebase൛ίϯςφͰΠϯϙʔτ
Ͱ͖ͳ͍ • ઃఆϑΝΠϧͷஔ͖͑ • όΠφϦ͔ΒJSONʹϑΥʔϚοτ͕มߋ • λʔήοτʹcontainerͱ͍͏folder referenceΛՃ͠ɺͦͷϑΥϧμԼʹJSON ϑΝΠϧΛઃஔ
Firebase AnalyticsͷηοτΞοϓ
Firebase AnalyticsͷηοτΞοϓ • https://console.firebase.google.com ͔Β • “৽نϓϩδΣΫτΛ࡞” • “GoogleϓϩδΣΫτΛΠϯϙʔτ” •
Google Sign-InΛར༻͍ͯ͠ΔϓϩδΣΫτͰ͋ΕޙऀΛબͿ • طଘͷOAuth 2.0 ΫϥΠΞϯτIDΛҾ͖ܧ͛Δ • ΫϥΠΞϯτIDʹొࡁΈͷόϯυϧIDͰFirebaseϓϩδΣΫτʹࣗಈతʹϞόΠϧΞϓϦ͕Ճ͞Ε Δ • ಉҰΞϓϦͷAndroid൛͕͋Εɺ༧ΊΫϥΠΞϯτIDΛҠͯ͠GoogleϓϩδΣΫτΛ1ͭʹ·ͱΊ͓ͯ ͘ͷΛ͓͢͢Ί • Firebaseίϯιʔϧͷ֘ϞόΠϧΞϓϦ͔ΒGoogleService-Info.plistΛμϯϩʔυ͠ɺϓϩδΣΫτ ʹՃʢطଘϑΝΠϧͷஔ͖͑ʣ
Firebase AnalyticsͷηοτΞοϓ // AppDelegate.swift import UIKit import FirebaseAnalytics class AppDelegate:
UIResponder, UIApplicationDelegate { func application(application: UIApplication, didFinishLaunchingWithOptions... { // No more TAGContainerOpener.openContainerWithId( // _:tagManager:openType:timeout:notifier: // ) FIRApp.configure() return true } }
Within App Extensions • ॳظԽϙΠϯτ: ΤϯτϦʔϙΠϯτͷVCͷviewDidLoad() • ෳճͷExtensionͷىಈͰಉҰϓϩηε͕༻͞Ε͏ΔͨΊ FIRApp.configure()Λෳճݺͳ͍Α͏ʹҙ͢Δ •
Today Extension: ϝϞϦෆͰFIRApp.configure()ΛݺͿ͚ͩͰΫϥογϡ͢Δ ! func viewDidLoad() { super.viewDidLoad() if FIRApp.defaultApp() == nil { FIRApp.configure() } }
!" Happy Firebase!! "!
Thank you❗"