常见的第三方库

第三方库的作用

1.分类

UI层

iOS 扁平风格 UI 库 FlatUIKit

AsyncDisplayKit是一款能够保持界面流畅性的iOS开源框架,即使是最复杂的用户界面

KMCGeigerCounterapp git老是不流畅

FlipBoard怎么播放GIF的时候这么卡

CMPopTipView —— 泡泡风格的提示界面

一个泡泡风格的提示框开源控件, 继承自UIView。iPad,iPhone通用。

MLTransition拖返可直接从中间拖返,可随意设置leftBarButtonItem,也可使用边界拖返模式

SWTableViewCell 实现了 iOS 7 的列表条目左侧滑动显示更多和删除操作的列表组件

ZLSwipeableView是一个方便做出卡片效果的UI库,支持各种卡片的滑动效

侧滑菜单ResideMenu,QQ侧滑

1、appirater

appirater是一个可以直接使用到任何iPhone应用中的开源类,用于提醒用户在打开App时,对应用进行评论或打分。

下载地址:https://github.com/arashpayan/appirater

2、FDStatusBarNotifierView

FDStatusBarNotifierView 实现了在状态栏中显示自定义提醒信息的功能。

下载地址:https://github.com/frankdilo/FDStatusBarNotifierView

3、MTStatusBarOverlay

MTStatusBarOverlay 是一个定制的 iOS状态栏,用于覆盖系统默认的状态栏。

下载地址:https://github.com/myell0w/MTStatusBarOverlay

JMTabView  —— 自定义标签栏和Tabbar

JMTabView是一个iOS自定义的标签栏开源控件,界面效果完全使用Core Graphics绘制,而没有用图片,所以内容很容易改为你需要的。

SBTableAlert —— 带表格视图的消息对话框

SBTableAlert对话框中提供了一种方式,在UIAlertView视图中包含了UITableView的效果,从而可以实现在UIAlertView中进行表格多选。使用简单。

MTStatusBarOverlay  —— 在状态栏上显示自定义的View

iOS程序通常会在最上面出现一个状态栏。使用这个库,可以很方便的在状态栏上显示一些信息,比如下载进度等。

url scheme iOS developer library

2.功能

PSCollectionView 是一个实现瀑布流效果的 iOS 滚动组件

iCarousel 实现3D效果实现旋转木马时的视图切换效果,支持 iPad,提供多种切换效果。

HMGLTransitions —— 视图切换动画

提供一些UIView或UIViewController切换时候的3D动画效果。比如翻转,开门,撕纸等。

闪光效果开源库shimmer的用法

IQKeyboardManager界面上的 UITextFields 和 UITextView 被弹出的键盘所挡住

TPKeyboardAvoiding 是一个下拉键盘在iOS移动文本字段的通用解决方案。 实现滚动控件,弹出键盘时,自动移动输入框位置,防止被键盘遮盖的功能

MWPhotoBrowser是一个非常不错的照片浏览器  https://github.com/mwaterfall/MWPhotoBrowser

720全景显示panoramagl

http://code.google.com/p/panoramagl/

3.网络

ASIHTTPRequest网络通信ASIHTTPRequest网络通信

这是一个经典的老库,功能完全而强大,但已经停止更新很久了(iOS5.0停止更新,但是我最近看github上这个项目有新改动)。在不同iOS版本上略微有一些小问题(提醒显示上的),所以用的时候还是稍微修改一下比较好。

AFNetworking

轻量级的通讯类库,使用非常简单。

MKNetworkKit

最近做的不错的一个通讯类库,具有AFNetworking和ASIHTTPRequest双方的优点,甚至功能更丰富一些,但是本人还没有使用过。

SocketAsyncSocket是封装了CFSocket和CFSteam的TCP/IP socket网络库

SocketRocket

SocketRocket是Square开发的一个实现webSocket的库,可以轻松的实现即时通信。

下载地址:https://github.com/square/SocketRocket

YTKNetwork 是 AFNetworking,YTKNetwork 提供了以下更高级的功能

SDWebImage库结构的简单分析

为UI控件提供网络图片加载和缓存功能,AF已经整合了此功能,一般用AF就够了,据专业人士说:SD比AF快0.02秒. 如果同时引入AF和SD, 那么AF的网络图片加载方法会被划线.

ASIHttpRequest——HTTP Network库

ASIHttpRequest库极大的简化了网络通 信,提供更先进的工具,例如文件上传工具,重定向处理工具、验证工具、等等。

skpsmtpmessage——Quick SMTP邮件发送

svn checkout http://skpsmtpmessage.googlecode.com/svn/trunk/ skpsmtpmessage-read-only

