從 Xcode 5 開始,在新建 project 時,以常用的 Single View Application 來說,Storyboard 以及 Unit Test 已經不是可以選擇的選項了。
也就是說,新建立的 project 將與生俱來地使用 Storyboard 以及配置好 Tests Target 了。我想這個改變是某種決心。
使用 Storyboard 而非止於 xib,或是使用 CoreData 而非直接操作 SQLite DB,在 iPhone 5s 已經裝載 64位元處理器的現在,追求更好的開發邏輯及工法將愈來愈被強調。倒不是技術方就不需要考量效能問題,但是「產品」的生命週期應該長過資訊裝置的軟硬體,不然以成本、品牌角度來看,都不利於健康的商業活動。為了提供更好的軟硬體架構以支撐未來的需求及改變,我們需要整體來看技術的選擇及精進。
更正確而言,其實技術的發展,有時是為了把關注點更正確的轉移。像 CoreData 就不是用來取代 SQLite 的,因為它不是 DB 系統本身,它關注的是怎麼運用能更直覺被詮釋的商業邏輯、提供更多相關機制來維護該邏輯眼下的執行、未來的變遷…等等的正確性。
就像想吃泡麵時沒有筷子,把筆擦乾淨還是可以將就的;但是現在有筷子,而且還是專門為泡麵麵條設計的筷子給我們用,為什麼不考慮呢?可能有人會說:「可是筆還可以寫字,筷子不行呀!」(可能有人覺得這個反問很…欠智慧,不過不知道為什麼,在很多時候,人都有這種想要什麼都有的心態和選擇。不然就不會看到有人拿著平板/接近平板大小的行動裝置、貼著耳朵、歪著脖子、拉著嘴巴、瞪著斜眼在講電話了…。) 關於這個反問,我選擇「微笑以對,不想解釋」。
Storyboard 明顯是強調 UX flow 的可視化,使其易於解釋、審視、變更,這些都關乎產品在使用需求上的直接品質;Unit Test 則是關注於強調程式邏輯的正確性、與需求的應對性。
這幾點被強調的文章還太少,至少不常見於與 iOS 程式設計的書/文章,所以筆著覺得還是要故意拿出來分享比較好。
沒有留言:
張貼留言