本網站使用 Kohei Koyanagi 開發的軟體自動翻譯為多種語言。為確保準確,請參考原始 英文 版本。

Splync v1.10 可刷新

「可刷新」代表什麼意思

大多數 iPhone 用戶都知道,向下拉動螢幕可以刷新很多應用程式的內容,這就是經典的下拉刷新手勢,也是我們所說的「可刷新」。早期版本的 Splync 不支援這項功能。唯一的刷新方式是關閉應用程式再重新打開。自 Splync v1.3 以來,應用程式會保持登入狀態,所以這不會造成太大困擾,但仍不夠理想。因為 Splync 的目標是成為最簡單的共享預算追蹤器,刷新螢幕應該是毫不費力的。這就是為什麼在 v1.10 中我們引入了下拉刷新功能,讓 Splync 完全可刷新。

Splync 刷新資料的兩種方式(完整重載/視圖更新)

在主畫面上,您會看到個人資料照片、好友列表和項目列表,下拉刷新執行完整重載。這會重新擷取所有帳戶相關資料,非常像是登出再登入。所以刷新時可能需要約一秒的時間顯示加載訊息。在顯示支出列表的項目畫面上,相同的下拉動作會觸發較輕的視圖更新。只有項目相關資料會被刷新,例如類別變更和支出更新。您不必等待一整秒來查看是否有人新增支出。另外要注意:Splync 不會自動從伺服器後台抓取項目資料。應用程式只有在您進行更改、打開支出查看詳情或手動刷新項目頁面時才會檢查更新。

為什麼不使用實時同步

有些用戶可能希望當朋友新增支出時,項目更新能即時顯示。實時同步聽起來方便,但伴隨重要的權衡。持續的背景更新需要更多電池、更多行動數據,以及更複雜的伺服器連線,這可能會讓應用程式變慢。Splync 的隨需而刷新方法保持體驗輕鬆且快速,防止您檢視預算時螢幕突然變動。還有一些安全考量。維持伺服器的持續連線會增加未授權存取的風險窗口,並需要在後台運行額外的身份驗證邏輯。透過僅在您執行操作時刷新,Splync 最小化不必要的網路活動,讓資料訪問更可預測和可控。

關於.refreshable 的程式碼背後

一開始,我以為這個更新很簡單。在 Swift 中,這是用於 iOS 開發的語言,您可以僅透過將 .refreshable 修飾符附加到 ScrollView 或 List 來啟用下拉刷新。然而,它並沒有如我所期望的那樣運作。深入研究後,我找到了根本原因。我想要將下拉刷新加入到整個頂部畫面,這包含了好友列表和項目列表。但在原始設計中,這些元件本身都是可滾動的。因此,.refreshable 不知道它所屬的是哪個可滾動區域,手勢偵測不一致。為了解決這個問題,我重新結構化了好友列表和項目列表,讓它們不再自行滾動。這是安全的,因為當內容超過螢幕高度時,頂層視圖本身會滾動。一旦我簡化結構並確保只有一個可滾動容器,.refreshable 終於按照預期工作。我也加了一個典型的刷新按鈕,讓用戶可以輕按刷新。

拉動無效?再往下一點

在大多數 iOS 應用中,下拉刷新不會在您剛開始拖動時觸發。SwiftUI 內建有手勢門檻:系統會等待您向下拉動到一定距離才觸發刷新。這防止了在您剛從螢幕頂部開始滾動時的意外更新。Splync 遵循這種標準行為。您可能注意到短暫的拉動不會刷新內容,但稍長的拉動——足以讓刷新指示器出現——將會觸發更新。這種設計讓互動更有意圖。特別是在用戶經常需瀏覽長支出或項目列表的畫面上,避免了不必要的刷新。一旦您稍微「過拉」頂部邊界並出現指示器,刷新會在您鬆手時開始。這是個小細節,但對更順暢可預測的體驗有所貢獻。澄清一下:這不是關於拉動更長時間或施加更大壓力。重點是拉動更遠的距離。

小功能,大巧思

下拉刷新看似簡單的互動,但建立它涉及設計選擇、技術重組和意想不到的多重考量。Splync v1.10 讓數據刷新感覺自然、有意圖且可預測,正如最簡單共享預算應用程式應有的樣子。希望這次更新能為您提供更流暢的體驗,並讓您窺見每個細節背後的用心。感謝您使用 Splync。