轮子图
现在对于我们 iOS 开发来说,基本上说不可能不使用第三方轮子啦,毕竟没那么多时间,而且自己造的轮子往往想着成为上图中的最后一个,结果却成了上图中第二个或第一个啦,当然大公司另当别论。下面我从之前用过的第三方轮子和看到不错的轮子进行总结一下。
一、基本流程使用的第三方轮子
二、列表相关的轮子
三、图片相关的轮子
四、其他可能用的轮子
一、基本流程使用的第三方轮子
基本流程使用的第三方轮子
Reachability
Masonry
SnapKit
AFNetworking
Alamofire
YTKNetwork
YYModel
Mantle
JSONModel
SwiftyJSON
MBProgressHUD
SVProgressHUD
JGProgressHUD
FMDB
Realm
上述是有重复同一功能的,而如何选择呢,这个我们可以根据项目的具体情况来确定。
二、列表相关的轮子
列表相关的轮子
MJRefresh
EGOTableViewPullRefresh:(这个不更新了,但刚开始用就是它,有感情)
SVPullToRefresh
DZNEmptyDataSet
CHTCollectionViewWaterfallLayout
UICollectionViewLeftAlignedLayout
UITableView+FDTemplateLayoutCell
SWTableViewCell
RETableViewManager: 自定义TableView 多种类型的展示。
其他还有很多类似功能的,这是我个人从中选择的几个,后续添加中......
三、图片相关的轮子
图片相关的轮子
YYWebImage
SDWebImage
MWPhotoBrowser
IDMPhotoBrowser
HUPhotoBrowser
QBImagePicker
CTAssetsPickerController
TZImagePickerController: 很赞,很实用。
FastImageCache:加载图片速度的优化,很厉害
PS:简友CoderKo1o加:PYPhotoBrowser(图片浏览,功能完善中···)
此处Browser 和 Picker 功能是有些重复的,还是看项目需求来选择吧。
四、其他可能用的轮子
4-1、偏工具类的轮子
####### 键盘上移
IQKeyboardManager:零行代码解决键盘上移的问题
####### 图表
PNChart:各种图表的展示
Charts:Swift Charts
####### 侧滑
MMDrawerController:侧边栏的 Controller
RESideMenu: QQ 侧边栏的效果
ENSwiftSideMenu: 简洁版的侧滑菜单
####### 聊天
UUChatTableView:聊天对话的时候,可以参考
JSQMessagesViewController:也是聊天对话的,个人认为更适合
####### 蓝牙
BabyBluetooth: 一个易使用的蓝牙库
BluetoothKit: 让我们更容易的操作蓝牙的封装库,Swift
####### 头部TabBar
VTMagic: 类似网易、腾讯等应用的菜单分页组
DLSlieView:也是类似网易上部选择导航的效果
HMSegmentedControl:选择 (可以和DLSlieView比较一下)
GUITabPagerViewController: 也是上部 tabBar 点击或滑动的效果
WMPageController: 同上顶部导航VC 切换
####### 底部TabBar
ESTabBarController: TabBar 的超多样式
CYLTabBarController: 号称低耦合集成TabBarController
####### 富文本
TTTAttributedLabel: 富文本的Label
TYAttributedLabel: 这个富文本貌似更直观些,可以和上面这个对比下
M80AttributedLabel: 这个也是可以瞧瞧的
ZSSRichTextEditor: 编辑富文本,棒棒的
####### 小控件
JSBadgeView:类似系统的 Badge,购物车时常用
JVFloatLabeledTextField: 特殊效果的textField
TextFieldEffects: 有标注的textFiled
VBFPopFlatButton: 各种稀奇古怪的动画button
FXBlurView:对视图进行模糊操作
SDCycleScrollView: 循环轮播
SCLAlertView: 自定义的UIAlertView,更漂亮哦
Shimmer:具有闪烁效果的第三方控件
####### 杂七杂八的
SAMKeychain: 保存keychain的
AESCrypt-ObjC: AES 加密/解密
Mobileplayer-ios: Swift 媒体播放器
PDTSimpleCalendar: 日历
PYSearch: 搜索类中,有热门标签、历史记录标签。
LBXScan: 二维码相关,ZXing、ZBar、iOS系统AVFoundation扫码封装,可自行选择。
4-2、不一定常用,但很有意思的一些动画轮子
CBStoreHouseRefreshControl:刷新时,不一样的动画
LTMorphingLabel:很cool 的文字展示
ZLSwipeableView: 不一样的翻页效果
Animated-tab-bar: 有动画的tabBar
Hamburger-button: 变换的 Button,个人比较喜欢
Folding-cell:点击Cell 时,有折叠的动画效果,很赞
4-3、另外一些第三方库,大
JSPatch:热修复,为项目动态添加模块,或替换项目原生代码动态修复 bug
ReactiveCocoa: 函数响应式编程,使用 MVVM 搭
RxSwift:Swift 函数响应式编程框架。
BlocksKit: blocks 包,喜欢用 Block的非常适合,学习 block 的好库。
JKCategories:iOS 中常用到的 Category ,可以好好学习
YYKit:庞大、丰富的 iOS 组件,也是学习的好地方。
CocoaAsyncSocket:异步 socket 通讯类库
GPUImage:图片过滤
AsyncDisplayKit:将图像解码、布局以及渲染操作放在后台线程,带来更好的用户交互体验的框架。
PromiseKit: 一个用来出来异步的编程框架(Swift)
暂时大部分记录的还是 Objective-C 相关的, 说真的 github 上还有好多优秀的轮子等待我们挖掘,当然有好的轮子也希望可以多互相分享,此处持续添加中······。
话又说回来,我个人还是一向遵循尽量用苹果本身提供的 API 的原则,虽说与上面有矛盾。毕竟引入一个第三方库有时还是有一些不确定的因素的,如果可能,尽量自己开发和实现相应的功能,第三方库尽量只作为参考。 (当然一切以开发速度为第一的情况下,那就先用吧)
PS: 备注 下面链接中还有一些我们可能会用到的,超多超全:
1、某公司用到的一些 iOS 开源库和第三方组件
2、TimLiu-iOS, 超多都看不过来
3、整理常用的iOS第三方资源。