iOS开发-常用第三方开源框架
分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有更多的时间和精力能更加专注的做好自己的产品
Objective-C篇
AFNetworking
https://github.com/AFNetworking/AFNetworking
在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目。AFNetworking是一个轻量级的iOS、Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库。它建立在NSURLConnection、NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单,因此,许多iOS应用开发都会使用到它。
支持HTTP请求和基于REST的网络服务(包括GET、POST、PUT、DELETE等);
支持ARC;
要求iOS 5.0及以上版本;
有一些插件扩展已有的功能,还有一个功能齐全的API;
从URL中获取JSON特别简单。
SDWebImage
https://github.com/rs/SDWebImage
图片异步下载和缓存管理的集大成者 UITableView的黄金搭档 其代码被开发者研究分享过无数次喵大的Kingfisher(可以说是Swift版的SDWebImage)也是深受其影响;
异步下载AFNetworking和MKNetworkKit都有实现 数据缓存也有FastImageCache与TMCache等 但是将其融会贯通的 唯有SDWebImage了;
除了简单的使用sd_setImageWithURL之外 SDImageCache也是可以独立使用的 功能也相当之强大。
MBProgressHUD
https://github.com/jdg/MBProgressHUD
简单易用且稳定的HUD组件,半透明黑底白字的风格也经久不衰,loading提示的最佳选择。
SVProgressHUD
https://github.com/SVProgressHUD/SVProgressHUD
另一个牛叉的单例HUD,SVProgressHUD能够实现多种HUD效果,多用于程序正在执行耗时较长的任务,需要用户等待。除了显示等待的HUD,还可以显示命令执行成功或者失败的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
实现控制器翻页的简单解决方法
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 的之类,实现了通过正则表达式对输入值进行限制的功能。
FDFullscreenPopGesture
https://github.com/forkingdog/FDFullscreenPopGesture
利用Runtime自定义控制器POP手势动画
EScrollerView
https://github.com/Gorilla957/EScrollerView
一个可以自动滚动的跑马灯(幻灯、图片滚动)
Swift篇
Alamofire
https://github.com/Alamofire/Alamofire
Alamofire是一个用Swift写的优雅的网络库。你曾经用过AFNetworking吗?ALamofire是它的弟弟。年轻也更有才华,当然啦(AFNetworking是用Objective-C写的)。
当你想要抽象简化App中的网络请求时,Alamofire是你需要的,Alamofire是一个Http网络请求库,构建在NSURLSession和基础URL加载系统之上,它用简单优雅的接口很好的封装了网络请求。
SwiftyJSON
https://github.com/SwiftyJSON/SwiftyJSON
Swift的Explicit types(显示类型)可以确保我们不会在代码中犯错和出现bug。但是有时处理起来还是比较麻烦,特别是和JSON打交道的时候。幸运的是,SwiftyJSON提供了可读性更好的方式帮我们处理JSON数据。还提供了可选的自动解析!
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)开发框架,它的灵感来自于RSpec,Specta, 和Ginkgo。配合Nimble一起使用,Nimble是一个测试匹配框架。
Eureka
https://github.com/xmartlabs/Eureka
Eureka可以帮你简单优雅的实现动态table-view表单。它由rows,sections和forms组成。如果你的app包含大量表单,Eureka可以真正帮你节省时间。
RxSwift
https://github.com/ReactiveX/RxSwift
RxSwift是一个基于Swift的的函数式响应编程框架。更具体点,RxSwift是是Rx的一个Swift语言版本(还有Java版本RxJava,js->RxJs)它的目标是让异步和事件数据流操作更简单。KVO observing, async operations and delegates are all unified under abstraction of sequence(还没来的及学习掩面哭),如果你已经使用过ReactiveCocoa,你接受起来会比较简单(都是函数式编程思想)
SnapKit
https://github.com/SnapKit/SnapKit
SnapKit是一个用少量代码写出不丢可读性auto layout的AutoLayout库。
Spring
https://github.com/MengTo/Spring
Spring是一个可以帮你用代码或者直接在Storybard创建动画的动画库,在Storyboard你可以用runtime(通过设置IBInspectable属性)来创建动画,Spring已经成长为一个全面发展的动画库 支持很多已经存在的动画。
Kingfisher
https://github.com/onevcat/Kingfisher
Kingfisher是一个轻量的下载和缓存网络图片库。下载和缓存是异步进行操作,已经下载好的图片会缓存在内存和本地,极大得提高app的体验。
CoreStore
https://github.com/JohnEstropia/CoreStore
CoreStore是一个基于Core Data的封装库。它的目标是安全优雅和Core Data进行交互。CoreStore的API提供了常用的有效的方法让你和你的数据库进行交互。
ReachabilitySwift
https://github.com/ymsheng/ReachabilitySwift
SnappingStepper
https://github.com/yannickl/SnappingStepper
SnappingStepper 是用 Swift 写成的一个 UIStepper 的优雅的替代品,有拇指滑块,可更加灵活地控制数值更新。
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 | 本地数据库组件 |
UICKeyChainStore | 存放用户账号密码组件 |
Reachability | 监测网络状态 |
DateTools | 友好化时间 |
MWPhotoBrowser | 一款简单的iOS照片浏览控件 |
CTAssetsPickerController | 一个选择器组件, 支持从用户的相片库选择多张照片和视频。 |
QBPopupMenu | 无需使用图片文件的 iOS 弹出式菜单 |
UAAppReviewManager | 一个能够让你方便地将提醒用户评分的功能加入 App 的工具 |
Mantle | 主要用来将 JSON 数据模型化为 Model 对象 |
MTLFMDBAdapter | Mantle 和 FMDB 的转换工具 |
FMDBMigrationManager | 支持 iOS SQLite 数据库迁移 |
Bugsnag | 集成 Bugsnag 到应用中 |
GVUserDefaults | 对 NSUserDefaults 进行了封装, 方便的进行本地化存储操作 |
FCCurrentLocationGeocoder | 对用户当前地理位置进行正向地址编码和反向地址编码 |
AFSwipeToHide | 页面滚动时隐藏工具栏 |
BaiduTranslate | 非官方百度翻译工具 |
JSBadgeView | 添加带动画效果的未读消息数提醒 |
Masonry | 一个轻量级的布局框架, 用于替换官方的 AutoLayout 写法 |
MMPlaceHolder | 可在应用中显示视图的尺寸 |
TOWebViewController | 可在应用中嵌套 Web 页面 |
VPImageCropper | VPImageCropper 可以让你轻松实现微信选取图片并裁剪成头像的控件。 |
JCScrollView | 快速给应用视图添加滚动分页效果 |
BWTitlePagerView | 创建类似 Twitter 的导航栏分页效果 |
CNPPopupController | 创建弹出卡片视图 |
FeSpinner | 加入沙漏等多种动画加载效果 |
PulsingHalo | 脉冲动画效果,可以自定义脉冲的颜色和扩散半径。可以用作:1、地图的个人位置标注;2、发射信号的灯塔。 |
JMHoledView | 方便创建用户引导视图 |
RKNotificationHub | 添加未读消息数显示提醒 |
CRToast | 从应用状态栏弹出消息提醒 |
KeychainIDFA | 获取IDFA标示当设备唯一识别, 并保存到KeyChain中 |
DZNEmptyDataSet | 为 TableView 和 CollectionView 展示空数据视图 |
SwipeView | 快速给应用添加上滑动视图 |
FXBlurView | 对视图进行模糊操作 |
AreaPicker | 中国省市地区选择器 |
MPTextView | 支持占位符的 UITextView 子类扩展 |
MagicalRecord | 帮助清除 CoreData 引用的代码, 协助 CoreData 工作 |
THProgressView | 微型加载进度条 |
WCAlertView | 对官方 Alert View 进行封装, 更加容易使用 |
GMGridView | GMGridView是一款开源的iOS(iPhone/iPad)表格视图,允许用户手势对表格单元进行排序,在单元格需要展示时才进行装载,这样极大地提高了表格的效率。其中的伸缩/旋转/平移手势能够让用户改变视图,还能够实现从CellView到全屏的切换。 |
Reader | 该项目能够让iOS开发者轻而易举地在iOS设备屏幕上显示PDF文件。代码通用,不需要任何XIB(因为所有UI元素都是代码生成的,具有极大的灵活性),运行于iOS 4.0及其以上版本设备中,同时还支持所有Retina Display设备。 |
AwesomeMenu | 路径的菜单效果,当年横空出世的Path 其优美的设计 精彩的动画,而最赞的 就是它的弹出菜单 一时成为了每个APP争相模仿的对象,有了AwesomeMenu 你可以轻易的实现它。 |
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 |
网友评论