做現場工作,最好的離線工作管理 App 是哪一種?
最好的那一種先寫進你的手機,網路才排第二。任何一款候選的 App,都拿到飛航模式下試一次:新增一項待辦事項、改一次、附上一張照片,然後強制關閉再重新打開。如果 App 把某個按鈕變灰、拒絕儲存,或是重開之後剛剛輸入的東西不見了,那它只是把你讀到的內容快取起來,並沒有把你寫下的內容存下來。
星期三下午三點十五分,在圭爾夫一棟平房的爬行空間裡。屋主想把洗衣間移到樓上,而在梯子搬回貨車上之前,有四件事值得寫下來:那根不能開槽的托梁、方向裝反的乾衣機排風管、從來沒有人貼過標示的那個水閥,還有回程路上要順道買的那個彎頭。手機先剩一格訊號,接著連那一格也沒了。
於是這四件事被寫到一張收據背面,或是錄成一段語音留言,或是塞進一顆已經裝著另外兩件工程的腦袋裡。到了星期五,其中三件還在。剩下那一件,剛好就是客戶星期一會問起的那一件。
幾乎每一款賣給技術工種的 App 都說自己能離線運作,也正因為這樣,這句話已經幾乎不帶任何訊息了。它至少指著三種不一樣的行為,而其中只有一種在爬行空間裡真的有用。把它們分辨出來大概要十分鐘,在你把整整一年的工程筆記搬進某個東西之前,這十分鐘很值得花。
「能離線運作」通常指的是什麼
最弱的一種是唯讀快取。昨天的排程之所以出現在畫面上,是因為它在你還有訊號時被下載下來了;當你站在地下停車場裡拚命回想一個地址,這確實非常好用。然後你試著新增一點東西。按鈕變灰了,或者轉圈的圖示一直轉,或者一條紅色橫幅告訴你沒有連線。你看得到自己這一天,卻改不動它。
中間那一種會接下你打的字,把它放在記憶體裡。看起來像是成功了。你鎖上螢幕它還在,你走回貨車的路上通常也還在。它常常撐不過的,是作業系統為了挪出記憶體而把 App 關掉——這件事不會先問過你,而且什麼都不會留下。這是三種裡面最糟的一種,因為它會先讓你相信它一個月,之後才開始弄丟東西。
值得花錢的那一種,寫進的是手機本身上的一個資料庫。你按下儲存的那一刻,這筆記錄就已經存在於你的裝置上,不管另一端有沒有人在聽;還有一個佇列會一直抓著它,直到上傳成功為止。訊號是 App 之後自己按自己的節奏去處理的事。飛航模式測試在找的,就是這種行為。
十分鐘的飛航模式測試
拿你現在用的 App 做一次,也拿你正在考慮換過去的那一款做一次。在沙發上花十分鐘,比在爬行空間裡才發現便宜太多了。
- 打開飛航模式。不是訊號很弱,是飛航模式,這樣 App 能碰到什麼才不會有任何模糊空間。
- 新建一樣東西:一件工程、工程底下的一項待辦事項,或是一個星期四的預約。
- 幫它附上一張照片,再打一段長到你弄丟會心疼的備註。
- 改一樣在你離線之前就已經存在的東西:改個時間,或是把一項待辦事項打勾完成。
- 把 App 完全強制關閉,然後在還是飛航模式的狀態下重新打開。你剛剛做的每一件事都應該原封不動地待在原處。
- 關掉飛航模式,把手機放下,兩分鐘內都不要打開這個 App。然後換另一台裝置看看,或是再打開同樣那幾筆記錄,看看上傳有沒有自己完成。
過不了第五步的,都是記憶體快取,應該當成便條紙看待。過不了第六步的還是能用,但前提是你要記得在對的地方把它打開——這種儀式在旺季大概撐得了三個星期。
一則被忘掉的備註,實際上要付多少代價
貴的從來不是那則備註。貴的是星期四早上,一開場就得開車折回材料行,去拿一個星期二就決定好、卻沒寫在任何地方的接頭。

