SlideShare a Scribd company logo
1 of 36
iOS Swift & FireBase 玩上雲端囉
學習主題
• 社群成立目的簡介
• 自我介紹與哈啦
• 功力複習
• 程式實作(Swift)
• 問題與交流
個人簡介
諸葛魔斌
工作室:諸葛魔斌科技創作室
學歷:高應大---工管系(非資訊科系)
E-Mail:chugermobin@gmail.com
官方網站:http://twcts.com
Facebook:https://goo.gl/volM7Z
粉絲團 :https://goo.gl/LI08wh
社群 :https://goo.gl/kjCsz1
Line (id) :http://goo.gl/ayGW7d
Line@ :http://goo.gl/pQHjWH
Line Bot :http://goo.gl/ljdxfV
Play商店:http://goo.gl/CkVdsd
App Store:http://apple.co/1Qehd64
專長:VB(VBA)、C#、Java(Android)、Swift(iOS)、PHP、Python、Conrona、
Golang、Unity、MySQL、FreeBSD、Server架設、CAD 、 ……
楊政斌
Swift 玩 FireBase
Firebase 是什麼?
Firebase 是一個同時支援 Android、iOS 及網頁的 app 雲端開發平台,協助 app 開發者在雲端快速
建置後端服務,提供即時資料庫,有效縮短 app開發時間,並幫助開發者更專注在前端的優化,這
次大幅改版後主要分成一個主要核心以及三大類功能:
Firebase 數據分析功能(Firebase Analytics): 強大的無限量數據分析功能正是 Firebase 的產
品核心,目前是全免費使用,有預設的 500 種事件類型,提供無上限的事件記錄,還可以自定義關
鍵事件以及使用者屬性,視覺化的的儀表板(Dashboard)讓使用者一眼看到所有最重要的使用者
行為和行銷活動的成效分析。
Swift 玩 FireBase
1.開發 (Develop):使用 Firebase 打造高品質的 app,安全且高效能,提供的後端服務包含即時資料庫
(Realtime database)、簡單的身分驗證模組(Authentication)、雲端訊息(Cloud Messaging)、主機
(Hosting)、檔案儲存(Storage)、及遠端配置(Remote Config),並提供 Android 測試實驗室(Test Lab
for Android)以及當機報告(Crash Reporting)等讓開發者可以輕鬆測試 app 在不同的 OS 與硬體裝置下的表現,
快速發現問題並確保 app 運行品質。
2.成長(Grow):Firebase 讓開發者可以輕鬆設定訊息推播系統 (notifications)、app 索引功能(App
Indexing)、動態連結(Dynamic Links)、email 及 sms 邀請功能(Invites)、以及與 Google AdWords 的深度
整合串接 app 行為資料,讓 app 開發者能提供更精準的廣告或溝通訊息給對的目標族群。
3.獲利(Earn):與自家產品 AdMob 整合,加入廣告聯播網,輕鬆放入廣告版位,以及多元化的廣告格式,以及
更清楚的追蹤機制,幫助 app開發者輕鬆獲利。
Swift 玩 FireBase
1. 事件紀錄無上限
這當然是對資源有限的初期開發者最重要的事,特別是如果你的使用者數量不斷成長卻預算有限,不
像 Flurry 有事件記錄的限制(300 Events for each app),Firebase 有 500 種預設的事件類型,而且
記錄總量無上限,還有只要使用 Firebase SDK,無需編寫額外的程式碼即可自動收集的事件例如:
•First_open :使用者初次開啟應用程式時
•In_app_purchase:當使用者透過 iTunes 的 App Store 或 Google Play 完成應用程式內購時。產品
ID、產品名稱、幣別和購買數量會回傳到系統做為參數。
•App_update:當應用程式更新為新版本並再次啟動時。應用程式前一版的版本 ID 會回傳到系統做為
參數。
•App_remove(僅限 Android):當應用程式套件移除或從 Android 裝置中「解除安裝」時
•os_update:當裝置的作業系統更新為新版本時。前一個作業系統的版本 ID 會回傳到系統做為參數。
•App_exception : 當應用程式當機或擲回例外狀況時。
•notification_open:當使用者開啟 Firebase 雲端通訊傳送的通知時。
Swift 玩 FireBase
2. 支援原始資料自動匯出
如果有巨量的資料處理分析需求, Firebase 有支援 BigQuery 的自動匯出功能 (Google雲端資
料倉儲分析服務,可讓企業針對PB等級的資料執行類似 SQL 的分析查詢),在設定連結後,即
可輕鬆存取未取樣的原始事件資料和所有參數及使用者屬性。
一旦將 Firebase 應用程式連結到 BigQuery 專案,Firebase 數據分析會每日將事件資料匯出至對
應的 BigQuery 資料集。 BigQuery 也可整合其他資料進行分析,像是將外部來源 ,例如顧客終
身價值 (LTV) 等資料紀錄的資料加入 Fireba
Swift 玩 FireBase
3. 可直接行動的分析工具
•自訂目標對象(Custom Audiences):Firebase 讓你可以按裝置、事件 (例如 session_start 或 level_up)
或使用者資源 (例如年齡、性別、語言) 來區隔使用者。在應用上可以推播給特定區隔,廣告上可將專案連
結至 AdWords 之後,就可以將目標對象清單匯出到 AdWords,更精準的投遞廣告,也可以和 AdMob 連結
後,在AdMob 中使用 Firebase 數據分析資料。
Swift 玩 FireBase
•推播訊息(notification):不再一定需要工程師,PM 和 行銷人員也可以學會使用 Firebase ,輕鬆設定傳送
訊息與指定時間給指定目標對象或全部使用者,吸引使用者回訪應用程式、有效推廣行銷廣告活動,系統傳送
訊息後,指定的用戶端裝置如果在背景執行該應用程式,就會在系統通知匣中收到通知。使用者點擊通知後,
應用程式啟動器就會開啟應用程式。在自訂轉換追蹤後,也能輕鬆追蹤每一次推播的成效。
Swift 玩 FireBase
•A/B Testing:Firebase 有強大的遠端設定(Remote Config)的功能可以讓使用者無須更新 APP 就可以看到新
的 app 內容或外觀,開發者還可以設定只顯示更新給特定的目標對象,或甚至是隨機挑選一定比例的使用者,幫
忙開發者更容易進行準確的 A/B 測試。
•動態連結 (Dynamic Links):Firebase 動態連結是應用程式中的深層連結(deep links)的進一步應用,動態連
結可以設定使用者在不同 device 環境下開啟連結後觸發不同的動作, 開啟未安裝的應用程式中的動態連結,畫
面上就會開啟該應用程式的 Play 商店網頁,方便使用者安裝應用程式,使用者安裝並開啟應用程式後,應用程
式就會顯示深層連結抵達的內容,讓使用者體驗不中斷,因此可以針對不同行銷活動,不同目標族群設計客製化
的抵達頁面,大幅提升新使用者體驗。在歸屬上,也能使用不同的動態連結,清楚掌握不同行銷渠道的成效。
Swift 玩 FireBase
可能有很多朋友會問,同樣都是 Google 自己的分析產品,那老牌的 Google Analytics 不是也可以做 APP 的分析
嗎?關於產品的定位和未來發展, Google 自己在官方部落格說的很清楚了:「Firebase 分析功能現在是
Google 官方推薦針對行動分析工具的解決方案!」(Firebase Analytics is now Google’s recommended
solution for mobile app analytics.)也建議大家如果同時有網站就使用 GA 做網站分析,Firebase Analytics 做
APP 分析。
雖然由於產品仍然相當新,再加上免費無限的框架下,有很多功能還不盡完善,像是在儀表板缺乏時間的屬性來
做進一步的篩選與分析,也沒辦法輸出成 CSV 自己做分析,需要透過 BigQuery,還有 iOS 要等 24 小時才會有
數據等等,但是相信對於資源缺乏的新創公司在考慮免費分析工具的選擇上,又兼具後端開發的功能,Firebase
仍不失為是有力的行動數據分析解決方案。
Swift 玩 FireBase
https://console.firebase.google.com
輸入專案名稱
Swift 玩 FireBase
選擇台灣
Swift 玩 FireBase
點選 Database
Swift 玩 FireBase
Database 所在網址
建立欄位和資料
Swift 玩 FireBase
建立新的空白專案
專案識別(名稱)
Swift 玩 FireBase
開啟終端機,進到專案資料夾
執行 pod init,建立 Podfile 文件
編輯 Podfile 文件
Keyin 輸入後存檔
Swift 玩 FireBase
建立 FireBase SDK
使用開啟 xcworkspace 檔案
Swift 玩 FireBase
使用開啟 xcworkspace 檔案
Swift 玩 FireBase
點選專案設定
Swift 玩 FireBase
點選 iOS
Swift 玩 FireBase
輸入專案識別(名稱)
Swift 玩 FireBase
下載連結設定檔
Swift 玩 FireBase
將連結設定檔拉(複製)
到專案底下
Swift 玩 FireBase
建立連結設定
要打勾
Swift 玩 FireBase
建立連結設定
Swift 玩 FireBase
Import Firebase
設定 Firebase 配置
Swift 玩 FireBase
佈局配置
TextField
Button
Label
Swift 玩 FireBase
建立簡單欄位和資料
Swift 玩 FireBase
開放讀寫權限
Swift 玩 FireBase
撰寫程式碼
Import Firebase
物件宣告
寫入 FireBase
讀取 FireBase
讀取 FireBase
import UIKit
import Firebase
classViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var labetFirebase: UILabel!
let rootRef = FIRDatabase.database().reference()
var snap: FIRDataSnapshot!
@IBAction func theButton(sender: UIButton) {
let s = textField.text
_ = rootRef.child("condition").setValue(s)
//let conditionRef = rootRef.child("condition")
//conditionRef.setValue(s)
}
Swift 玩 FireBase
寫入 FireBase
(兩種作法)
連結 FireBase
物件宣告
override func viewDidLoad() {
super.viewDidLoad()
let conditionRef = rootRef.child("condition")
// Do any additional setup after loading the view, typically from a nib.
conditionRef.observeEventType(.Value, withBlock: {
snap in self.labetFirebase.text = snap.value?.description
})
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let conditionRef = rootRef.child("condition")
conditionRef.observeEventType(.Value) { snap in print("FireBase: (snap.value?.description)")
}
}
}
Swift 玩 FireBase
設定讀取欄位
顯示資料
顯示資料
結論: 1. 安裝 Ruby、cocoapods、FireBase
2. 使用 Google 帳號登入 FireBase
3. 安裝 FireBase SDK,注意 Podfile 設定
6. 學習階段,務必一字一字『抄』,切勿『複製貼上』
7. 大膽嘗試,好奇無罪
8. 不怕失敗,學習除錯
9. 勇於分享
4. 安裝連結設定檔(專案識別名稱一致)
5. 程式欄位對應
Swift 玩 FireBase
Swift 玩 FireBase
第八、九、十次聚會學習課程
Android Strudio & FireBase 玩上雲端囉
iOS Swift / Android Strudio & FCM玩推播服務
學習不能中斷,卡關不要氣餒,
讓我們的熱血繼續揮撒在程式的樂趣吧!!
帶著你的筆電,和我們一起享受Coding Fun
註:我們學習的是多系統,所以筆電最好是Macbook哦!
日期:9/21(星期三) 18:30~21:30 FireBase 玩上雲端囉
10/5、19(星期三) 18:30~21:30 FCM 玩推播服務
地點:高雄市前鎮區一心二路157號10樓之4(微盛科技)
捷運三多商圈站4號出口,步行約10分鐘
歡迎踴躍報名,也歡迎高手協助指導
費用:0元(珍惜學習資源)

