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