github:       git clone https://github.com/kailoa/iphone-smtp.git

相关教程:http://disanji.net/2011/01/28/skpsmtpmessage-open-source-framework/

skpsmtpmessage 是由Skorpiostech, Inc.为我们带来的一个SMTP协议的开源实现,使用Objective-c 实现,iOS系统的项目可以直接调

4.动画

DACircularProgress 圆环的进度显示

MJRefresh下拉刷新,上提加载快速集成

EGOTableViewPullRefresh —— 下拉列表刷新

使用这个库,很容易就可以实现下拉刷新效果。微博,RSS阅读器之类的软件经常使用。下拉刷新代码:https://github.com/enormego/EGOTableViewPullRefresh

EasyTableView -------横向滚动的UITablView

很实用的一个改造,实现了UItableView的横向滚动。。。

EasyTableView —— 可水平或垂直滚动的TableView

原始的UITableView只可以垂直滚动。EasyTableView可以很方便的实现TableView的水平滚动, 并可重复实现用户自定义的View,就类似重复使用UITableViewCell, 这对于提高效率很有帮助。

SVProgressHUD,显示菊花

MBProgressHUD  直接在View上show  ,在屏幕中间忙的“小菊花”

CorePlot——2D图形绘图仪

CorePlot有很多解决方案将你的数据可视。同时也会提供各种迷人的图形效果,比如棒状图、饼状图、线状图等等,在他们网站上也提供了大量的范例图形,很多股票价格应用,游戏分数,个人财务管理都在用。

GLGestureRecognizer ——手势识别器

封装了多种手势的识别器,例如三角形,长方形,圆形,五角星形等

5.数据库

FMDB数据库MYSQL  fmdb是一个数据库管理库,封装了sqlite相关的sql语句,简化数据库操作。

下载地址:https://github.com/ccgus/fmdb

6,解析