老實把這一趟算成錢。開車四十五分鐘,加上在櫃檯耗掉的二十五分鐘,就是七十分鐘;以每小時 95 美元的計價工資來算,這就是大約 111 美元沒有人付給你的時間,油錢還沒算進去。一個月兩趟,一年就是二十四趟:大約二十八小時,也就是 2,660 美元。那是整整一個星期的工作量,花在把你原本就已經有的資訊再找回來。
比較安靜的另一個數字,是那些從來沒進到帳單上的材料。一個 60 美元的接頭,是去工地的路上順手買的,站在貨車旁邊還記得,等到坐下來開帳單就忘了;一個月四次,一年就是 2,880 美元你自己的錢,花在別人家的房子上。如果這樣算聽起來太抽象,就把你自己的數字丟進一小時請不到款的成本跑一遍;大多數人都會被自己的費率嚇一跳。
還有第三種代價,只有在運氣差的那一年才會現身。加拿大稅務局(CRA)要求你把營業紀錄從相關的最後一個課稅年度結束起保存六年,而一張從來沒離開過手機的托梁受損照片,不算紀錄。一則你再也找不到的備註,也一樣不算。當客戶對地下室裡當初談好的內容有意見時,手上握著標了日期那則備註的人會贏。
佇列是你一定要看得見的那一部分
一款寫在本機的 App,最後還是得把這些內容交出去,而第二類問題就住在這個交接點上。你要能打開一個畫面,看見還沒送到伺服器上的有哪些——不是一個一直轉的圖示,而是一份清單。十一筆在等,沒問題。十一筆從星期二就在等,那是星期二就該問的問題,不是等到月底才問。
兩個人同時改同一件工程時會怎樣
你在地下室裡把一件工程改了名字,同時辦公室把它挪到星期四。兩次修改都是真的,其中一次比較晚到。一款默默只留下最後到達那一版的 App,會安安靜靜地把某個人的工作抹掉,有時候好幾個月都沒人發現。會停下來問你一句的 App,做的是對的事,就算被問一句確實有點煩人。這是把這件工程本身跑完的一部分,而不是什麼技術細節。
Zeus 在這裡扮演的角色
Zeus 先寫進手機上的資料庫,之後才跟伺服器說話。每一次寫入在沒有訊號時都會成功,並且排進裝置上的待傳送佇列——這就是一則備註被留住和一則備註不見了之間的差別。手機重新找到網路的時候,待傳送佇列會自己清空。
沒有訊號時你能新增和修改的,是這個 App 的大部分,而不是它的某個小角落:客戶、施工地點、工程、工程底下的待辦事項、預約、備註、照片、費用,以及連同明細項目和收款紀錄的帳單。佇列是一個你打得開的畫面,所以還沒送到伺服器上的東西,是一份你讀得懂的清單。當伺服器帶著對同一筆記錄的另一版修改回來時,它會進到衝突處理畫面,由你來選哪一版算數。
手機上的這個資料庫,是用你自己這次安裝時產生的金鑰加密的。沒有訊號時唯一會變薄的是地址自動完成:建議清單不再跳出來,而你自己手打的地址照樣存得起來。這個 App 涵蓋的其他部分表現都一樣。起步的規模不用花錢,也不會用完;每一種規模包含哪些東西,可以在價格頁面上讀到。
回到那個爬行空間。這裡沒有一件事是「喜歡哪套軟體」的問題:那四件要緊的事在腦袋裡大概只活了九十秒,唯一的問題是這支手機願不願意把它們收下來。這個測試只要十分鐘,拿你現在在用的東西做也行,拿 Zeus App 做也行。
常見問題
離線 App 會不會比較耗電,或者把手機塞爆?
寫進手機這件事本身幾乎不花什麼成本;會佔空間的是照片,而照片不管放在 App 裡還是放在你的相簿裡,佔的位置都一樣。真正該確認的是這款 App 讓不讓你查看並清掉已經上傳完成的內容,這樣手機滿了才只是一件保養工作,而不是做到一半突然爆掉的狀況。
在變成問題之前,我可以離線多久?
好幾天都行,只要這款 App 真的是以本機為優先:限制不在時間,而在其他人身上。你在地下室裡寫下的任何東西,在上傳之前對辦公室都是看不到的,所以一組整整一星期失聯的工班,先是排程問題,然後才是資料問題。每天上一次網、看一眼佇列,這個問題就不再重要了。
我必須記得去按同步嗎?
不應該需要。以本機為優先的 App,會在偵測到網路時上傳,也會依照固定的間隔再傳一次,按按鈕頂多只是嫌它慢。判斷的依據就是上面測試的第六步:如果非得等你在 Wi-Fi 下打開 App 才有動靜,那就是一個你會在八月忘掉的儀式,而八月剛好是你最忙的時候。
一個記事 App 加一台相機,夠不夠?
一個人做一件工程,老實說,有時候夠。它開始不夠用的那個點,是別人需要看到你寫了什麼——一個合夥人、一間辦公室、一個學徒——或者是一則備註必須在六個月後掛回某件工程上,好讓一張帳單站得住腳。記事 App 裡的一則備註,後面沒有掛著任何一件工程,而這就是全部的差別。





