Pages

Sunday, May 13, 2012

BlocksKit on GitHub

Blocks 可以讓我們的程式撰寫更簡潔和潛在的快速,更不用說當搭配 multithreading 時候和 Grand Central Dispatch。而 BlocksKit 這套 Libray 設計出來希望能在程式撰寫上帶來便利,且不會有擾人讓程式碼可以更結集在一起。當程式上使用了 Delegation Pattern 需要呼叫回傳,這不只讓邏輯程式碼分散之外,在傳遞指定程式邏輯撰寫上也很吃力。

當 iOS 4.0 介紹支援 block 技術後,BlocksKit 著重在這幾個層面上:
  • 需要 Callback 的 delegate 機制 (UIAlertView) 
  • 當使用了 target/selector pattern 時候 (UIControl, UIGestureRecognizer)
  • 需要不斷重複執行的狀況 (NSArray)
  • 必須使用到 selector 時候 (NSObject -performSelector:withDelay:)

我在 iOS App Project 裡面有個 Input Text View 希望使用者可以輸入文字,但是因為鍵盤的 Enter 鍵被拿來使用換行了,所以當使用者想要離開鍵盤必須要用別種方式。 於是用 UIGestureRecognizer 製作了 tapDissmissKeyboardRecognizer。如果以前話是要搭配 delegate 和再加上 target/action 來處理,但是這樣程式碼邏輯就會分散掉了。於是透過 BlocksKit 我可以用這樣方式來解決。 

範例 gist

當然 BlockKit 支援更多,前往 github 看看 Library 就可以知道有哪些擴充使用的機會了。讓我們回到平日工作的 Project 上,去想想看過去寫了這些情境,是不是應該要換成使用 Block 的模式了呢?有時候自己習慣於某種開發習慣不自知,所以團隊的夥伴們如果你能站在也需要參與開發維護的角色上,可以奉勸他有這個改善的機會吧!

No comments:

Post a Comment