前言
一个APP的诞生肯定少不了站在巨人的肩膀上,所以使用这些开源的库,可以让你的开发更加的顺利,快速。
网络请求
-
Alamofire (Swift)
封装好的网络请求参考这里 - AFNetworking (OC)
-
SwiftyJSON (Swift)
Swift中网络请求的数据处理,使用起来非常非常方便,文档中用法也非常详细
MVC(Model数据转模型相关)
ObjectMapper(Swift)
Swift中Model数据转模型使用,是MVC架构中绑定数据很有用的框架
使用方法参考EZSwiftExtensions(OC)
OC 中数据转模型使用框架,具体用法Github上也有详细的讲解MJExtension(OC)
转换速度快、使用简单方便的字典转模型框架AlamofireObjectMapper
配合** ObjectMapper**使用的网络请求扩展MBNetWork
基于 Alamofire 封装的网络请求库,可以更方便地在视图上展示请求状态。配合Alamofire,ObjectMapper,AlamofireObjectMapper使用HandyJSON(Swift)
HandyJSON是一个用于Swift语言中的JSON序列化/反序列化库。
与其他流行的Swift JSON库相比,HandyJSON的特点是,它支持纯swift类,使用也简单。它反序列化时(把JSON转换为Model)不要求Model从NSObject继承(因为它不是基于KVC机制),也不要求你为Model定义一个Mapping函数。只要你定义好Model类,声明它服从HandyJSON协议,HandyJSON就能自行以各个属性的属性名为Key,从JSON串中解析值。
图片加载
- SDWebImage(OC)
-
Kingfisher (Swift)
网络图片加载,可以添加默认图片等,会对网络图片进行缓存
界面布局
Masonry(OC)
布局约束非常好用的框架,详情参见githubSnapKit (Swift)
布局约束非常好用的框架,为Masonry的Swift版,详细的用法可参考航哥知识平台
键盘
-
IQKeyboardManager (Swift&&OC)
你还在为处理键盘的弹出收起而苦恼吗?处理键盘遮挡问题,谁用谁知道,导入即可使用,不用增加代码。
//几个属性,可在某些特殊界面定制
#import <IQKeyboardManager/IQKeyboardManager.h>
[IQKeyboardManager sharedManager].enable = YES; //是否启用
[IQKeyboardManager sharedManager].enableAutoToolbar = YES;//是否显示上面的toolbar
[IQKeyboardManager sharedManager].shouldResignOnTouchOutside = NO;//是否点击空白区域隐藏键盘
界面
MBProgressHUD (OC)
HUD&Toast的显示,最好是自己封装下再使用,封装参考iCarousel (OC)
滑动轮播图,可实现多种样式的滑动轮播效果CNPPopupController(OC)
弹窗,比较轻便的一个pop组件,用起来还不错SDCycleScrollView(OC)
轮播图控件,无限循环图片、文字轮播器。JXCategoryView(OC)
腾讯新闻、今日头条、QQ音乐、网易云音乐、京东、爱奇艺、腾讯视频、淘宝、天猫、简书、微博等所有主流APP分类切换滚动视图-
EasyTipView(Swift&&OC)
友好地对用户展示操作提示库
XLActionController(Swift)
样式丰富的 Action Sheet 组件。LCActionSheet(OC)
仿微信的Action sheet组件HHTransition(OC)转场动画
各种主流的转场效果都有简书地址AGGeometryKit
图像形变处理库,可以处理一些不规则形变, 下面是一些实例代码
- (void)initView {
UIImageView *view = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 1, 1)]; // create a view
view.image = [UIImage imageNamed:@"img_190"];
[self.view addSubview:view];
[view.layer ensureAnchorPointIsSetToZero]; // set the anchor point to [0, 0] (this method keeps the same position)
AGKQuad quad = view.layer.quadrilateral;
quad.br.x += 20; // shift bottom right x-value with 20 pixels
quad.br.y += 50; // shift bottom right y-value with 50 pixels
quad.tr.x += 30;
view.layer.quadrilateral = quad; // the quad is converted to CATransform3D and applied
}
navigationBar&&statusBar
-
FDFullscreenPopGesture(OC)
丝滑的处理导航栏的显示和隐藏,直接导入项目中,不需要加入一行代码,下面是比较常用的两个设置。
//单个viewController 关闭侧滑手势
self.fd_interactivePopDisabled = YES;
//隐藏NavBar
self.fd_prefersNavigationBarHidden = YES;
WRNavigationBar(OC)
超简单!!! 一行代码设置状态栏、导航栏按钮、标题、颜色、透明度,移动等WELCustomStatusbarColor
一行代码更改状态栏的颜色
动画
spruce-ios(Swift)
轻便的动画库,可以尝试使用,让app更吸引人lottie-ios
Lottie是一个可以解析使用【bodymovin】插件从 Adobe After Effects中导出的格式为 json 的文件,并在 iOS、Android、macOS、React Native 中进行解析使用的开源库。
刷新
-
MJRefresh(OC)
上拉加载,下拉刷新,可以自定义实现多种样式
日期选择器
DatePicker(OC)
很方便实用的一个日期选择器SZCalendarPicker(OC)
按日展示的日期选择器
照片选择
-
TZImagePickerController
一个支持多选、选原图和视频的图片选择器,同时有预览、裁剪功能,支持iOS6+,微信风格
日历
-
FSCalendar
好用的日历控件
工具
-
TalkingData
移动数据服务平台,可以对app进行多方面的监测,用于统计数据分析等。 -
信鸽推送
顾名思义,是移动App推送平台 -
ShareSDK
提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台,支持包括QQ、微信、新浪微博、腾讯微博等国内外40多家的主流社交平台,帮助开发者轻松实现社会化分享、登录、关注、获得用户资料、获取好友列表等主流的社会化功能。 -
腾讯Bugly
腾讯Bugly,为移动开发者提供专业的异常上报,运营统计和内测分发解决方案,帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。
存储相关
SwiftyUserDefaults
对UserDefaults做了进一步的封装,使用起来比较方便。MagicalRecord
CoreData 数据存储管理工具,可以方便的增删改查,玩转CoreData必备的工具
相机相册图片处理
-
PhotoPicker(Swift)
类似微信的实现照片多选的功能 -
TZImagePickerController(OC)
一个支持多选、选原图和视频的图片选择器,同时有预览、裁剪功能
其他
-
OCR(OC)
身份证扫描,识别速度特别快,可以快速识别出身份证正反面所有的信息,但是使用了这个框架后就不能用模拟器进行运行程序了,会报错,具体解决办法我也没找到,如果你解决了请留言给我,谢谢。 -
card.io-iOS-SDK
银行卡识别框架,具体使用参考 -
PPGetAddressBookSwift
通讯录的处理,可以自己设置通讯录排列样式 -
EZSwiftExtensions
swift中的各种Extensions,总有方便你使用的 -
KMCGeigerCounter(OC)
监测app的卡顿情况,具体介绍参考
注:使用时注意文章最后的PS,加在AppDelegate中会报错的,要加载viewController中 -
MLeaksFinder(OC)
监测app有无内存泄漏情况,直接导入就可以,不用添加任何代码,在有内存泄露的界面就会弹出窗口提醒。