More Related Content

Viewers also liked

Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Jsm2013,598,sweitzer,randomization metrics,v2,aug08Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Dennis Sweitzer
 

Viewers also liked (20)

Python 入門初體驗
Python 入門初體驗Python 入門初體驗
Python 入門初體驗
 
iOS Swift & OCR 玩文字辨識
iOS Swift & OCR 玩文字辨識iOS Swift & OCR 玩文字辨識
iOS Swift & OCR 玩文字辨識
 
iOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open dataiOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open data
 
Swift - the future of iOS app development
Swift - the future of iOS app developmentSwift - the future of iOS app development
Swift - the future of iOS app development
 
iOSMumbai Meetup Keynote
iOSMumbai Meetup KeynoteiOSMumbai Meetup Keynote
iOSMumbai Meetup Keynote
 
The Swift Programming Language with iOS App
The Swift Programming Language with iOS AppThe Swift Programming Language with iOS App
The Swift Programming Language with iOS App
 
Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Jsm2013,598,sweitzer,randomization metrics,v2,aug08Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Jsm2013,598,sweitzer,randomization metrics,v2,aug08
 
Medidata Customer Only Event - Global Symposium Highlights
Medidata Customer Only Event - Global Symposium HighlightsMedidata Customer Only Event - Global Symposium Highlights
Medidata Customer Only Event - Global Symposium Highlights
 
