開發 iOS APP 有一段時間了,期間也用了不少第三方元件,感謝有這些第三方元件,讓我提高了開發的速度與品質。趁著今天這個機會,把幾個很常用的元件記錄下來,給大家作個參考,如果你有在用什麼很棒的元件的話,也歡迎留言跟我分享:)

底下這些是我幾乎在每個 APP 都會用到的,可說是必備元件:

  • Cocoapods
    用了許多的第三方元件,每個元件都有自己的 dependency,還要三不五時去查看這些元件有沒有新版本,對此你感到疲累了嗎?Cocoapods 是你的好朋友,有了它之後,以上的問題都不再是問題,它會幫你處理得好好的。底下我提到的所有元件,都可以透過 Cocoapods 管理喔。

  • AFNetworking
    它大概已經是 Mac/iOS APP 開發的業界標準了吧,它幫我們把所有網路連線的麻煩事都處理掉了,而且它的架構漂亮有彈性、功能又強大,更重要的是它一直有在更新。所以別猶豫了,只要開發的 APP 需要網路連線,用它就對了。

    如果你覺得 AFNetworking 太過複雜或強大,你也可以試試看 MKNetworkKit,它相對簡單許多,該有的功能也都有,已經能夠滿足一般的需求。那為什麼我比較推薦 AFNetworking 呢?因為一來支援它的延伸套件比較多,二來是這個作者更新比較勤快。

  • SDWebImage
    有很多時候我們必須從網路下載圖片(例如顯示頭像、顯示網路照片),這個元件可以讓我們很輕鬆的處理這項工作,不用擔心快取、圖像解碼等問題,而且它還可以自訂快取大小、過期時間、以及其他比較細節的調整。附帶一提的是,它讓 UIImageView 能夠顯示 GIF 跟 WebP 格式的圖檔。

    另外,作者也寫了一篇 How is SDWebImage better than X?,你可以看過之後再決定要不要用它。

  • Mantle
    現在越來越多的 API 都是採用 JSON 格式傳資料,所以我們在跟 server 溝通的時候,就需要將 JSON 格式轉換成我們自己的 Object,或是將我們的 Object 轉換成 JSON 格式。轉換的過程其實不難,只是一段又一段類似的程式碼看起來就是既無趣又冗長。

    還好現在有了 Mantle,讓我們可以輕鬆的在 JSON <-> Object 之間自由轉換,對於一些常見的型態(例如字串或 URL)它都已經內建轉換規則了,若是有特殊情況,我們也可以自訂轉換規則。

  • Nimbus
    它的前身就是 Three20,但它不只是改名字而已,而是徹徹底底的大改變,最大的改變就是它的文件齊全了。說穿了 Nimbus 就是一堆好用元件的大補帖,你可以挑自己需要的元件來用。

    我最喜歡它的 NIModel 元件,它讓 UITableView 的 dataSource 跟 delegate 不再跟 View Controller 混在一起,整個架構切乾淨了。當你需要在一個 View Controller 裡頭複雜一點的 UITableView、或是靜態的 UITableView、或是多個 UITableView 的時候,就能體會它帶來的好處。

  • BlocksKit
    自從 Clang 支援 Blocks 之後,Blocks 就變成我最喜愛的特性之一。適當的使用它,會讓程式碼看起來更好讀也更簡潔。BlocksKit 則是將 Blocks 特性帶到了 Objective-C 的所有基本元件上。

  • ViewDeck
    由於裝置螢幕尺寸的限制,滑動顯示左/右側選單幾乎成了大多數 APP 的基本介面(例如 Facebook),ViewDeck 提供了這種介面的基本架構,你只要把自己的 View Controller 放進去就可以了。

  • SSPullToRefresh
    喜歡下拉更新嗎?SSPullToRefresh 提供一個簡單的介面讓你完成這個功能。

  • SVProgressHUD
    由於受到網路連線速度或是裝置處理資料速度的限制,所以 APP 裡頭有許多動作是不同步的,因此我們需要適時的提示使用者。SVProgressHUD 就是一個簡單又夠用的提示器,它可以顯示代表忙碌的旋轉指示器、進度提示、一個圖示、或一小段文字。

底下這些元件不是那麼必備,但時常有機會用到:

  • iRate
    一個提示使用者到 App Store 幫你的 APP 寫評語打分數的小工具。

  • iVersion
    自動檢查 App Store 上有沒有新版的 APP,有的話就提醒使用者去下載,同時也可以顯示版本更新紀錄。有一些使用者就是都沒有在更新 APP 的,有了這個小工具,或多或少可以提高使用者更新的意願。

  • Routable
    有的 APP 的畫面架構非常複雜,點了這個按鈕可以切換到這個畫面,點了那個選單又可以切換到那個畫面,不管是寫程式碼還是透過 Storyboard 切換,都是一整個糾結啊!還好,現在有了 Routable 之後,切換畫面就像在切換 URL 一樣簡單。

  • PSTCollectionView
    iOS 6 推出了一項很吸引人的新功能,名叫「UICollectionView」,可惜它是 iOS 6 以上才能用,而且它有一些奇怪的問題存在。因此國外有神人開發了這套 PSTCollectionView,不僅完全相容 UICollectionView,而且 iOS 4/5 都能用,也沒有官方的那些問題存在。若你想要顯現漂亮的排版又想兼容 iOS 5 的話,絕對要試試看這個元件。

  • SSKeychain
    它將蘋果複雜難用的 keychain 包裝起來,讓使用者可以輕鬆取用。若是有儲存帳號密碼等需要加密的資料時,這會是一個好工具。

  • ShareKit
    希望使用者多多分享你的 APP 所提供的內容嗎?試試看 ShareKit!它內建了分享到多種網路服務的功能,你可以只挑你想要的來用。

  • LineKit
    想要分享資料給 Line 上朋友,可是 ShareKit 卻沒提供這個功能怎麼辦?沒關係,試試看 LineKit


當然還有一些我用過的第三方元件沒有寫進來,不過上述這幾個應該已經滿足絕大多數的使用情境了,哪天我有想到其他好用的元件再補上來吧。

對了,ManiacDev.com 這個網站時常會介紹一些好用的第三方元件,有興趣的朋友可以來這裡挖寶。

你有自己推薦的元件嗎,記得要留言跟我分享喔!

相關文章