追星族看一場演出,要同時追抽選結果、訂機票住宿、算跨幣別花費、記歌單、存拍立得,這些東西散落在票務網站、記帳App、相簿和便利貼裡,演出一結束就散了。

「追追推推」把這些東西收進同一本使用者自己的紀錄本,支援五種語言,已上架 App Store。

寧可少一個功能,也不讓工具替使用者做決定

App收了票券日程、遠征記帳、歌單、圖鑑、相簿、我推六類東西,不做帳號同步,資料只留在使用者手機裡。票券的「當選、落選」狀態拆掉,這種結果不該由工具替使用者定義。廣告只留主頁底部一條橫幅。

退件真正要改的地方,都藏在官方理由的下一層

iPad版面被擠壓時,說明文字跟著消失,「裝置不支援就整段不顯示」的寫法會把合規說明整段藏起來。更貴的錯藏在流程本身:忘記填「行銷網址」這一欄,版本一發佈就鎖死,廣告平台的驗證永久少了一個起點。

不會當機的壞法比當機更可怕,規範也要寫成程式碼

一批高解析度圖檔在原始碼庫裡好好放著,打包成安裝檔卻整批被丟掉,讀不到檔案的畫面元件安靜地不畫任何東西——任何一條「出狀況就悄悄退回正常畫面」的路徑,都是未來的靜默故障。App的視覺語言只有一句話:場景無色,人是唯一被打光的東西,我把它寫成自動補償對比度的函式。

底片濾鏡預設拿相機廠商的機型名當顯示名稱,多數有商標風險。麻煩的是並排效應:單看一個機型名風險很小,同品牌的名字排在同一份清單裡,讀起來就像官方授權系列。改法是把顯示名稱欄位直接拿掉,欄位留著遲早有人把品牌名填回去。

沒有團隊檢查,驗收機制得自己長出來

任務狀態分六個階段,硬規則是:自動檢查全過也只能推進到「待驗」,真正的「完成」要有實機操作過的回報。修好一個問題後,我會把修法改回錯誤的寫法,確認測試真的會轉紅,避免整組測試變成永遠綠燈的假象。我也刻意不加持續整合系統:那類工具擋的是別人寫壞的程式碼,一個人一台機器沒有對象可擋。

App已經上架,但帳本上還留著幾筆沒還的債

1.0.0 已上架,供應174個地區,最低支援iOS 16.4。1.0.1 已送審,唯一目的是補填漏掉的行銷網址。帳上還有幾筆債:內購事件的監聽邏輯還沒提到程式最上層,一張資料表的關聯規則只靠呼叫順序硬撐,最新的內嵌版本還沒人用實機跑過,匯出與備份功能依然不存在。

延伸閱讀