Pages

Wednesday, November 21, 2012

Google Analytics SDK for iOS v2 (Beta)

最近在留意 Google Analytics SDK 版本更新時候,發現它的 2.0 Beta 已經 Release 了,當回到官方網站找相關技術文章,也有了新的文件說明。

Google Analytics SDK 要讓開發人員可以更容易的從他們的 App 上收集使用者互動參與的數據。透過 2.0 Beta 可以追蹤到:

  • 多少活躍的使用戶。
  • 在世界上哪些地方有在使用。
  • 追蹤觀察特定的 Features。
  • 付費與交易的追蹤。
  • App 的 Crash 現象。
  • 以及更多有用維度分析。

但是開始前要注意到準備事項:

  1. 要使用 iOS 4.0 以上 
  2. GA Mobile Apps iOS SDK v2
  3. 一個想要追蹤的 iOS App
  4. 一個全新的 Google Analytics 的 App property 及 Profile。而我也是沒注意到這段而發生了資料送到異次元的狀況,後來找了文件才發現。

值得注意比較過去 1.0 和現在 2.0 的差異:

全新的 App profiles reports 介面

這邊不再是使用過去 Web 收集的版面,而是專門 Mobile 的分析圖表介面,所以包含了一系列相關的數據收集分析表。當然也只有支援 GA SDK 2.0 以上。

Exception tracking

GA SDK 開始追蹤錯誤,使用這項可以收集 crashes 和些非導致毀壞的錯誤立外資訊。

而在開發者要注意是,過去使用 trackPageview: 變成 trackView:,關於電子商務交易現在獨立出來做統計。過去用 Custom variables 收集在 2.0 被取消掉,不再支援。所以如果有進階額外資訊要收集,就用別的更新的 method 來取代。

對於 Google Analytics 想要了解更多,可以參考我的其它相關 Tag GA 整理文章。

GA beta - App Overview

Flurry Analytics 為我們提供更好閱讀的使用數據

Flurry - Create A New App

Flurry 平台統計服務 提供了一套簡易上手、容易閱讀的統計分析工具,只要將我們的 App 裝設 Flurry SDK,即可收集使用者的整體使用數據,作為些分析與改善使用,而當好奇 Flurry 這套 Analytics 要不要收費以及他們家獲利收費方式,在 Quora 找得到這樣的討論 How does Flurry make money? 而 Flurry 的 CTO Sean Byrnes 為大家解答。主要是靠 AppCircle 和 AppSpot,而 Flurry Analytics 還是依舊免費。

Flurry Analytics 可以幫我們收集與分析很多有用的數據

1. Usage

有多少新的使用者、多少活躍使用者、說少使用的次數、使用的時間長度、使用密集度、追蹤使用者安裝後的還使用的情況、使用者回流數、使用該 App 版本紀錄、逛 App 頁數與次數統計。

2. Audience

了解年齡分佈、姓別、地理位置、語言

3. Events

Event 記錄總表、使用者使用事件的路徑圖、Funnels 漏斗分析、收集到 Event 的 Logs 記錄表。

4. Technical

使用者的裝置統計、電信業者、裝置作業系統版本號統計。

以上藉由 Client 端行動裝置 ,裝載著對應的 SDK 工具,即可將數據收集回來平台上,讓我們對於使用情形作後續改版參考依據。

Tuesday, November 20, 2012

Build Static Library in Xcode 4

Cocoa Touch Static Library

寫程式總是一直提醒自己要 DRY - Don't Repeat Yourself,上從 Class Name 到 Method Name 到寫程式的邏輯都要謹記在心。因為當重複撰寫一樣的邏輯,在維護上就會變成做重複事情,一來浪費自己的時間,二來如果自己疏忽會造成忘記要修改,三來也會造成一起開發夥伴的困擾。

伴隨著 Project 的開發,會發現有些程式是可以模組化,讓它獨立出來變成單一 Xcode Project,除了維持它核心功能外,還能產生 Static Library 讓需要用到它的 Project 可以引用。如此一來 Static LIbrary 也可以重複使用在更多更多的 Project 上。


在 Xcode 的 Project Template 可以輕鬆完成這樣的設定,
將整個 Project 包裝起來成為 *.a 檔案,如此搭配釋放出的 Header Files,Client 端只要看懂 Header Files 不用知道實做細節,也就可以使用。操作步驟:
  • 選擇 Cocoa Touch Static Library。
  • 在 Build Phases 加入 Copy Headers 步驟,將要 Release 的 Header Files 挑選出來,放置在 Public 區塊。 
  • 回到 Build Settings 找到 Packing > Public Headers Folder Path,這邊是告知在包裝時候會將 Headers Files 放置位置。 
  • 因為 Xcode project 建置好的位置路徑很深,如果每次路徑要走那麼遠取用檔案也很不方便,於是在 Build Phases 可以加入 Run Script,在裡面撰寫將檔案取出來放置在桌面上的 Scripts。


當以上設定完畢,程式碼撰寫完,跑 Build & Run 就可以將整個 Project 的程式包裝產生 Static Library 了。

Xcode Pro Tip Setting - Treat Warnings as Errors

Treat Warnings as Errors

寫 iOS App 為了不要產生討人厭又不好沒用的程式碼,像是當在撰寫 Code 時候,Xcode 就可以即時產生 warnings。當大家一起在寫程式時候,我們不希望在當 Xcode 跑編譯時候產生一堆 warnings 列在那邊一直在警告與嚇著似乎有潛在問題存在。

小撇步:在 Build Settings > Other Linker Flags 加入 -Weverything,在 Build Settings > Treat Warnings as Errors 設定為 Yes。

能得知這方法是我的夥伴跟我分享 nshipster.com 的 Inhibiting Warnings 學到的。現在有在寫的 Xcode Project 我都會啓動這樣的設定了。如此在每次 Xcode 編譯就會把警告顯示出來,直到修正好才能過關。