美文网首页
iOS 统计三方库

iOS 统计三方库

作者: Mr_Dreams | 来源:发表于2018-09-07 16:06 被阅读0次

    1.图片浏览控件MWPhotoBrowser 

          实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存。可对图片进行缩放等操作。

          下载:https://github.com/mwaterfall/MWPhotoBrowser

    目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。

    首先整理了一份Github上排名靠前的iOS库(大概600个repos)

    除了逛一下每日/每月流行之外,也可以到这里来看一下整个iOS Repos的排名。

    下面是一些比较流行的第三方库:

    HTTP

    相比较之下,AFNetworking是目前最优秀的一个了:轻量、易用、使用者多、开发者有在积极维护。在AFN出现之前,这个角色是由ASIHTTPRequest扮演的,只是到现在年久失修了。关于AFN和ASI的对比,这里有一篇不错的文章http://www.infoq.com/cn/articles/afn_vs_asi。除此之外,MKNetworkKitRestKit也有一定的使用者。

    Socket

    CocoaAsyncSocket无疑是目前封装得最完善的Socket库了:支持异步TCP/UDP,支持GCD,Objective-C接口封装。。目前没有发现可以与之相比的同类产品。。

    JSON

    JSONKit算是第三方中最优秀的一个了:性能很高,文件少。在JSONKit之前,SBJson非常非常流行,但是SBJson性能够差,只是由于历史原因仍然存在在某些工程里面。如果工程只需要支持iOS5以上的系统,那就可以放弃那些第三方Json库了,直接用系统提供的NSJSONSerialization,性能比第三方的好,又是官方API。。

    XMPP

    现在做个实时聊天,XMPP协议算是很成熟的方案了。XMPPFramework一个很不错的选择,可以直接和OpenFire服务器打交道。项目不大人手不多的话,可以看看这个。

    基础工具类

    SSToolkit算是一个不错的工具包,提供各种比如编码、加密、字符串处理等等东西,还提供了一些不错的自定义控件,并且文档非常齐全。

    框架

    过去有很多人再用three20,这个东西太大太重,文档又少,到头来连Facebook都停止维护了。作为替代品nimbus现在流行了开来,关键在于它文档齐全。国内有个MVC框架叫BeeFramework,号称是顶级框架并且功能超过nimbus,有兴趣的可以看一下。ReactiveCocoa把响应式编程这种上流的东西带了过来,值得试一试。。

    数据存储

    还是挺多人(比如我)喜欢直接跟SQLite打交道的,这方面fmdb封装的很不错。如果用CoreData来做存储的,可以用一下MagicalRecord

    图像处理

    GPUImage无疑是这方面的集大成者了。用OpenGL ES2.0来实时处理图片和视频流,性能和功能都是顶尖的。

    开发和调试工具

    PonyDebugger看上去是一个不错的调试工具,可以在电脑浏览器上远程调试iOS程序、查看试图层次、网络等等。CocoaLumberjack是个Log工具,号称是可以提供企业级Log,使用者也挺多。

    为了了解一下目前第三方库的普及程度,下面列举一些知名App对第三方库的依赖。

    网易新闻

    AppleReachability

    ASIHTTPRequest

    EGOTableViewPullRefresh

    GTMNSString+HTML

    MGTemplateEngine

    MPOAuth

    RegexKitLite

    SDWebImage

    SSZipArchive

    wax

    Garageband

    MurmurHash

    libpng

    zlib

    SBJson(json-framework)

    iWork三套件

    MOKit

    Boost C++ Library

    protobuf

    OpenGL Mathematics

    SQLite

    cephes math library

    Pinterest

    AFNetworking

    AFHttpClientLogger

    Facebook SDK

    iRate

    MAKVONotificationCenter

    SDWebImage

    SFHFKeychainUtils

    SSPullToRefresh

    SVProgressHUD

    TTTAttributedLabel

    TTTLocalizedPluralString

    UIAlertView-Blocks

    多看阅读

    fmdb

    ASIHTTPRequest

    FreeType

    JSONKit

    Objective-Zip

    Skia(Google)

    MBProgressHUD

    淘宝

    MAZeroingWeakRef

    MBProgressHUD

    ABContactHelper

    ASIHTTPRequest

    CocoaLumberjack

    EGOTableViewPullRefresh

    fmdb

    GTMBase64

    JSONKit

    SBJson (json-framework)

    RTLabel

    SDWebImage

    SVPullToRefresh

    three20

    ziparchive

    微信

    cocos2d

    EGOTableViewPullRefresh

    Facebook iOS SDK

    JSONKit

    SBJson

    ziparchive

    QQ

    ASIHTTPRequest

    FMDB

    CocoaAsyncSocket

    JSONKit

    MBProgressHUD

    OpenUDID

    SBJson

    SVPullToRefresh

    百度地图

    AFNetworking

    GTMBase64

    JSONKit

    MBProgressHUD

    RNCachingURLProtocol

    SDWebImage

    微博

    ABContactHelper

    AFNetworking

    ASIHTTPRequest

    DACircularProgressView

    DDProgressView

    DTFoundation

    fmdb

    JSONKit

    SBJson

    MBProgressHUD

    MTStatusBarOverlay

    OpenUDID

    SFHFKeychainUtils

    人人

    cocoaasyncsocket

    ZipArchive

    MBProgressHUD

    JSONKit

    GTMBase64

    MKNetworkKit

    HPGrowingTextView

    zxing

    可以看到,这些大型的App的依赖都很混乱,所以稍微解释一下。这些大公司都有一个iOS团队来协同开发,团队成员的水平也参差不齐。有时由于历史原因,例如某个App的某个组件依赖了ASIHttpRequest,但之后的新人改用了AFNetworking,就造成上面这种比较混乱的库依赖关系。这就造成难以维护、代码冗余等问题了。所以,引入一个第三方库一定要慎重考虑,如果可能,尽量自己开发和实现相应的功能,第三方库尽量只作为参考。 小团队或者个人开发者可以不必过多考虑,开发速度优先。

    系统基础库

    Category/Util

     sstoolkit一套Category类型的库,附带很多自定义控件 功能不错~  

     BlocksKit将Block风格带入UIKit和Founcation  

     cocoa-helpers一些Cocoa的扩展 2年前的工程  

     CoconutKit一系列扩展和一些自定组件  

     STUtils一系列扩展包  

     PSFoundation一系列扩展 和功能增强  

     ConciseKit一系列宏定义 挺有意思  

     DTFoundation又一系列扩展。。。  

     BBBootstrap一些常见功能的扩展库  

     cooliris-toolkitcooliris出品的基础工具库,从GoogleCode clone过来  

     BaseKit一套基础工具库  

     NSObject-Utility-Categories如题  

     NSArray-Utilities如题  

     aqtoolkit一些常用的东西  

     DLIntrospection一些NSObject的扩展  

     NSDate-Extensions如题日期  

     ALActionBlocks在UIControl上添加的Block事件  

     jrswizzle主要是swizzling  

     moriarty一些还算有用的功能  

     QSUtilities一些基础库 (Instagram有用到)  

     libextobjc一堆oc的扩展  

     PrettyTimestamp友好时间的扩展  

     ios-jail-break-detector检测是否越狱 有上线  

     crackify检测App是否被破解  

     NSBundle-OBCodeSigningInfo检查当前签名、Sandbox状态 MacOSX  

     UIView-AnimatedProperty为UIView添加动画效果的property,有用到swizzle  

     Block-KVOBlock风格的KVO~  

     MTDates一些Data的category  

     CocoaSecurity常见的哈希、加密解密算法  

     sskeychain访问keychain 支持iOS Mac  

     ABContactHelper访问联系人  

     UISS用JSON的风格设置UIKit样式  

     Underscore.m仿JS的underscore.js来写的,用于访问和处理数据  

     TICoreDataSync在不同设备间对CoreData进行同步 (iPhone iPad Mac)  

     SoloComponents-iOS几个轻量的组件,没什么用,2年没更新  

     MAObjCRuntime将运行时包装成ObjC  

     Objective-C-Generics通过宏定义勉强实现的范型  

     TBMacros一些常用的宏定义  

     NSString-Ruby为Ruby程序员带来的字符串相关功能  

     ObjectiveRecordCoreData包装的活动记录 有RoR风格的API  

     FastImageCache滑动时快速显示图片的库,Path开发

    相关文章

      网友评论

          本文标题:iOS 统计三方库

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