github上優秀的objective-c項目簡介
主要對目前github排名靠前的項目做一個簡單的簡介,友善自己快速了解 objective-c的一些優秀的開源架構。
項目名稱 項目資訊
afnetworking 作者是 nshipster 的部落客, ios 開發界的大神級人物, 畢業于卡内基·梅隆大學, 開源了許多牛逼的項目, 這個便是其中之一, afnetworking 采用 nsurlconnection + nsoperation, 主要友善與服務端 api 進行資料交換, 操作簡單, 功能強大, 現在許多人都用它取代 asihttprequest
beeframework beeframework是一個ios應用開發架構,由國内開發者郭虹宇創立并且在github上開源。經過一年多的發展,beeframework在github上,得到了廣泛關注,有1000多的star數和400多的fork數
gpuimage 一款強大的圖檔濾鏡工具, 支援自定義濾鏡, 可用來實時處理圖檔和視訊流, 作者是 sonoplot 公司的 cto, 在很小的時候便開始接觸程式設計, 他在 so 上面的回答也有很多值得閱讀, gpuimage 這個項目從 2012 年開始, 使用 opengl 圖形程式接口編寫, 性能非常好, 現在很多 ios 程式員都用它來實作 ios 的模糊效果
sdwebimage 作者 olivier poitrey 是 dailymotion 的 cto, 擁有多個不錯的開源項目, 此項目常用于對從 web 端接受到的圖檔進行緩存, 是 uiimageview 的擴充, 應用起來比較簡單
restkit 主要用于 ios 上網絡通信, 允許與 restful web 服務互動, 常用于處理 api, 解析 json, 映射響應對象等操作, 簡單易用, 友善你把所有精力都放在對資料的操作上
reactivecocoa 由 github 工程師們開發的一個應用于 ios 和 os x 開發的函數響應式程式設計新架構, matt 稱其為 “an open source project that exemplifies this brave new era for objective-c”, 也有人說它是 cocoa 的未來,github自家的函數式響應式程式設計範式的objective-c實作,名字聽着很高大上,學習曲線确實也比較陡,但是絕對會改變你對ios程式設計的認知
three20 由 facebook ios 用戶端衍生出的一款 iphone 架構, 内置許多豐富的功能, 有豐富的界面, 對底層的操作便捷, 為開發者省下了很多時間, 但現在已經停止了更新, 一個 pr 把代碼删得幹幹淨淨, 不要好奇去點開 files changed, 我點開後該頁面直接卡死, three20 當中的一位作者建立了 nimbus, 算是 three20 的一個替代品
mbprogresshud 作者 matej bukovinski 是一位全棧工程師, ui/ux 設計師, 此項目是一款提示框第三方庫, 幫助開發者快速應用到項目中)
magicalrecord 作者是 coursera 的 ios 工程師, 該項目創作靈感來自于 ruby on rails 的 active record, 主要為友善操作 coredata 而生, 幫助清除 coredata 引用的代碼, 協助友善 coredata 的工作
fmdb 一個對 sqlite 進行封裝的庫, 使用起來友善, 簡單
mantle 作者是 github 的員工, 文檔寫的很清楚: mantle makes it easy to write a simple model layer for your cocoa or cocoa touch application, 主要用來将 json 資料模型化為 model 對象, 唱吧在前段時間也改用 mantle 了。github自家的産物,輕量級模組化的首選,也可以很好的配合coredata工作
flatuikit 收集了很多扁平化 ui 的 ios 元件, 友善使用
asihttprequest 一個輕量級的 ios 網絡通信類庫, 基于 cfnetwork 架構開發, 但現在已經停止更新, 多數開發者改用 afnetworking 替代)
fastimagecache path 公司出品的 ios 庫, 作者 mallory paine 是蘋果前員工, 此類庫适用于在滾動時快速顯示圖像, 高速持久是其最大的特點
masonry 一個輕量級的布局架構, 同時支援 ios 和 mac os x, 文法優雅, 幫助開發者快速适配不同分辨率的 ios 裝置
shimmer facebook 推出的一款具有閃爍效果的第三方控件, 供它旗下一款名為 paper 的應用使用, 安裝使用整個過程都十分簡單
svprogresshud 又一款輕量級的 ios 第三方控件, 用于顯示任務加載時的動畫, 非常輕便, 容易使用
jsonkit 主要用于解析 json, 适用于 ios6 以下環境, 自從 ios5 開始 apple 官方給出了 nsjsonserialization api, 自此大家都用官方的了
nimbus 作者 jeff 曾為 facebook, google 做過不少好東西, 也是 three20 的成員之一, three20 停更後, 他創造出這個架構來代替 three20, 文檔齊全
facebook sdk for ios facebook 官方的 ios sdk, 友善開發者內建 facebook 的一些功能到自己的 ios app 裡面
asyncdisplaykit facebook 開源的一款 ios ui 架構, paper 用的就是該架構, 另外架構還用到了 facebook 早期開源 pop 動畫引擎
alcatraz alcatraz 是一款管理 xcode 插件、模版以及顔色配置的工具, 可以內建到 xcode 的圖形界面中, 安裝删除都是幾條指令的事, 很友善, 支援自己開發插件并上傳
jsqmessagesviewcontroller 優雅的 ios 消息類庫, 常用于聊天應用中, 可定制性高
xctool 是 facebook 開源的一個指令行工具,用來替代蘋果的 xcodebuild 工具, 極大的友善了 ios 的建構和測試, 輸出錯誤資訊也比較友好, 受到許多 ios 開發者的稱贊, 經常與其搭配使用的還有 ocunit, travis ci, oclint 等測試工具
openemu 超強的遊戲模拟器, 做遊戲開發必備, 官網做得也很不錯
icarousel 作者是英國 charcoal design 公司的創始人, 開源領域的貢獻頗為卓著, 這個項目就是其中之一, 這是一款可以在 ios 上實作旋轉木馬視圖切換效果的第三方控件, 并提供多種切換效果
residemenu 作者 roman efimov 是雅虎的 ios 工程師, 這個項目實作了 ios 上的菜單側滑效果, 創意來源于 dribbble, 該項目支援 ios8
pnchart 作者周楷雯是 90 後, 秒視的創始人, 該項目是一個帶動畫效果的圖表控件, 簡約易用, 受到不少開發者喜愛
ponydebugger 由 square 公司推出的一款優秀的 ios 應用網絡調試工具, 使用者可以實時看到應用程式的網絡請求, 也可以對 ios 應用程式的核心資料棧進行遠端調試
jvfloatlabeledtextfield 作者是 thumb labs 的聯合創始人, jvfloatlabeledtextfield 是 uitextfield 的子類, 主要實作輸入框标簽浮動效果, 創作靈感來自 dribbble, 已出現多個移植版本
swtableviewcell uitableviewcell 的子類, 實作了左右滑動顯示資訊視圖并調出按鈕
awesomemenu 作者是一位中國人, 該項目主要是使用 coreanimation 還原了 path menu 的動畫效果
reachability reachablity 是用于檢測 ios 裝置網絡環境的庫,beeframeowrk中使用過的庫
vvdocumenter-xcode 作者是王巍國内著名的 ios 開發者, 人稱喵神, 目前在日本 line 公司工作, 該項目幫助開發者輕松的生成注釋文檔, 節省了不少工作量, 贊
the physical web 由 chrome 團隊主導的一個項目, 意在用 url 連接配接世界, 友善使用者接受資料, 目前尚處在實驗階段
newsblur 作者獨自一個人 samuel clay 做出來的一款名為 newsblur 的新聞閱讀器, 很多人都稱其為 google reader 的替代品, 這是它的源碼
cocos2d-spritebuilder 一個可用于在 ios, mac 和 android 上制作 2d 遊戲或其它圖形/互動應用的架構, 之前的項目名稱為 cocos swift, 目前該項目在 github 上更新較為頻繁
tttattributedlabel uilabel 的替代品, 使 ios 上的 label 功能更加豐富, 可支援連結植入等功能
cocoaasyncsocket 一個功能強大、簡單易用的異步 socket 通訊類庫, 支援 tcp 和 udp 協定, 可用于 mac 和 ios 裝置上, 作者 robbie hanson 是 deusty 的首席軟體工程師
tapkulibrary 作者是 devin ross, 這是在 ios 上一款功能強大的 ui 效果類庫, 可以實作多種酷炫的效果, 目前仍在更新中
canvas 無需編碼實作牛逼的動畫效果的庫, 連設計師都可以快速上手
socketrocket square 公司開源的一個 websocket 用戶端, 穩定并且易用, 做實時應用常會用到, 受廣大開發者喜愛
ecslidingviewcontroller 一個視圖控制器容器, 将子視圖處理成兩層, 通過滑動來處理層的切換, 創作靈感來自 facebook 和 path的 app, 作者是 cleveland 的員工
json framework 用于解析 json 資料的一個架構, 但是在 ios5 以上版本大多數人都選擇使用 nsjsonserialization 來解析 json, 該項目現在在 github 上也幾乎沒怎麼更新了
tweaks facebook 開源的一款工具, 旨在幫助 ios 開發者更快的疊代應用, 友善使用者動态的調整參數, 是的, paper 這個項目也用到了
realm-cocoa realm-cocoa 是 realm 公司推出一款移動端資料庫, 可以運作在手機、平闆和可穿戴裝置之上, 其目标是取代 coredata 和 sqlite 資料庫
jsonmodel 一個能迅速解析伺服器傳回的 json 資料的庫, 友善資料的類型轉換
kvocontroller 一個簡單安全的 kvo(key-value observing, 鍵-值 觀察)工具, 提供簡單友善、線程安全的api, facebook 的開源項目之一
mwphotobrowser 一款簡單的 ios 照片浏覽控件
svpulltorefresh 一款隻需一行代碼便可內建上拉重新整理和下拉加載的元件
pop facebook出品的paper,動畫效果太好了,趕超apple的原生app一大截。pop就是paper的動畫庫!
以上開源項目我用的最多的就是beeframework,但是此架構也是通過其他開源架構融合在一起的一個架構。自己做個筆記以後用到的時候不需要去網上到處找了。