MJExtension(转换Array/dictionary —>对象模型,主要用于JSON解析 是 JSON 和模型之间最快捷方便的转换。

数据解析

1、SBJSON

SBJson的解析速度其实是比较慢的,但是不知道为什么它却是用的最广的。

下载地址:

2、JSONKit

JSONKit解析速度上最接近iOS原生解析类,当然iOS5.0才开始支持原生解析,所以选择一个库还是很必要的。

下载地址:https://github.com/johnezang/JSONKit

3、TouchJSON

TouchJSON用的也比较广泛.

下载地址:https://github.com/TouchCode/TouchJSON

4、json-framework

没有用过。

下载地址:https://github.com/stig/json-framework

5、TBXML

TBXML是一套轻量级的DOM方式的XML解析类库,有很好的性能和低内存占用,不过它不对XML格式进行校验,不支持XPath,并且只支持解析,不支持对XML进行修改。

下载地址:https://github.com/71squared/TBXML

6、TouchXML

TouchXML这也是一套DOM方式的XML解析类库,支持XPath,不支持XML的修改。

下载地址:https://github.com/TouchCode/TouchXML

7、KissXML

KissXML这是一套基于TouchXML的XML解析类库,只不过实现了支持XML的修改。

下载地址:https://github.com/robbiehanson/KissXML

8、GDataXML

GDataXML是Google开发的DOM方式XML解析类库,支持读取和修改XML文档,支持XPath方式查询。

下载地址:

xml解析:https://github.com/schwa/TouchXML

7.其他

CocoaLumberjack,分类分级的调试

BlocksKit 是一个开源的与Cocoa紧密集合的基础性框架,BlocksKit并没有创建新的宏,函数,方法和类

Masonry是一个轻量级的封装了Autolayout框架

ZipArchive解压zip文件  2 解压密码保护的zip文件  创建zip文件  追加到zip文件  压缩文件  使用一个名字来压缩NSData

https://github.com/mattconnolly/ZipArchive

2、ssziparchive

ssziparchive与sstoolkit是同一个作者,这哥们儿简直是个天才。

https://github.com/soffes/ssziparchive

3、ZipArchive

ZipArchive同样是minizip的封装。

https://github.com/mattconnolly/ZipArchive

4、Objective-Zip

Objective-Zip将Zlib和MiniZip用Objective-C进行了封装,使用起来非常简单。

https://github.com/flyingdolphinstudio/Objective-Zip

5、zxing

zxing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、DataMatrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端。

https://github.com/zxing/zxing

6、ZBar

ZBar 是款桌面电脑用条形码/二维码扫描工具,支持摄像头及图片扫描,支持多平台包括 iPhone 手机。同时 ZBar提供了二维码扫描的 API 开发包。

https://github.com/ZBar/ZBar

7、ObjQREncoder

ObjQREncoder 是 Objective-C 的二维码的编码器,用于生成二维码图像。

https://github.com/jverkoey/ObjQREncoder

条形码扫描:

http://zbar.sourceforge.net/iphone/sdkdoc/install.html

8、OpenUDID

OpenUDID是iOS禁止使用系统UDID之后的新解决方法。

https://github.com/ylechelle/OpenUDID

9、RegexKitLite

RegexKitLite 是一个轻量级的 Objective-C 的正则表达式库,支持 Mac OS X 和 iOS,使用ICU 库开发。

https://github.com/wezm/RegexKitLite

10、STUtils

STUtils是一系列的工具集,包含了很多对于iOS原生类的扩展,当然也包含一个用于安全保存用户密码STKeyChain。

https://github.com/ldandersen/STUtils

11、scifihifi-iphone

scifihifi-iphone用于安全保存用户密码到keychain中。

https://github.com/ldandersen/scifihifi-iphone

12、sskeychain

sskeychain同scifihifi-iphone一样,不过属于轻量级。

https://github.com/soffes/sskeychain

安全保存用户密码到keychain中:https://github.com/ldandersen/scifihifi-iphone

SFHFKeychainUtils(scifihifi-iphone)—— 保存用户密码到keychain中

为了用户安全,可以使用钥匙串Keychain来保存用户密码。SFHFKeychainUtils封装了钥匙串的访问, 读写,使用起来很方便。

扫描wifi信息:

http://code.google.com/p/uwecaugmentedrealityproject/

http://code.google.com/p/iphone-wireless/

OAuth认证:  http://code.google.com/p/oauth/

http://code.google.com/p/oauthconsumer/

cp/ip的通讯协议:

http://code.google.com/p/cocoaasyncsocket/

voip/sip:

http://code.google.com/p/siphon/

http://code.google.com/p/asterisk-voicemail-for-iphone/

http://code.google.com/p/voiphone/

three20

https://github.com/facebook/three20

Three20——类似于Facebook的优秀的UI库

Three20类库是Facebook自己做的,大而全是他最大的特色。把他整合到已有的项目中可能得费点周折,不过如果一开始你就用上了Three20,尤其是牵扯到很多web相关的项目的时候,你就能深刻体会到神马叫给力了。

google gdata

http://code.google.com/p/gdata-objectivec-client/

720全景显示panoramagl

http://code.google.com/p/panoramagl/

jabber client

http://code.google.com/p/ichabber/

PLBlocks

http://code.google.com/p/plblocks/

image processing

http://code.google.com/p/simple-iphone-image-processing/

json编码解码:http://code.google.com/p/json-framework

base64编码解码:http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/?r=87

异步加载图片并缓存代码:http://www.markj.net/iphone-asynchronous-table-image/

iphone TTS:https://bitbucket.org/sfoster/iphone-tts

iphone cook book 源码:https://github.com/erica/iphone-3.0-cookbook-

iphone  正则表达式:http://regexkit.sourceforge.net/RegexKitLite/

kal——iPhone日历控件

一个类似于ios系统默认日历开源日历库,支持添加事件,自定义日历样式等功能。

Facebook iOS SDK——Facebook API类库

大体来讲就是iPhone上的Facebook login,完全支持Facebook Graph API和the older REST api。

GData client——iPhone上所有Google相关服务的类库

名字就说明一切了。跟Google相关的,值得一提的是,这个项目很开放。有很多示例程序供下载。

Openear—— 语音识别和TTS

提供了语音识别和Text-to-speach 的接口

语音识别:http://www.politepix.com/openears/

Google Toolbox for Mac(GTM)—— 从不同Google项目收集的代码

包含各种的工具类。比如字符串的base64及二进制编码解码, 系统版本号比较, 路径查找等等。每个工具类都比较独立, 可单独抽出来使用。

MKStoreKit —— 程序内购买

程序内购买的流程的封装。

蓝牙协议栈:http://code.google.com/p/btstack/

zlib, openssl:http://code.google.com/p/ios-static-libraries/

地球显示信息:http://code.google.com/p/whirlyglobe/

8,第三方分享

ShareSDK支持分享到新浪微博、微信好友、微信朋友圈、QQ好友、腾迅微博、QQ空间、人人网、开心网、豆瓣、搜狐微博、网易微博、短信、邮件、打印、拷贝等。但是由于这个SDK包很大,所以用的时候一定要精简一下。下载地址:http://sharesdk.cn/Download

14、umeng

umeng既有统计分析,也有社会化组件。但是统计分析的用户数似乎明显多于其社会化组件的用户。

http://dev.umeng.com/analytics/ios/sdk-download

shareKit——分享库

相关demo:http://www.cocoachina.com/bbs/read.php?tid-71760.html

分享到开心,豆瓣,腾讯,新浪微博的api所用到的强大的分享库。

上面是总结的,不同功能的第三方库,下面由于图像有问题,就暂时没有上去


1.AsyncDisplayKit

2.作用AsyncDisplayKit是一款能够保持界面流畅性的iOS开源框架,即使是最复杂的用户界面,也可以让其流畅运行并快速响应。 AsyncDisplayKit不止是Paper的组成部分,与Facebook神奇的动画引擎Pop也是关系密切。

3.效果

用法:http://www.oschina.net/p/asyncdisplaykit

2.IOS 字典模型互转框架 MJExtension(转换Array/dictionary —>对象模型,主要用于JSON解析)

参考:https://github.com/CoderMJLee/MJExtension

作用,模块的转换

3.BlocksKit http://www.th7.cn/Program/IOS/201507/512932.shtml            http://www.myexception.cn/mobile/1907133.html

BlocksKit 是一个开源的与Cocoa紧密集合的基础性框架,BlocksKit并没有创建新的宏,函数,方法和类,只是对Cocoa类的一个扩展,是一个blocks的大杂碎,也是Zachary Waldowski集思广益精炼得来的,说白了它就是利用blocks的优势,给Cocoa类增加了一系列实用方法, 比如让NSObject执行blocks,用blocks对UIView增加触摸动作。

就是用target  action forControlEvents  用block 代替

4.CocoaAsyncSocket

AsyncSocket是封装了CFSocket和CFSteam的TCP/IP socket网络库。它提供了异步操作,本地cocoa类的基于delegate的完整支持。主要有以下特性:

• 队列的非阻塞的读和写,而且可选超时。你可以调用它读取和写入,它会当完成后告知你

• 自动的socket接收。如果你调用它接收连接,它将为每个连接启动新的实例,当然,也可以立即关闭这些连接

• 委托(delegate)支持。错误、连接、接收、完整的读取、完整的写入、进度以及断开连接,都可以通过委托模式调用

• 基于run loop的,而不是线程的。虽然可以在主线程或者工作线程中使用它,但你不需要这样做。它异步的调用委托方法,使用NSRunLoop。委托方法包括 socket的参数,可让你在多个实例中区分

• 自包含在一个类中。你无需操作流或者socket,这个类帮你做了全部

• 支持基于IPV4和IPV6的TCP流

5.CocoaLumberjack

• 可以设定 Log 等级

• 可以积攒到一定量的 log 后,一次性发送给服务器,绝对不能打一个 Log 就发一次

• 可以一定时间后,将未发送的 log 发送到服务器

• 可以在 App 切入后台时将未发送的 log 发送到服务器

怎么用http://www.cnblogs.com/liufan9/p/3552832.html

6.DACircularProgress 圆环的进度显示

http://www.oschina.net/p/dacircularprogress

7.

设计扁平化的UI是如此的简单,主要的原理是通过设置一系列的属性来够着背景图或者背景色,然后更新到UI控件上。看来随心所欲的设计自己喜欢的扁平化风格也不是难事。

iOS 扁平风格 UI 库 FlatUIKit

8.FMDB数据库MYSQL

使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码

对比苹果自带的Core Data框架,更加轻量级和灵活

提供了多线程安全的数据库操作方法,有效地防止数据混乱

https://github.com/ccgus/fmdb

http://www.cnblogs.com/wendingding/p/3871848.html

9.YTKNetwork 是什么

https://github.com/yuantiku/YTKNetwork

YTKNetwork 是猿题库 iOS 研发团队基于 AFNetworking 封装的 iOS 网络库,其实现了一套 High Level 的 API,提供了更高层次的网络访问抽象。YTKNetwork 现在同时被使用在猿题库公司的所有产品的 iOS 端,包括:猿题库、 小猿搜题、 猿辅导 、 粉笔直播课 。

相比 AFNetworking,YTKNetwork 提供了以下更高级的功能:

• 支持按时间缓存网络请求内容

• 支持按版本号缓存网络请求内容

• 支持统一设置服务器和 CDN 的地址

• 支持检查返回 JSON 内容的合法性

• 支持文件的断点续传

• 支持 block 和 delegate 两种模式的回调方式

• 支持批量的网络请求发送,并统一设置它们的回调(实现在YTKBatchRequest类中)

• 支持方便地设置有相互依赖的网络请求的发送,例如:发送请求A,根据请求A的结果,选择性的发送请求B和C,再根据B和C的结果,选择性的发送请求D。(实现在YTKChainRequest类中)

• 支持网络请求 URL 的 filter,可以统一为网络请求加上一些参数,或者修改一些路径。

• 定义了一套插件机制,可以很方便地为 YTKNetwork 增加功能。猿题库官方现在提供了一个插件,可以在某些网络请求发起时,在界面上显示"正在加载"的 HUD。

10Masonry

http://www.tuicool.com/articles/QraIru

Masonry是一个轻量级的封装了Autolayout框架

https://github.com/Masonry/Masonry

github页面上给出了使用Masonry和Autolayout实现同样效果代码量的对比

当然了你如果学习了VFL,代码量也不会很多

12.MJExtension 是 JSON 和模型之间最快捷方便的转换。

13下拉刷新,上提加载快速集成

/MJRefresh

添加上拉刷新https://github.com/samvermette/SVPullToRefresh

14

MLTransition

拖返可直接从中间拖返,可随意设置leftBarButtonItem,也可使用边界拖返模式。(非截图实现,拖返过程中显示的view都是活动的),自定义左上角返回控件,导致手势的左返回失效问题

15MWPhotoBrowser是一个非常不错的照片浏览器,

https://github.com/mwaterfall/MWPhotoBrowser.git

MWPhotoBrowser来加载小图1M以下的都应该不会有内存警告的问题。如果遇到大图,3M、4M、5M的大图,很有可能导致内存警告。最近我就遇到这个问题,很是头疼。来回滑动查看照片内存飙到100M以上:http://www.wtoutiao.com/a/1402505.html

16侧滑菜单ResideMenu

http://blog.csdn.net/manoel/article/details/39013095/

http://www.jianshu.com/p/99e8b3f6f377

17SDWebImage库结构的简单分析

主要用到的对象:

1、UIImageView (WebCache)类别,入口封装,实现读取图片完成后的回调

2、SDWebImageManager,对图片进行管理的中转站,记录那些图片正在读取。

向下层读取Cache(调用SDImageCache),或者向网络读取对象(调用SDWebImageDownloader) 。

实现SDImageCache和SDWebImageDownloader的回调。

3、SDImageCache,根据URL的MD5摘要对图片进行存储和读取(实现存在内存中或者存在硬盘上两种实现)

实现图片和内存清理工作。

4、SDWebImageDownloader,根据URL向网络读取数据(实现部分读取和全部读取后再通知回调两种方式)

其他类:

SDWebImageDecoder,异步对图像进行了一次解压……

目前不明白为什么要做这么道工序。(现在清楚了,功能解释见下文)

http://www.cnblogs.com/biosli/archive/2012/07/21/2602624.html

18闪光效果开源库shimmer的用法

http://code.google.com/p/cocoaasyncsocket/

19

SVProgressHUD

实现多种HUD效果。多用于程序正在执行耗时较长命令,需要用户等待。除了显示等待的HUD,还可以显示命令执行成功或者失败的HUD。 [Code4App.com]

11MBProgressHUD

//方式1.直接在View上show  ,在屏幕中间忙的“小菊花”

1 /常用的设置

2 //小矩形的背景色

3 http://my.oschina.net/jilin/blog/393005

20SWTableViewCell

SWTableViewCell 实现了 iOS 7 的列表条目左侧滑动显示更多和删除操作的列表组件。

21TPKeyboardAvoiding

TPKeyboardAvoiding 是一个下拉键盘在iOS移动文本字段的通用解决方案。 实现滚动控件,弹出键盘时,自动移动输入框位置,防止被键盘遮盖的功能

IQKeyboardManager

我们在开发应用的时候经常碰到这样一种情况,界面上的 UITextFields 和 UITextView 被弹出的键盘所挡住。

http://www.oschina.net/p/iqkeyboardmanager

22  PSCollectionView-master

PSCollectionView 是一个实现瀑布流效果的 iOS 滚动组件。

23 iCarousel 实现3D效果

https://github.com/nicklockwood/iCarousel

24、帧速计算功能--KMCGeigerCounter

为什么我的app老是不流畅,到底哪里出了问题?

。掉帧通常是不可见的,但是很难区分55fps和60fps之间的不同,而KMCGeigerCounter可以让你观测到掉落5帧的情况

https://github.com/kconner/KMCGeigerCounter

25FlipBoard怎么播放GIF的时候这么卡,

FlipBoard出品的太适合你了:https://github.com/Flipboard/FLAnimatedImage

ZLSwipeableView是一个方便做出卡片效果的UI库,支持各种卡片的滑动效

https://github.com/zhxnlai/ZLSwipeableView

果。

你可能感兴趣的:(常见的第三方库)