Tools, Frameworks, & Swift for iOS
Tools, Frameworks, & Swift for iOSTools, Frameworks, & Swift for iOS
Tools, Frameworks, & Swift for iOS
 
Medidata AMUG Meeting / Presentation 2013
Medidata AMUG Meeting / Presentation 2013Medidata AMUG Meeting / Presentation 2013
Medidata AMUG Meeting / Presentation 2013
 
Medidata Rave Coder
Medidata Rave CoderMedidata Rave Coder
Medidata Rave Coder
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
 
Beginning iOS Development with Swift
Beginning iOS Development with SwiftBeginning iOS Development with Swift
Beginning iOS Development with Swift
 
Swift Tutorial Part 2. The complete guide for Swift programming language
Swift Tutorial Part 2. The complete guide for Swift programming languageSwift Tutorial Part 2. The complete guide for Swift programming language
Swift Tutorial Part 2. The complete guide for Swift programming language
 
Distributing information on iOS
Distributing information on iOSDistributing information on iOS
Distributing information on iOS
 
Advanced Core Data
Advanced Core DataAdvanced Core Data
Advanced Core Data
 
Developing iOS apps with Swift
Developing iOS apps with SwiftDeveloping iOS apps with Swift
Developing iOS apps with Swift
 
How to create edit checks in medidata rave painlessly
How to create edit checks in medidata rave painlesslyHow to create edit checks in medidata rave painlessly
How to create edit checks in medidata rave painlessly
 
