iOS開發(fā)-常用第三方開源框架傾情整理!

iOS開發(fā)-常用第三方開源框架
分享一下我目前所在公司 iOS 項目中用到的一些 iOS 開源庫和第三方組件, 感謝開源, 減少了我們的勞動力, 節(jié)約了我們大量的時間, 讓我們有更多的時間和精力能更加專注的做好自己的產(chǎn)品

Objective-C篇

AFNetworking


https://github.com/AFNetworking/AFNetworking
在眾多iOS開源項目中,AFNetworking可以稱得上是最受開發(fā)者歡迎的庫項目。AFNetworking是一個輕量級的iOS、Mac OS X網(wǎng)絡通信類庫,現(xiàn)在是GitHub上第三大Objective-C庫。它建立在NSURLConnection、NSOperation等類庫的基礎上,讓很多網(wǎng)絡通信功能的實現(xiàn)變得十分簡單,因此,許多iOS應用開發(fā)都會使用到它。
支持HTTP請求和基于REST的網(wǎng)絡服務(包括GET、POST、PUT、DELETE等);
支持ARC;
要求iOS 5.0及以上版本;
有一些插件擴展已有的功能,還有一個功能齊全的API;
從URL中獲取JSON特別簡單。

SDWebImage
https://github.com/rs/SDWebImage
圖片異步下載和緩存管理的集大成者 UITableView的黃金搭檔 其代碼被開發(fā)者研究分享過無數(shù)次喵大的Kingfisher(可以說是Swift版的SDWebImage)也是深受其影響;
異步下載AFNetworking和MKNetworkKit都有實現(xiàn) 數(shù)據(jù)緩存也有FastImageCache與TMCache等 但是將其融會貫通的 唯有SDWebImage了;
除了簡單的使用sd_setImageWithURL之外 SDImageCache也是可以獨立使用的 功能也相當之強大。

MBProgressHUD
https://github.com/jdg/MBProgressHUD
簡單易用且穩(wěn)定的HUD組件,半透明黑底白字的風格也經(jīng)久不衰,loading提示的最佳選擇。

SVProgressHUD
https://github.com/SVProgressHUD/SVProgressHUD
另一個牛叉的單例HUD,SVProgressHUD能夠實現(xiàn)多種HUD效果,多用于程序正在執(zhí)行耗時較長的任務,需要用戶等待。除了顯示等待的HUD,還可以顯示命令執(zhí)行成功或者失敗的HUD。

LCProgressHUD
https://github.com/iTofu/LCProgressHUD
一個超簡單的活動指示器。適配橫屏。
只是覺得 MBProgressHUD 太麻煩了,所以再搞了一遍。

GMDCircleLoader
https://github.com/gabemdev/GMDCircleLoader
GMDCircleLoader 是一個簡潔易用的加載視圖,類似顯示任務進展的蘋果加載視圖。

MJRefresh


https://github.com/CoderMJLee/MJRefresh
用法簡單的下拉刷新框架:一行代碼搞定

JHRefresh
https://github.com/Jiahai/JHRefresh
可快速自定義下拉刷新界面

MJExtension


https://github.com/CoderMJLee/MJExtension
轉換速度快、使用簡單方便的字典轉模型框架

JSONModel


https://github.com/icanzilb/JSONModel

TTQRCodeScanner
https://github.com/change2hao/TTQRCodeScanner

社會化分享SDK
ShareSDK3
https://github.com/MobClub/ShareSDK3.x-for-iOS
MOBFoundation
https://github.com/MobClub/MOBFoundation
ShareSDKUI
https://github.com/MobClub/ShareSDKUI

IQKeyboardManager
https://github.com/hackiftekhar/IQKeyboardManager
iOS 鍵盤自適應,再也不用擔心鍵盤擋住輸入框了

WMPageController
https://github.com/wangmchn/WMPageController
實現(xiàn)控制器翻頁的簡單解決方法

DCPathButton
https://github.com/Tangdixi/DCPathButton

ZYQAssetPickerController
https://github.com/heroims/ZYQAssetPickerController
ZYQAssetPickerController 可同時選擇本地相冊的多張照片,然后將它們顯示在ScrollView中。支持iOS 5.0 以上。支持橫豎屏,支持iPhone以及iPad,高度可自定制化。

WTReTextField
https://github.com/pieceofsummer/WTReTextField
WTReTextField 是 UITextField 的之類,實現(xiàn)了通過正則表達式對輸入值進行限制的功能。

FDFullscreenPopGesture
https://github.com/forkingdog/FDFullscreenPopGesture
利用Runtime自定義控制器POP手勢動畫

EScrollerView
https://github.com/Gorilla957/EScrollerView
一個可以自動滾動的跑馬燈(幻燈、圖片滾動)

Swift篇

Alamofire


