ios swift & firebase 玩上雲端囉

36
iOS Swift & FireBase 玩玩玩玩

Upload: -

Post on 15-Apr-2017

553 views

Category:

Education


11 download

TRANSCRIPT

Page 1: iOS Swift & FireBase 玩上雲端囉

iOS Swift & FireBase 玩上雲端囉

Page 2: iOS Swift & FireBase 玩上雲端囉

學習主題• 社群成立目的簡介• 自我介紹與哈啦• 功力複習• 程式實作 (Swift)

• 問題與交流

Page 3: iOS Swift & FireBase 玩上雲端囉

個人簡介諸葛魔斌工作室:諸葛魔斌科技創作室學歷:高應大 --- 工管系 ( 非資訊科系 )E-Mail : [email protected]官方網站: http://twcts.comFacebook : https://goo.gl/volM7Z粉絲團 : https://goo.gl/LI08wh社群 : https://goo.gl/kjCsz1Line (id) : http://goo.gl/ayGW7dLine@ : http://goo.gl/pQHjWHLine Bot : http://goo.gl/ljdxfVPlay 商店: http://goo.gl/CkVdsdApp Store : http://apple.co/1Qehd64專長: VB(VBA) 、 C# 、 Java(Android) 、 Swift(iOS) 、 PHP 、 Python 、 Conrona 、 Golang 、 Unity 、 MySQL 、 FreeBSD 、 Server 架設、 CAD 、 ……

楊政斌

Page 4: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBaseFirebase 是什麼?Firebase 是一個同時支援 Android 、 iOS 及網頁的 app 雲端開發平台,協助 app 開發者在雲端快速建置後端服務,提供即時資料庫,有效縮短 app 開發時間,並幫助開發者更專注在前端的優化,這次大幅改版後主要分成一個主要核心以及三大類功能:Firebase 數據分析功能( Firebase Analytics ): 強大的無限量數據分析功能正是 Firebase 的產品核心,目前是全免費使用,有預設的 500 種事件類型,提供無上限的事件記錄,還可以自定義關鍵事件以及使用者屬性,視覺化的的儀表板( Dashboard )讓使用者一眼看到所有最重要的使用者行為和行銷活動的成效分析。

Page 5: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase1.開發 (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 開發者輕鬆獲利。

Page 6: iOS Swift & FireBase 玩上雲端囉

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 雲端通訊傳送的通知時。

Page 7: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase2. 支援原始資料自動匯出如果有巨量的資料處理分析需求, Firebase 有支援 BigQuery 的自動匯出功能 ( Google 雲端資料倉儲分析服務,可讓企業針對 PB 等級的資料執行類似 SQL 的分析查詢),在設定連結後,即可輕鬆存取未取樣的原始事件資料和所有參數及使用者屬性。一旦將 Firebase 應用程式連結到 BigQuery 專案, Firebase 數據分析會每日將事件資料匯出至對應的 BigQuery 資料集。 BigQuery 也可整合其他資料進行分析,像是將外部來源 ,例如顧客終身價值 (LTV) 等資料紀錄的資料加入 Fireba

Page 8: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

3. 可直接行動的分析工具•自訂目標對象( Custom Audiences ): Firebase 讓你可以按裝置、事件 (例如 session_start 或 level_up) 或使用者資源 (例如年齡、性別、語言 ) 來區隔使用者。在應用上可以推播給特定區隔,廣告上可將專案連結至 AdWords 之後,就可以將目標對象清單匯出到 AdWords ,更精準的投遞廣告,也可以和 AdMob 連結後,在 AdMob 中使用 Firebase 數據分析資料。

Page 9: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase•推播訊息( notification ):不再一定需要工程師, PM 和 行銷人員也可以學會使用 Firebase ,輕鬆設定傳送訊息與指定時間給指定目標對象或全部使用者,吸引使用者回訪應用程式、有效推廣行銷廣告活動,系統傳送訊息後,指定的用戶端裝置如果在背景執行該應用程式,就會在系統通知匣中收到通知。使用者點擊通知後,應用程式啟動器就會開啟應用程式。在自訂轉換追蹤後,也能輕鬆追蹤每一次推播的成效。

Page 10: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase•A/B Testing : Firebase 有強大的遠端設定( Remote Config )的功能可以讓使用者無須更新 APP 就可以看到新的 app 內容或外觀,開發者還可以設定只顯示更新給特定的目標對象,或甚至是隨機挑選一定比例的使用者,幫忙開發者更容易進行準確的 A/B 測試。

•動態連結 (Dynamic Links): Firebase 動態連結是應用程式中的深層連結( deep links )的進一步應用,動態連結可以設定使用者在不同 device 環境下開啟連結後觸發不同的動作, 開啟未安裝的應用程式中的動態連結,畫面上就會開啟該應用程式的 Play 商店網頁,方便使用者安裝應用程式,使用者安裝並開啟應用程式後,應用程式就會顯示深層連結抵達的內容,讓使用者體驗不中斷,因此可以針對不同行銷活動,不同目標族群設計客製化的抵達頁面,大幅提升新使用者體驗。在歸屬上,也能使用不同的動態連結,清楚掌握不同行銷渠道的成效。

Page 11: iOS Swift & FireBase 玩上雲端囉

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 仍不失為是有力的行動數據分析解決方案。

Page 12: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

https://console.firebase.google.com

Page 13: iOS Swift & FireBase 玩上雲端囉

輸入專案名稱

Swift 玩 FireBase

選擇台灣

Page 14: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

點選 Database

Page 15: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

Database 所在網址

建立欄位和資料

Page 16: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

建立新的空白專案

專案識別 (名稱 )

Page 17: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

開啟終端機,進到專案資料夾執行 pod init ,建立 Podfile 文件編輯 Podfile 文件

Keyin 輸入後存檔

Page 18: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

建立 FireBase SDK

使用開啟 xcworkspace 檔案

Page 19: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

使用開啟 xcworkspace 檔案

Page 20: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

點選專案設定

Page 21: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

點選 iOS

Page 22: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

輸入專案識別 (名稱 )

Page 23: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

下載連結設定檔

Page 24: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

將連結設定檔拉 ( 複製 )到專案底下

Page 25: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

建立連結設定

要打勾

Page 26: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

建立連結設定

Page 27: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

Import Firebase

設定 Firebase 配置

Page 28: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

佈局配置TextFieldButtonLabel

Page 29: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

建立簡單欄位和資料

Page 30: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

開放讀寫權限

Page 31: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

撰寫程式碼

Import Firebase

物件宣告寫入 FireBase

讀取 FireBase

讀取 FireBase

Page 32: iOS Swift & FireBase 玩上雲端囉

import UIKitimport Firebase

class ViewController: 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

物件宣告

Page 33: iOS Swift & 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

設定讀取欄位

顯示資料

顯示資料

Page 34: iOS Swift & FireBase 玩上雲端囉

結論: 1. 安裝 Ruby 、 cocoapods 、 FireBase

2. 使用 Google 帳號登入 FireBase

3. 安裝 FireBase SDK ,注意 Podfile 設定

6. 學習階段,務必一字一字『抄』,切勿『複製貼上』7. 大膽嘗試,好奇無罪8. 不怕失敗,學習除錯9. 勇於分享

4. 安裝連結設定檔 ( 專案識別名稱一致 )

5. 程式欄位對應

Swift 玩 FireBase

Page 35: iOS Swift & FireBase 玩上雲端囉

Swift 玩 FireBase

Page 36: iOS 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 元 (珍惜學習資源 )