我用行動裝置記帳已經超過15年了。紀錄的第一筆是2002年9月18日,一直到現在已經有超過兩萬筆以上的紀錄 (還不包括2002-2007年的現金交易記錄,當年為了軟體速度被我匯整成一筆)。對我而言,從一個記帳軟體跳到另一個,除了要考慮軟體好不好用,美不美觀,功能順不順手,最重要的,是資料能不能搬過去,雖然說許多紀錄本身是瑣碎沒有價值的 (例如某年某月某天中午的便當花了多少錢),但是一旦統計分析後,價值就出來了 (例如過去十年來,每個月晚餐便當的平均單價)。另外透過記帳,人生中許多重要的時刻,會藉由記帳的方式留下足跡,在愈來愈少寫blog的年代,在為了保護隱私不常打卡的年代,透過記帳這個方式,往往可以讓自己回顧,喔某年某月我的生活樣態,我的生活中有什麼大事,為了家庭成員到底付出了什麼。
我一開始使用的記帳軟體,是當年還在Palm年代時,所使用的PMTxl。 2005 年後轉到Adarian Money (AM),當時還寫了個小工具PMTexporter,把資料從PMTxl轉到 AM上。這個小工具一直維護到Palm 消失的年代才下架。現在手邊好像也找不到當初的source code了,連自己的SVN都已經移除。
再後來是2010年9月,我的行動裝置從Palm 轉換成 iPhone 4。iOS上的PocketMoney (PM) 開始進入我的生活。資料當初是先轉出成QIF,再匯入PM,所以可以無痛地把資料從 Palm 上的AM 轉移到 iOS上的Pocket Money (PM)。 PM 這一用就用了10年,從2010年用到2020年。十年來,iPhone的設計界面和風格不知道翻了幾翻,而PM這個軟體,維持著當年的樣貌,界面不美,也不簡潔,就做好一件事:記帳,用複式記帳法的方式記帳,一筆一筆地記。兩萬筆的記錄,就這樣一筆一筆地記出來了。
然而,危機慢慢浮現。
Pocket Money 的原作者,Hardy Macia,一個具有熱情的開發者,於2013/5/13離開這個世界,留下PM這個孤兒。這個跟一人公司差不多的軟體工作室 Catamount 跟 PM 都一起停留在靜止的時光中,沒有bug fix,沒有新 iOS發表後的rebuild,只在工作室當年架設的討論區中有著零零散散的討論。2016年,Catamount工作室 和 PM 的source code被Hardy的遺孀賣給了其他的「投資人」。我們這些使用者燃起了一絲絲希望,不一定要有新功能, 但是只要可以繼續維護軟體本身的穩定性,不要閃退,就先滿足了八成的需求。到了2017年,Pocket Money又再次被轉手,這一次的轉手,造就了現在的災難。
最新的「老闆」Guiseppe 是一個「很有自己想法」的人,他心裡有著一個不能跟我們講怎麼做,但是他覺得可以發大財的計畫。PM在他的口中,是要搭配未來的重寫(re-write),達成發大財計畫的一個工具。但Guiseppe 不是一個程式人,PM的維護和改造,需要另外的人。Giuseppe最常做的,是在官方的討論區裡跟使用者吵架(後來他就把討論區關了),或是在臉書專頁裡跟使用者吵架(是的,他後來決定停止臉書更新)。曾經有段日期,PM有個issue report系統,使用者可以看看自己碰到的bug是不是也有其他一樣的受害者。這個issue report也被關掉了。被趕出去的使用者們另外成立了一個小群組,在裡頭討論著替代的方案,零零星星地,這一拖,又過了2年。2019年耶誕節前,Guiseppe 終於發布了一個重寫(re-written)、全新、號稱免費更新的版本。這個版本上線後,由於是以免費更新的方式上架,不知情或是設定自動更新的使用者,很快就更新到這個全新的版本。
然後哀嚎聲四起。
這根本不是什麼更新!這是一個全新的程式!一個操作界面、記帳流程、運作概念、特點都不一樣的「全新程式」。
升級之後,唯一跟舊版一樣的地方,只剩下軟體的名字跟被匯入的原有資料。而且因為iOS無法回覆到舊版軟體的特性,一但你發現狀況不對,抱歉,是沒辦法回復到舊版的軟體的。Pocket Money 在各個語系的App store評分開始急速下滑,從過去幾年金融類排行前幾名的程式 (而且是在原開發者已經過世的情況之下)掉到只剩一顆星。點進去滿滿都是使用者的抱怨。
更糟的是,很快有人發現,這個新版(PM2.0),長得跟另一個iOS上的記帳軟體 iCompta,好像。是開發者抄襲嗎?不,事情不是這樣的。PM2.0長得像iCompta 的原因,是因為Guiseppe 跟 iCompta的作者買了他的原始碼,取得授權後,改了軟體的名字,然後就上架了。對一個不會寫軟體的新老闆,用這種方式「改版」軟體,然後再加入訂閱的方式收費…好像也不是那麼不合理….
如果我要 iCompta,那我就跳船去 iCompta 就好了,幹嘛用一個叫作 PM2.0的iCompta clone?
當然,也有同好陸續在尋找替代的方案,不過一直以來,好像還沒有一個完美的,符合大家的 PM next 選項。有人想要號招高手,眾籌來寫,也有之前的繼任開發者Nick ,準備著後續的計畫。而這些計畫,僅僅是接續著PM過去數年的空白,要趕上現在的時空,包括AI、e-banking、cloud,還需要時間。
話題轉回我自己。
四月中的時候,我在PTT iOS板看到了一篇文章:《[問題] 2020 年大家有推薦的記帳app 嗎?》這種文章每隔一陣子都會出現,基於需求,裡頭提到的軟體,我都會點進去看一下。但是通常找不到順眼、複式簿記、具有PM的記帳能力(拆帳、多幣別、定期、支出收入正負號的彈性…),具新時代新功能,最重要的,是資料能轉過去的軟體。就在這一篇文章裡,我看到Moze 3。花了些時間進行比較和測試,甚至還訂閱了第一個月來觀察進階的功能 (現在已經改成訂閱一整年了)。
雖然說Moze 3 還無法達成100% PM的功能,但我後來都找到workaround的方法。Moze 3在新增記錄時的「記錄建議」可以使記帳的速度跟上甚至超越PM,小工具記帳、發票記帳和Siri記帳也都能有效地讓記帳這件事更有效率,更減少記帳所需的時間。
是時候來考慮最後一件事:資料轉移。
Moze 3 具有資料匯入的功能,我看了一下需求的格式,跟我當年寫PMTxl exporter時的格式邏輯很相近。於是就找了一個禮拜,學學 Python順便寫個轉檔工具。PM2Moze就這樣誕生了。當然寫的過程中,也發現不少PM匯出資料時缺失的部份和不合理的地方,畢竟資料從PMTxl –> Adarian Money (AM) –>Pocket Money ,再加上外幣換算和多筆資料匯總的過程之後,有一些記錄是對不起來的。在PM裡看起來正常,但匯出成csv就跑掉了。所以後來又花了許多心思在補正缺失的記錄。
舉個例子:以下是我在寫的過程中,邊思考邊留在comment裡的文字:
# 跨幣種轉帳時,PM2轉出轉入的幣種跟MOZE是相反的
# 所以針對跨幣種轉帳 再處理一次
# 前提的處理手段:必須已經成對且排好序,不然容易亂掉
#
# PM2匯率的處理也很亂。
# case 1: <wrong>支出時 Amount 就是該幣種的票面數字 ex: $399 USD => 不用改 </wrong>
# case 1: 支出時 Amount 是等效台幣的數字,所以要先用匯率換算回去該幣種的實際數字
# case 2: 轉帳時 Amount 是等效台幣的數字,所以要先用匯率換算回去該幣種的實際數字
# case 3: 轉帳時 轉進轉出的幣種是相反的,所以必須對調。但對調時幣除了幣種之外,對應的數字也要跟著對調,還要修正正負號…
# case 4: 若一開始沒有成對的紀錄 (後來補0的),則必須避開,不對調金額
# case 5: 若兩者幣種相同,仍然要依匯率換算,但不要對調金額
又或者如下面這一段:
# PM2 若對某個帳戶作「匯總」,
# 雖然收入/支出會被匯總,但是轉帳資訊會變成不對稱(剩一筆)
# 所以需要回溯去把對稱的轉帳紀錄加回去,但金額為0
# 才能匯入又不影響總數
# 又因為轉帳對稱需上下相鄰,用 sort 方式還是沒辦法把所有的狀況考慮進去
# 所以轉入/轉出 改用較髒的作法,從資料庫中抓出來逐筆檢查配對,加上獨一標記,最後再倒回去
本來想要斤斤計較,一直到所有的數字都完全對得上為止,不過看到在討論區中,Moze 3作者說了一句話,讓我決定適可而止,把剩下1%的差異,拿來體驗新的記帳生活和培養新的流程習慣:
過去讓它過去,不用糾結這些數字差異,重點只是把舊資料內容放在 MOZE 內,直接用餘額調整把所有帳戶跟現實餘額一致,然後開始新的記帳生活吧
把寫好的PM2Moze丟上Github,這個程式需要的人應該不多,畢竟國內使用 PM的人,又想跳到Moze 的人應該很少。如果Moze 未來要開拓國外市場,經過小小修改應該也可以符合英文或其他語系的使用者。
最後談談目前使用 Moze 約一個月的心得:
- 記帳更快,花費時間更少。善用記帳時的類別推薦、小工具記帳、掃描發票 (會找尋過去相似的記錄,帶入消費內容)、Siri+url_scheme,可以省去更多停在路邊記帳的時間。
- 主畫面是「列出當日交易」,對於宅男如我,一天的交易筆數五筆以下的話,空白太多。如果可以自訂主畫面成「列出當週交易」或是「某帳戶(如錢包)的交易」,會再更便利。
- 善用「搜尋」或是到帳戶底下去找到你想要查詢/複製的交易。
- 定期和分期的功能都很好用。五月上線的新功能「信用卡紅利回饋」很強大,應該花很多心思,但是屬於 nice to have。
- 信用卡對帳、繳費的流程,需要一些時間習慣,才能正確地把帳記在對應的週期裡。
背著17年來,親手記下的兩萬多筆帳,自己架好跳板,然後跳船到新時代。
希望如我在twitter 上說的,接下來用Moze 還可以在用個5~10年。
不好意思,因為我換了新手機後,原本的PM無法在新手機載下來了,在網路上搜尋原因及解決辦法後看到您的這篇
才知道原來是因為PM這個程式的關係,因為我用PM也很久了,現在必須找到可以轉換的記帳app,但我沒有任何程式背景
想請問您的PM2MOZE是下載到電腦上進行後續的步驟嗎
再此先謝謝您了
是的,PM2MOZE需要在有Python的環境下執行,通常是PC或是Server主機。