iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 13
1
Software Development

iOS 三十天上架記帳 APP系列 第 13

Money Mom - 回顧、整理、前瞻

回顧

截至目前爲止,完成了下列文章:

  1. Money Mom - 不只記帳,還要財務規劃
  2. Money Mom - 功能規劃、介面設計
  3. Money Mom - 實做調色盤
  4. Money Mom - 標籤輸入
  5. Money Mom - 實作標籤輸入 Part 1
  6. Money Mom - 實作標籤輸入 Part 2
  7. Money Mom - 實作標籤輸入 Part 3
  8. Money Mom - 實作標籤輸入 Part ∞
  9. Money Mom - 快速記帳錄音功能
  10. Money Mom - 將快速記帳資料顯示於首頁 Part 1
  11. Money Mom - 將快速記帳資料顯示於首頁 Part 2
  12. Money Mom - 將快速記帳資料顯示於首頁 Part ∞

過程中爲了趕文章,有許多地方沒有花時間思考、設計,這是身爲工程師的大忌,一個稱職的工程師,是無論何時都能以優雅的方法解決問題。夢想成為一個稱職工程師的我,必須無時無刻提醒自己,設計優雅的解決方案、寫出優雅的程式架構。

因此接下來就是要回顧前面的文章,整理思緒、調整呼吸,再繼續往前邁進。

整理

首先先整理目前已知問題,並重新審視程式架構,統整出需要調整的部分。

功能上的調整:

  1. 同一筆「快速記帳」不應該有重複的標籤。
  2. 快速記帳畫面裡,標籤 UICollectionView 上面有蓋一層 UIView,方便使用者點擊時進入輸入模式,但卻影響使用者刪除標籤的按鈕(變成要點兩次)。

程式碼上的調整:

  1. 程式碼中像是儲存錄音檔的路徑、各種 UIEdgeInsets 等等,這類型的資料都應該拉到獨立的物件,比方說 MMConfig 物件。
  2. 重新審視是否需要 lazy。
  3. ViewController 中的元件拉出去獨立,讓每個元件都可以重複利用。
  4. 用獨立的物件處理 Auto Layout Constraint,不要讓程式碼一大陀散落在各地。
  5. 用來展示資料用的 UITableViewCell 或 UICollectionView,要能夠直接以 Entity 的方式填入資料,而不是在 cellForRowAt 一一設定。
  6. InvisibleTagCollectionViewButton 應該要放在 TagCollectionView 的物件裏面,隱藏其設計邏輯。
  7. 錄音的按鈕,會因爲錄音狀態改變而改變樣式,這類型的 UI 物件應該要提供更有意義的 function 用以隱藏修改樣式的邏輯,比方說我呼叫按鈕的 startRecording 之後,自動幫我改顏色,我就不用再另外處理。
  8. TagCollectionViewCell 和 ReadOnlyTagCollectionViewCell 兩者需合併。

以上調整後,程式碼:GitHub

備註:UI 元件拆分的不夠理想,是未來可以繼續努力的地方。

前瞻

預計未來要依序加入的功能:

  1. 使用 Core Data 儲存資料
  2. 加入整理快速記帳的功能
  3. 加入註冊、登入,雲端同步功能
  4. 加入社群功能

總結

程式碼調整完後,最後缺的是將這些快速記帳功能儲存起來。所以,上面「整理」列出的事項調整完後,會再繼續新增 Core Data 相關功能,實做完後就會把這個版本送審,想當然成功上架的機率超級低,不過想想也很正常,就跟一般偶像劇一樣,會安排角色在劇集中詐死,然後在關鍵時刻復生。

所以,第一版送審雖然只有快速記帳功能,但是這僅僅是一個轉折點,送審後,我們會馬上進入下一版功能實做,也就是上面「前瞻」中的第二、三項,屆時會再進行第二次送審!

革命還沒結束,讓我們繼續看下去……


上一篇
Money Mom - 將快速記帳資料顯示於首頁 Part ∞
下一篇
Money Mom - 加入 Core Data 儲存記帳資訊
系列文
iOS 三十天上架記帳 APP30

尚未有邦友留言

立即登入留言