https://github.com/Alamofire/Alamofire
Alamofire是一個用Swift寫的優(yōu)雅的網(wǎng)絡庫。你曾經(jīng)用過AFNetworking嗎?ALamofire是它的弟弟。年輕也更有才華,當然啦(AFNetworking是用Objective-C寫的)。
當你想要抽象簡化App中的網(wǎng)絡請求時,Alamofire是你需要的,Alamofire是一個Http網(wǎng)絡請求庫,構建在NSURLSession和基礎URL加載系統(tǒng)之上,它用簡單優(yōu)雅的接口很好的封裝了網(wǎng)絡請求。

SwiftyJSON
https://github.com/SwiftyJSON/SwiftyJSON
Swift的Explicit types(顯示類型)可以確保我們不會在代碼中犯錯和出現(xiàn)bug。但是有時處理起來還是比較麻煩,特別是和JSON打交道的時候。幸運的是,SwiftyJSON提供了可讀性更好的方式幫我們處理JSON數(shù)據(jù)。還提供了可選的自動解析!

ObjectMapper
https://github.com/Hearst-DD/ObjectMapper
如果你寫過一個通過API獲取信息的app,你可能需要花大量時間寫代碼把你的響應結果映射為你的object。ObjectMapper可以幫你把JSON格式響應結果轉換成你的model對象,反之亦然。換句話說,它幫你把JSON映射成對象,也可以把對象轉換成JSON。嵌套的對象也支持。

SwiftDate


https://github.com/malcommac/SwiftDate
Swift中的日期處理庫

Quick


https://github.com/Quick/Quick
Quick是一個行為驅動(BDD)開發(fā)框架,它的靈感來自于RSpec,Specta, 和Ginkgo。配合Nimble一起使用,Nimble是一個測試匹配框架。

Eureka
https://github.com/xmartlabs/Eureka


Eureka可以幫你簡單優(yōu)雅的實現(xiàn)動態(tài)table-view表單。它由rows,sections和forms組成。如果你的app包含大量表單,Eureka可以真正幫你節(jié)省時間。

RxSwift
https://github.com/ReactiveX/RxSwift
RxSwift是一個基于Swift的的函數(shù)式響應編程框架。更具體點,RxSwift是是Rx的一個Swift語言版本(還有Java版本RxJava,js->RxJs)它的目標是讓異步和事件數(shù)據(jù)流操作更簡單。KVO observing, async operations and delegates are all unified under abstraction of sequence(還沒來的及學習掩面哭),如果你已經(jīng)使用過ReactiveCocoa,你接受起來會比較簡單(都是函數(shù)式編程思想)

SnapKit


https://github.com/SnapKit/SnapKit
SnapKit是一個用少量代碼寫出不丟可讀性auto layout的AutoLayout庫。

Spring


https://github.com/MengTo/Spring
Spring是一個可以幫你用代碼或者直接在Storybard創(chuàng)建動畫的動畫庫,在Storyboard你可以用runtime(通過設置IBInspectable屬性)來創(chuàng)建動畫,Spring已經(jīng)成長為一個全面發(fā)展的動畫庫 支持很多已經(jīng)存在的動畫。

Kingfisher


https://github.com/onevcat/Kingfisher
Kingfisher是一個輕量的下載和緩存網(wǎng)絡圖片庫。下載和緩存是異步進行操作,已經(jīng)下載好的圖片會緩存在內(nèi)存和本地,極大得提高app的體驗。

CoreStore


https://github.com/JohnEstropia/CoreStore
CoreStore是一個基于Core Data的封裝庫。它的目標是安全優(yōu)雅和Core Data進行交互。CoreStore的API提供了常用的有效的方法讓你和你的數(shù)據(jù)庫進行交互。

ReachabilitySwift
https://github.com/ymsheng/ReachabilitySwift

SnappingStepper


https://github.com/yannickl/SnappingStepper
SnappingStepper 是用 Swift 寫成的一個 UIStepper 的優(yōu)雅的替代品,有拇指滑塊,可更加靈活地控制數(shù)值更新。

SwiftWebViewBridge
https://github.com/ShawnFoo/SwiftWebViewBridge
Swift version of WebViewJavascriptBridge with more simplified, friendly methods to send messages between Swift and JS in UIWebViews.
Obj-C和JavaScript互通消息的橋梁

Mustache
https://github.com/Zewo/Mustache
Mustache templates for swift 3.0.

SQLite.swift
https://github.com/stephencelis/SQLite.swift
簡單、輕量,使用上最SQL的SQLite封裝庫

SugarRecord
https://github.com/pepibumur/SugarRecord
基于CoreData與REALM的好用封裝

SweetAlert
https://github.com/codestergit/SweetAlert-iOS
帶動畫效果彈窗封裝類

