美文网首页
常见的第三方库

常见的第三方库

作者: Joe_lisa | 来源:发表于2015-12-17 21:19 被阅读669次

    第三方库的作用

    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

    果。

    相关文章

      网友评论

          本文标题:常见的第三方库

          本文链接:https://www.haomeiwen.com/subject/eosphttx.html