LikeABossApp

我養罷個,罷個養我

Firebase + GTM for iOS 實做加強型電商追蹤

關於GTM的那些坑與逝去的青春

前言

原本專案一直都是以 GA 來追蹤使用者行為,但最近 GA 發出警告訊息提示追蹤數超過一個月一千萬次的額度(註1),因此決定改用 Google 力推的 Firebase Analytics 取代 GA(註2),但因為我們有額外追蹤加強型電商 (Enhanced e-commerce),這一段的報表在 Firebase console 上是沒有的,所以必須搭配 GTM(Google Tag Manager) 來做為 Firebase 與 GA 之間的橋樑,傳遞資料給 GA。

註1:追蹤額度說明文件:Google Analytics Collection Limits and Quotas

註2:Firebase Analytics 在基本追蹤上是無限制的,但是加強型電商的部分是屬於 Universal Google Analytics,就會有每個用戶一天20萬次的限制。

 

GTM是用來做什麼的?

首先來看官方的解釋: (繼續閱讀…)

[Swift小教室] guard 錯誤守衛

舊有的撰寫風格

在寫objc時我們時常看到這樣的寫法:

這邊很自然的使用if-else來區分成功與失敗兩塊block並各自做處理,不過在使用OClint等程式風格分析工具後,它會建議我們改寫成:

第二種寫法早一步偵測出錯誤,並且在第一時間處理error後,return掉該function不再繼續往下執行,看到這樣的建議撰寫風格讓我不經好奇它有什麼特別之處呢? (繼續閱讀…)

[Swift小教室] 關於inout(copy-in copy-out)

在Swift中,一個function傳入的參數無法直接改變它的值,先看一個例子:

這段程式碼試圖增加1點參數值"value",而complier此時會產生以下error:

會產生這個error是因為,Swift的function中的參數都是以pass-by-value的方式傳遞,也就是在function外部先copy一份再帶進function中,而function中的參數預設都是以常數為型態,所以無法修改。 (繼續閱讀…)

刪除 git 中 features 所有的 branches

開發時常常 branch 越開越多,但其實很多 branch 在 merge 回 develop 裡之後就可以刪掉了,於是查到了這麼一段指令,用來刪除所有 local 與 remote 中 feature 底下所有的 branch,使用前一定要確保還需要用到的 branch 有做備份。

[LeetCode] 645. Set Mismatch

Description

The set  S originally contains numbers from 1 to  n. But unfortunately, due to the data error, one of the numbers in the set got duplicated to another number in the set, which results in repetition of one number and loss of another number.

Given an array  nums representing the data status of this set after the error. Your task is to firstly find the number occurs twice and then find the number that is missing. Return them in the form of an array.

Example 1:

Input: nums = [1,2,2,4]
Output: [2,3]

Note:

  1. The given array size will in the range [2, 10000].
  2. The given array’s numbers won’t have any order.

(繼續閱讀…)

[LeetCode] 1. Two Sum

Description

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

(繼續閱讀…)

Streaks vs. Productive 兩款習慣養成app

 Streaks

頹廢人生中想培養一些好的習慣,曾經用過獲得Apple設計獎推薦的Streaks,

Streaks是一個介面乾淨、簡單易用的習慣追蹤app,新增任務有一些預設的選項,也可以自行輸入自訂的任務內容,

任務日分為「每天」、「每週」或是「每2天」,此外可以設定任務的完成數,用來追蹤一天需要服用數次的藥物或維他命也沒問題,

另外Streaks提供了大量的圖示可以選擇,方便使用者自訂各式情境的任務。 (繼續閱讀…)