Swift Tutorial Part 1. The Complete Guide For Swift Programming Language
Swift Tutorial Part 1. The Complete Guide For Swift Programming LanguageSwift Tutorial Part 1. The Complete Guide For Swift Programming Language
Swift Tutorial Part 1. The Complete Guide For Swift Programming Language
 
SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料
 

Similar to iOS Swift & FireBase 玩上雲端囉

Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
Wei Sun
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
Wei Sun
 
天鹅绒围脖
天鹅绒围脖天鹅绒围脖
天鹅绒围脖
Liu Chao
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
Wei Sun
 
《氪周刊:互联网创业必读》(第58期).pdf
《氪周刊:互联网创业必读》(第58期).pdf《氪周刊:互联网创业必读》(第58期).pdf
《氪周刊:互联网创业必读》(第58期).pdf
Chada Chiu
 
HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型
Tom Fan
 
IDF2013大会分享——《使用新浪移动云开发全平台应用》
IDF2013大会分享——《使用新浪移动云开发全平台应用》IDF2013大会分享——《使用新浪移动云开发全平台应用》
IDF2013大会分享——《使用新浪移动云开发全平台应用》
easychen
 
玩遍Google - 作好個人知識管理
玩遍Google - 作好個人知識管理玩遍Google - 作好個人知識管理
玩遍Google - 作好個人知識管理
Hui-kang Tang
 
