关于目前自己iOS项目使用的第三方开源库
1.AFNetworking
目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理。
2.FMDB
对sqlite数据库操作进行了封装,demo也比较简单。
3.MBProgressHUD
也是iOS项目常用的一个组件,用于显示过渡效果的,比如网络请求之前显示loading,网络结束隐藏loading。建议封装在BaseViewController中,所有ViewController继承就能使用。
4.MJRefresh
这个是传智播客李明杰老师的作品,自己的oc基础就是看他的视频半个周末就基本拿下了。MJRefresh主要用于刷新操作,提供了常用的刷新操作,还有刷新动画,用着很好用。建议把方法封装在BaseViewController中,这样修改刷新操作时,就只需要改动一份。(之前用的旧版MJRefresh,只支持普通的刷新,不支持动画,后来更新后版本变化比较大,旧的方法已经不推荐使用了,所以还是封装基类中使用比较好,方便以后修改)
5.SDWebImage
也是iOS最常用的一个组件,用户加载网络图片,可以缓存到本地。大概原理时,第一次加载后,会根据url加密作为文件名缓存在本地,如果再次加载图片时,就直接从本地加载。用着也比较简单。这里也分享遇到的一个问题,先从网络加载一张小图,然后小图作为占位图,再从网络加载一张大图。
6.RDVTabBarController
一个TabBar组件,可以方便设置底部菜单的文字图片,点击效果,小红点提示等。
7.Toast
类似android的toast提示效果,封装在BaseViewController中,需要的地方进行提示。
8.XMPPFramework
iOS唯一的xmpp类库,作者在去年8月份添加了xep-0198协议支持(流管理,用于xmpp断线重连),但是通过pod进行更新时,无法下载到最新版本,可能0198还没有完善好,无法作为正式版。
9.TPKeyboardAvoiding
用户键盘弹出自动计算高度,进行屏幕滚动操作。
10.AMR
做即时通讯的音频处理,目前我们的即时通讯使用的录音文件是m4a,便于web端的音频播放。
11.TQRichTextView
用于做富文本视图控件显示,用于即时通讯的表情显示,以及资源评论的富文本显示。
12.CSGrowingTextView
用作即时通讯文本框和评论文本框使用,可以显示多行输入。
13.MJExtension
也是李明杰老师的作品,用于json转model进行使用,有点类似于java中谷歌的Gson。转换效率据说也很高,使用也比较简单,只要前后台约定好,json直接就转成了model。一个工作多年的iOS朋友说,一个项目主要的是对model层的管理,他推荐的是Mantle。不过MJ这个更轻量级点,用着也更加简单。
用到的组件
1、通过CocoaPods安装
项目名称 | 项目信息 |
---|---|
AFNetworking | 网络请求组件 |
FMDB | 本地数据库组件 |
SDWebImage | 多个缩略图缓存组件 |
UICKeyChainStore | 存放用户账号密码组件 |
Reachability | 监测网络状态 |
DateTools | 友好化时间 |
MBProgressHUD | 一款提示框第三方库 |
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 页面 |
2、第三方类库安装
项目名称 | 项目信息 |
---|---|
MJRefresh | 下拉刷新,上拉加载更多组件 |
VPImageCropper | 用户上传头像组件 |
JCScrollView | 快速给应用视图添加滚动分页效果 |
BWTitlePagerView | 创建类似 Twitter 的导航栏分页效果 |
CNPPopupController | 创建弹出卡片视图 |
FeSpinner | 加入沙漏等多种动画加载效果 |
PulsingHalo | 涟漪动画效果 |
JMHoledView | 方便创建用户引导视图 |
RKNotificationHub | 添加未读消息数显示提醒 |
CRToast | 从应用状态栏弹出消息提醒 |
KeychainIDFA | 获取 IDFA 标示当设备唯一识别, 并保存到 KeyChain 中 |
DZNEmptyDataSet | 为 TableView 和 CollectionView 展示空数据视图 |
SwipeView | 快速给应用添加上滑动视图 |
FXBlurView | 对视图进行模糊操作 |
AreaPicker | 省市地理位置选择器 |
MLAudioRecorder | 边录边转码, 播放网络音频Button(本地缓存), 实时语音 |
MPTextView | 支持占位符的 UITextView 子类扩展 |
MagicalRecord | 帮助清除 CoreData 引用的代码, 协助 CoreData 工作 |
THProgressView | 微型加载进度条 |
VPImageCropper | 轻松实现微信选取图片并裁剪成头像的控件 |
WCAlertView | 对官方 Alert View 进行封装, 更加容易使用 |
3、第三方服务
关于目前自己iOS项目使用的第三方开源库的更多相关文章
- iOS CocoaPods自动管理第三方开源库
最近在开发中发现在项目中使用了好多第三方库,然而第三方更新的时候本地却不能及时更新.然而CocoaPods则可以管理第三方依赖包的更新,这些“体力活”会被节省好多时间,下面介绍一下CocoaPods的 ...
- iOS项目中常用的第三方开源库
1.项目使用的第三方开源库 项目使用了CocoaPods(类似java中的maven)管理常用的第三方库,一些特殊的单独引用,下面介绍下比较好用的几个. (1)AFNetworking 目前比较推荐的 ...
- iOS项目开发常用功能静态库
YHDeveloperTools iOS项目开发常用功能静态库 查看源码 功能方法: 1.字符检查 [NSString checkStringWithType:Email andTargetStrin ...
- 在 Ionic2 TypeScript 项目中导入第三方 JS 库
原文发表于我的技术博客 本文分享了在Ionic2 TypeScript 项目中导入第三方 JS 库的方法,供参考. 原文发表于我的技术博客 1. Typings 的方式 因在 TypeScript 中 ...
- 如何在Ionic2项目中使用第三方JavaScript库
onic的官网放出一记大招Ionic and Typings,来介绍如何在Ionic2项目中使用第三方JavaScript库. 因为在前阵子正好想用一个非常有名的第三方JS库ChartJs来实现一些东 ...
- 粉笔网iPhone端使用的第三方开源库
粉笔网iPhone端使用的第三方开源库 前言 最近有朋友问我粉笔网 iPhone 端使用了哪些第三方的开源库.我在这儿整理了一下,分享给大家. ASIHttpRequest ASIHttpReques ...
- CocoaPods:管理Objective-c 程序中各种第三方开源库关联
在我们的iOS程序中,经常会用到多个第三方的开源库,通常做法是去下载最新版本的开源库,然后拖拽到工程中. 但是,第三方开源库的数量一旦比较多,版本的管理就非常的麻烦.有没有什么办法可以简化对第三方库的 ...
- (转)CocoaPods:管理Objective-c 程序中各种第三方开源库关联
在我们的iOS程序中,经常会用到多个第三方的开源库,通常做法是去下载最新版本的开源库,然后拖拽到工程中. 但是,第三方开源库的数量一旦比较多,版本的管理就非常的麻烦.有没有什么办法可以简化对第三方库的 ...
- 第三方开源库和jar包的区别
jar包和第三方开源库的根本区别在于,开源库的功能比jar包功能更强大,通过引入库项目可以访问java文件以及该开源库项目下的资源文件,例如图片,layout等文件 jar包中只能放class文件 引 ...
随机推荐
- 如何利用vue和php做前后端分离开发?
新手上路,前端工程师,刚毕业参加工作两个月,上面让我用vue搭建环境和php工程师一起开发,做前后端分离,然而我只用过简单的vue做一些小组件的经验,完全不知道怎样和php工程师配合,ps: php那 ...
- 30分钟学玩转RabbitMQ
最近在学习RabbitMQ,在网上找了不少资料发现都特高端.动辄集群部署,分布式架构什么的,对于一个初学者实在不够友好.心想求人不如求自己,为什么不自己整理一套资料呢?于是<30分钟学玩转Rab ...
- Java数据持久层框架 MyBatis之API学习三(XML 映射配置文件)
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...
- [知了堂学习笔记]_css3特效第一篇--旋转的背景&翻书效果
一.html遮盖层与css3的旋转动画 >效果图(加载可能会慢一点儿,请稍等...): >实现思路:在一个大的div中装入一个底层img和顶层的div(里面的内容按照以上图片呈现的样式布局 ...
- Android开发之漫漫长途 XIII——Fragment最佳实践
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...
- 单词拼写检查之cutoff距离
前言 cutoff是一个比较冷门的概念,相比于DP经典算法的编辑距离,cutoff距离只局限于自然语言处理领域.提出cutoff距离的起因很简单,因为经典的编辑距离无法很好地衡量在字符串搜索过程中的编 ...
- python3 第四章 - 输入与输出
1.输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. print('hello, world') 输入以上代码,执行后输出: hello, world 事实上,任何基本类型都可 ...
- linux_ssh
什么是ssh? 配置文件位置:/etc/ssh/sshd_config 远程登录和为其他网络提供安全的加密数据传输协议,默认端口22,默认协议是SSH2 # 远程终端通过ssh连接服务器管理服务器 # ...
- linux_磁盘分区
分区并没有数据内容只是改变分区表,保存在0磁头,0磁道1扇区除MBR引导后64bytes中,只能有4个组分区,4个以上要一个扩展分区 引导MBR,保存在446字节中 磁盘想要存放数据,首先要分区,可以 ...
- 爬虫_url去重策略
如何对url去重? 将访问url保存到数据库中,效率低,最简单 将url保存到set中,查询速度快,但当url达到1亿多条时候,占用太多内存空间 将url经过md5等方法哈希后保存到set中 用bit ...