4 分鐘閱讀

第 10 週開發日誌(iOS 第二週)

學習 UITableView、UICollectionView、Reuse 機制與網路 JSON 解析,並分析記帳 App Moze。

1. iOS 領域課程

十分重要的 UITableView

還有一樣也很重要的 UICollectionView 也在這週學到。為什麼這麼重要?因為幾乎所有 App 要顯示大量資料時,都不外乎是用這兩個 View。使用的時機就需要看 App 要達到什麼樣的顯示效果來決定,像是相片 App、Instagram 等巢狀 Cell 的部分就是用 UICollectionView,而像是 iPhone 內的設定選單、Facebook 等則是用 UITableView。

也帶到 Swift 中的 Reuse 機制,來讓原本大量資料需耗費許多資源時,僅先讓物件顯示部分(視窗畫面限制);而當需要顯示其他資料時(畫面滑動),重複利用物件,而非直接創建新物件來顯示,達到節省資源的效果。

初試網路連線

先前製作的 App 都是自己輸入資料,或是已經建立好表單資料去顯示,但當然不可能 App 只跟自己本機內的資料玩。網路連線是不可避免的,但網路資料形式眾多,如何擷取、如何解析跟顯示,也是一門大學問。

這週只先依照網路公開資料且有相對固定格式的檔案(JSON),來做到透過網路資料更新自己的畫面。這次也是第一次嘗試用到第三方套件 Alamofire(解析檔案)與 SDWebImage(圖片處理)。

Alamofire 將解析網路檔案變得相對容易(Swift 本身也有內建,但沒使用到,似乎相對難用)。這週作業只嘗試用此套件成功擷取並解析 CoinGecko API 的加密貨幣資料,但未能深入探討解析的機制跟原理,比較可惜。

作業製作過程中,曾因為解析檔案型態不同沒留意到,而卡了整個上午(Double 檔案宣告成 Int),紀錄一下避免日後再犯。

本週作業成果畫面

2. App 產品分析

為了未來開發產品或程式設計時,更能貼近或發現市場需求,本週開始都要分析現今市面上的 App 或網站的核心價值和客群,並發現或解決了哪些問題與需求。

這週我分析了已使用很久的記帳 App:Moze。這邊先簡略依照產品分析要點說明,詳細報告內容紀錄在 HackMD

  • 目標客群:希望養成或總是無法養成記帳習慣的人們。
  • 解決或滿足了什麼樣的需求:初級階段記帳無回饋感,進階記帳功能不全。
  • 解決的方式:完成記帳時利用畫面與震動給予反饋,囊括所有進階記帳應有功能,且不斷更新優化。
  • 能改進的地方:少部分功能操作不直覺。