RAMAnimatedTabBarController
https://github.com/Ramotion/animated-tab-bar
靈動的動畫標簽欄類庫

PNChart-Swift
https://github.com/kevinzhow/PNChart-Swift
帶動畫效果的圖表控件庫

LTMorphingLabel
https://github.com/lexrus/LTMorphingLabel
各種文字動畫效果

Cartography
https://github.com/robb/Cartography
用代碼解決麻煩的AutoLayout

FontBlaster
https://github.com/ArtSabintsev/FontBlaster
在app里加載自定義字體更簡單。

開源庫

name describe
FMDB 本地數(shù)據(jù)庫組件
UICKeyChainStore 存放用戶賬號密碼組件
Reachability 監(jiān)測網(wǎng)絡狀態(tài)
DateTools 友好化時間
MWPhotoBrowser 一款簡單的iOS照片瀏覽控件
CTAssetsPickerController 一個選擇器組件, 支持從用戶的相片庫選擇多張照片和視頻。
QBPopupMenu 無需使用圖片文件的 iOS 彈出式菜單
UAAppReviewManager 一個能夠讓你方便地將提醒用戶評分的功能加入 App 的工具
Mantle 主要用來將 JSON 數(shù)據(jù)模型化為 Model 對象
MTLFMDBAdapter Mantle 和 FMDB 的轉換工具
FMDBMigrationManager 支持 iOS SQLite 數(shù)據(jù)庫遷移
Bugsnag 集成 Bugsnag 到應用中
GVUserDefaults 對 NSUserDefaults 進行了封裝, 方便的進行本地化存儲操作
FCCurrentLocationGeocoder 對用戶當前地理位置進行正向地址編碼和反向地址編碼
AFSwipeToHide 頁面滾動時隱藏工具欄
BaiduTranslate 非官方百度翻譯工具
JSBadgeView 添加帶動畫效果的未讀消息數(shù)提醒
Masonry 一個輕量級的布局框架, 用于替換官方的 AutoLayout 寫法
MMPlaceHolder 可在應用中顯示視圖的尺寸
TOWebViewController 可在應用中嵌套 Web 頁面
VPImageCropper VPImageCropper 可以讓你輕松實現(xiàn)微信選取圖片并裁剪成頭像的控件。
JCScrollView 快速給應用視圖添加滾動分頁效果
BWTitlePagerView 創(chuàng)建類似 Twitter 的導航欄分頁效果
CNPPopupController 創(chuàng)建彈出卡片視圖
FeSpinner 加入沙漏等多種動畫加載效果
PulsingHalo 脈沖動畫效果,可以自定義脈沖的顏色和擴散半徑??梢杂米鳎?、地圖的個人位置標注;2、發(fā)射信號的燈塔。
JMHoledView 方便創(chuàng)建用戶引導視圖
RKNotificationHub 添加未讀消息數(shù)顯示提醒
CRToast 從應用狀態(tài)欄彈出消息提醒
KeychainIDFA 獲取IDFA標示當設備唯一識別, 并保存到KeyChain中
DZNEmptyDataSet 為 TableView 和 CollectionView 展示空數(shù)據(jù)視圖
SwipeView 快速給應用添加上滑動視圖
FXBlurView 對視圖進行模糊操作
AreaPicker 中國省市地區(qū)選擇器
MPTextView 支持占位符的 UITextView 子類擴展
MagicalRecord 幫助清除 CoreData 引用的代碼, 協(xié)助 CoreData 工作
THProgressView 微型加載進度條
WCAlertView 對官方 Alert View 進行封裝, 更加容易使用
GMGridView GMGridView是一款開源的iOS(iPhone/iPad)表格視圖,允許用戶手勢對表格單元進行排序,在單元格需要展示時才進行裝載,這樣極大地提高了表格的效率。其中的伸縮/旋轉/平移手勢能夠讓用戶改變視圖,還能夠實現(xiàn)從CellView到全屏的切換。
Reader 該項目能夠讓iOS開發(fā)者輕而易舉地在iOS設備屏幕上顯示PDF文件。代碼通用,不需要任何XIB(因為所有UI元素都是代碼生成的,具有極大的靈活性),運行于iOS 4.0及其以上版本設備中,同時還支持所有Retina Display設備。
AwesomeMenu 路徑的菜單效果,當年橫空出世的Path 其優(yōu)美的設計 精彩的動畫,而最贊的 就是它的彈出菜單 一時成為了每個APP爭相模仿的對象,有了AwesomeMenu 你可以輕易的實現(xiàn)它。
SBJson JSON (JavaScript Object Notation) is a light-weight data interchange format that's easy to read and write for humans and computers alike. This library implements chunk-based JSON parsing and generation in Objective-C.
OHAttributedLabel 富文本OHAttributedLabel
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容