Android快速发布&持续集成
Android快速发布&持续集成Android快速发布&持续集成
Android快速发布&持续集成
whykill
 

Similar to iOS Swift & FireBase 玩上雲端囉 (20)

Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
构建网络工具箱
构建网络工具箱构建网络工具箱
构建网络工具箱
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
 
天鹅绒围脖
天鹅绒围脖天鹅绒围脖
天鹅绒围脖
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
 
使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心
 
人工智慧的使用體驗 AI時代的UI與創新
人工智慧的使用體驗 AI時代的UI與創新人工智慧的使用體驗 AI時代的UI與創新
人工智慧的使用體驗 AI時代的UI與創新
 
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
 
《氪周刊:互联网创业必读》(第58期).pdf
《氪周刊:互联网创业必读》(第58期).pdf《氪周刊:互联网创业必读》(第58期).pdf
《氪周刊:互联网创业必读》(第58期).pdf
 
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0
 
HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型
 
北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdf北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdf
 
KSDG BaaS Intro
KSDG BaaS IntroKSDG BaaS Intro
KSDG BaaS Intro
 
IDF2013大会分享——《使用新浪移动云开发全平台应用》
IDF2013大会分享——《使用新浪移动云开发全平台应用》IDF2013大会分享——《使用新浪移动云开发全平台应用》
IDF2013大会分享——《使用新浪移动云开发全平台应用》
 
玩遍Google - 作好個人知識管理
玩遍Google - 作好個人知識管理玩遍Google - 作好個人知識管理
玩遍Google - 作好個人知識管理
 
20171024 文化大學 2 big data ai
20171024 文化大學 2 big data ai20171024 文化大學 2 big data ai
20171024 文化大學 2 big data ai
 
20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite
 
Jason 專案經驗 (20170725)
Jason 專案經驗 (20170725)Jason 專案經驗 (20170725)
Jason 專案經驗 (20170725)
 
Android快速发布&持续集成
Android快速发布&持续集成Android快速发布&持续集成
Android快速发布&持续集成
 
mobiusDesign 梅比斯數位行銷工作室 作品集
mobiusDesign  梅比斯數位行銷工作室  作品集mobiusDesign  梅比斯數位行銷工作室  作品集
mobiusDesign 梅比斯數位行銷工作室 作品集
 

More from 政斌 楊

More from 政斌 楊 (12)

iOS swift 玩 soket 聊天通訊程式
iOS swift 玩 soket 聊天通訊程式iOS swift 玩 soket 聊天通訊程式
iOS swift 玩 soket 聊天通訊程式
 
深入學習 iBeacon 之 iOS swift 程式設計
深入學習 iBeacon 之 iOS swift 程式設計深入學習 iBeacon 之 iOS swift 程式設計
深入學習 iBeacon 之 iOS swift 程式設計
 
Android Studio & Cloud Vision API 玩圖像辨識
Android Studio & Cloud Vision API 玩圖像辨識Android Studio & Cloud Vision API 玩圖像辨識
Android Studio & Cloud Vision API 玩圖像辨識
 
iOS swift & Cloud Vision API 玩圖像辨識
iOS swift & Cloud Vision API 玩圖像辨識iOS swift & Cloud Vision API 玩圖像辨識
iOS swift & Cloud Vision API 玩圖像辨識
 
Android studio 之 i beacon 藍芽應用開發學習
Android studio 之 i beacon 藍芽應用開發學習Android studio 之 i beacon 藍芽應用開發學習
Android studio 之 i beacon 藍芽應用開發學習
 
Python vs json 玩open data
Python vs json 玩open dataPython vs json 玩open data
Python vs json 玩open data
 
iOS swift 之 iBeacon 藍芽應用開發學習
iOS swift 之 iBeacon 藍芽應用開發學習iOS swift 之 iBeacon 藍芽應用開發學習
iOS swift 之 iBeacon 藍芽應用開發學習
 
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具
Corona 初探 lua 語言,玩跨平台(iOS &  android) 行動裝置開發工具Corona 初探 lua 語言,玩跨平台(iOS &  android) 行動裝置開發工具
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具
 
Golang 入門初體驗
Golang 入門初體驗Golang 入門初體驗
Golang 入門初體驗
 
Android studio 2.2 初體驗 & 玩 face book sdk
Android studio 2.2 初體驗 & 玩 face book sdkAndroid studio 2.2 初體驗 & 玩 face book sdk
Android studio 2.2 初體驗 & 玩 face book sdk
 
Python 入門初體驗(程式語法)
Python 入門初體驗(程式語法)Python 入門初體驗(程式語法)
Python 入門初體驗(程式語法)
 
再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計
 

Recently uploaded

10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
PUAXINYEEMoe
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
michaelell902
 

Recently uploaded (6)

taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdftaibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
 
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdftaibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
 
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
 
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
 
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
 

iOS Swift & FireBase 玩上雲端囉

  • 1. iOS Swift & FireBase 玩上雲端囉
  • 2. 學習主題 • 社群成立目的簡介 • 自我介紹與哈啦 • 功力複習 • 程式實作(Swift) • 問題與交流
  • 3. 個人簡介 諸葛魔斌 工作室:諸葛魔斌科技創作室 學歷:高應大---工管系(非資訊科系) E-Mail:chugermobin@gmail.com 官方網站:http://twcts.com Facebook:https://goo.gl/volM7Z 粉絲團 :https://goo.gl/LI08wh 社群 :https://goo.gl/kjCsz1 Line (id) :http://goo.gl/ayGW7d Line@ :http://goo.gl/pQHjWH Line Bot :http://goo.gl/ljdxfV Play商店:http://goo.gl/CkVdsd App Store:http://apple.co/1Qehd64 專長:VB(VBA)、C#、Java(Android)、Swift(iOS)、PHP、Python、Conrona、 Golang、Unity、MySQL、FreeBSD、Server架設、CAD 、 …… 楊政斌
  • 4. Swift 玩 FireBase Firebase 是什麼? Firebase 是一個同時支援 Android、iOS 及網頁的 app 雲端開發平台,協助 app 開發者在雲端快速 建置後端服務,提供即時資料庫,有效縮短 app開發時間,並幫助開發者更專注在前端的優化,這 次大幅改版後主要分成一個主要核心以及三大類功能: Firebase 數據分析功能(Firebase Analytics): 強大的無限量數據分析功能正是 Firebase 的產 品核心,目前是全免費使用,有預設的 500 種事件類型,提供無上限的事件記錄,還可以自定義關 鍵事件以及使用者屬性,視覺化的的儀表板(Dashboard)讓使用者一眼看到所有最重要的使用者 行為和行銷活動的成效分析。
  • 5. Swift 玩 FireBase 1.開發 (Develop):使用 Firebase 打造高品質的 app,安全且高效能,提供的後端服務包含即時資料庫 (Realtime database)、簡單的身分驗證模組(Authentication)、雲端訊息(Cloud Messaging)、主機 (Hosting)、檔案儲存(Storage)、及遠端配置(Remote Config),並提供 Android 測試實驗室(Test Lab for Android)以及當機報告(Crash Reporting)等讓開發者可以輕鬆測試 app 在不同的 OS 與硬體裝置下的表現, 快速發現問題並確保 app 運行品質。 2.成長(Grow):Firebase 讓開發者可以輕鬆設定訊息推播系統 (notifications)、app 索引功能(App Indexing)、動態連結(Dynamic Links)、email 及 sms 邀請功能(Invites)、以及與 Google AdWords 的深度 整合串接 app 行為資料,讓 app 開發者能提供更精準的廣告或溝通訊息給對的目標族群。 3.獲利(Earn):與自家產品 AdMob 整合,加入廣告聯播網,輕鬆放入廣告版位,以及多元化的廣告格式,以及 更清楚的追蹤機制,幫助 app開發者輕鬆獲利。
  • 6. Swift 玩 FireBase 1. 事件紀錄無上限 這當然是對資源有限的初期開發者最重要的事,特別是如果你的使用者數量不斷成長卻預算有限,不 像 Flurry 有事件記錄的限制(300 Events for each app),Firebase 有 500 種預設的事件類型,而且 記錄總量無上限,還有只要使用 Firebase SDK,無需編寫額外的程式碼即可自動收集的事件例如: •First_open :使用者初次開啟應用程式時 •In_app_purchase:當使用者透過 iTunes 的 App Store 或 Google Play 完成應用程式內購時。產品 ID、產品名稱、幣別和購買數量會回傳到系統做為參數。 •App_update:當應用程式更新為新版本並再次啟動時。應用程式前一版的版本 ID 會回傳到系統做為 參數。 •App_remove(僅限 Android):當應用程式套件移除或從 Android 裝置中「解除安裝」時 •os_update:當裝置的作業系統更新為新版本時。前一個作業系統的版本 ID 會回傳到系統做為參數。 •App_exception : 當應用程式當機或擲回例外狀況時。 •notification_open:當使用者開啟 Firebase 雲端通訊傳送的通知時。
  • 7. Swift 玩 FireBase 2. 支援原始資料自動匯出 如果有巨量的資料處理分析需求, Firebase 有支援 BigQuery 的自動匯出功能 (Google雲端資 料倉儲分析服務,可讓企業針對PB等級的資料執行類似 SQL 的分析查詢),在設定連結後,即 可輕鬆存取未取樣的原始事件資料和所有參數及使用者屬性。 一旦將 Firebase 應用程式連結到 BigQuery 專案,Firebase 數據分析會每日將事件資料匯出至對 應的 BigQuery 資料集。 BigQuery 也可整合其他資料進行分析,像是將外部來源 ,例如顧客終 身價值 (LTV) 等資料紀錄的資料加入 Fireba
  • 8. Swift 玩 FireBase 3. 可直接行動的分析工具 •自訂目標對象(Custom Audiences):Firebase 讓你可以按裝置、事件 (例如 session_start 或 level_up) 或使用者資源 (例如年齡、性別、語言) 來區隔使用者。在應用上可以推播給特定區隔,廣告上可將專案連 結至 AdWords 之後,就可以將目標對象清單匯出到 AdWords,更精準的投遞廣告,也可以和 AdMob 連結 後,在AdMob 中使用 Firebase 數據分析資料。
  • 9. Swift 玩 FireBase •推播訊息(notification):不再一定需要工程師,PM 和 行銷人員也可以學會使用 Firebase ,輕鬆設定傳送 訊息與指定時間給指定目標對象或全部使用者,吸引使用者回訪應用程式、有效推廣行銷廣告活動,系統傳送 訊息後,指定的用戶端裝置如果在背景執行該應用程式,就會在系統通知匣中收到通知。使用者點擊通知後, 應用程式啟動器就會開啟應用程式。在自訂轉換追蹤後,也能輕鬆追蹤每一次推播的成效。
  • 10. Swift 玩 FireBase •A/B Testing:Firebase 有強大的遠端設定(Remote Config)的功能可以讓使用者無須更新 APP 就可以看到新 的 app 內容或外觀,開發者還可以設定只顯示更新給特定的目標對象,或甚至是隨機挑選一定比例的使用者,幫 忙開發者更容易進行準確的 A/B 測試。 •動態連結 (Dynamic Links):Firebase 動態連結是應用程式中的深層連結(deep links)的進一步應用,動態連 結可以設定使用者在不同 device 環境下開啟連結後觸發不同的動作, 開啟未安裝的應用程式中的動態連結,畫 面上就會開啟該應用程式的 Play 商店網頁,方便使用者安裝應用程式,使用者安裝並開啟應用程式後,應用程 式就會顯示深層連結抵達的內容,讓使用者體驗不中斷,因此可以針對不同行銷活動,不同目標族群設計客製化 的抵達頁面,大幅提升新使用者體驗。在歸屬上,也能使用不同的動態連結,清楚掌握不同行銷渠道的成效。
  • 11. Swift 玩 FireBase 可能有很多朋友會問,同樣都是 Google 自己的分析產品,那老牌的 Google Analytics 不是也可以做 APP 的分析 嗎?關於產品的定位和未來發展, Google 自己在官方部落格說的很清楚了:「Firebase 分析功能現在是 Google 官方推薦針對行動分析工具的解決方案!」(Firebase Analytics is now Google’s recommended solution for mobile app analytics.)也建議大家如果同時有網站就使用 GA 做網站分析,Firebase Analytics 做 APP 分析。 雖然由於產品仍然相當新,再加上免費無限的框架下,有很多功能還不盡完善,像是在儀表板缺乏時間的屬性來 做進一步的篩選與分析,也沒辦法輸出成 CSV 自己做分析,需要透過 BigQuery,還有 iOS 要等 24 小時才會有 數據等等,但是相信對於資源缺乏的新創公司在考慮免費分析工具的選擇上,又兼具後端開發的功能,Firebase 仍不失為是有力的行動數據分析解決方案。
  • 15. Swift 玩 FireBase Database 所在網址 建立欄位和資料
  • 17. Swift 玩 FireBase 開啟終端機,進到專案資料夾 執行 pod init,建立 Podfile 文件 編輯 Podfile 文件 Keyin 輸入後存檔
  • 18. Swift 玩 FireBase 建立 FireBase SDK 使用開啟 xcworkspace 檔案
  • 19. Swift 玩 FireBase 使用開啟 xcworkspace 檔案
  • 27. Swift 玩 FireBase Import Firebase 設定 Firebase 配置
  • 31. Swift 玩 FireBase 撰寫程式碼 Import Firebase 物件宣告 寫入 FireBase 讀取 FireBase 讀取 FireBase
  • 32. import UIKit import Firebase classViewController: UIViewController { @IBOutlet weak var textField: UITextField! @IBOutlet weak var labetFirebase: UILabel! let rootRef = FIRDatabase.database().reference() var snap: FIRDataSnapshot! @IBAction func theButton(sender: UIButton) { let s = textField.text _ = rootRef.child("condition").setValue(s) //let conditionRef = rootRef.child("condition") //conditionRef.setValue(s) } Swift 玩 FireBase 寫入 FireBase (兩種作法) 連結 FireBase 物件宣告
  • 33. override func viewDidLoad() { super.viewDidLoad() let conditionRef = rootRef.child("condition") // Do any additional setup after loading the view, typically from a nib. conditionRef.observeEventType(.Value, withBlock: { snap in self.labetFirebase.text = snap.value?.description }) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) let conditionRef = rootRef.child("condition") conditionRef.observeEventType(.Value) { snap in print("FireBase: (snap.value?.description)") } } } Swift 玩 FireBase 設定讀取欄位 顯示資料 顯示資料
  • 34. 結論: 1. 安裝 Ruby、cocoapods、FireBase 2. 使用 Google 帳號登入 FireBase 3. 安裝 FireBase SDK,注意 Podfile 設定 6. 學習階段,務必一字一字『抄』,切勿『複製貼上』 7. 大膽嘗試,好奇無罪 8. 不怕失敗,學習除錯 9. 勇於分享 4. 安裝連結設定檔(專案識別名稱一致) 5. 程式欄位對應 Swift 玩 FireBase
  • 36. 第八、九、十次聚會學習課程 Android Strudio & FireBase 玩上雲端囉 iOS Swift / Android Strudio & FCM玩推播服務 學習不能中斷,卡關不要氣餒, 讓我們的熱血繼續揮撒在程式的樂趣吧!! 帶著你的筆電,和我們一起享受Coding Fun 註:我們學習的是多系統,所以筆電最好是Macbook哦! 日期:9/21(星期三) 18:30~21:30 FireBase 玩上雲端囉 10/5、19(星期三) 18:30~21:30 FCM 玩推播服務 地點:高雄市前鎮區一心二路157號10樓之4(微盛科技) 捷運三多商圈站4號出口,步行約10分鐘 歡迎踴躍報名,也歡迎高手協助指導 費用:0元(珍惜學習資源)