最近有朋友问我粉笔网 iPhone 端使用了哪些第三方的开源库。我在这儿整理了一下,分享给你们。css

ASIHttpRequest
ASIHttpRequest 是一个被普遍使用的第三方网络访问开源库。用于提供更加友好的网络访问接口。相信不少搞 iOS 开发的朋友都用过它。
ASIHttpRequest 的主要使用文档能够 参考这里。html
另外,因为 ASIHTTPRequest 的做者已经公开说明再也不维护这个开源项目,而且该项目已经一年多没有更新了,因此我一直在寻找替代的开源库。不过如今暂时尚未找到更好的。java
RegexKit
RegexKit 是一个正则表达式工具类。提供强大的正则表达式匹配和替换功能。咱们主要使用它来对相似微博的正文替换工做。例如将 @ 某某 换成带连接的,将图片的 URL 换成 img 标签等。ios
同时,开源库 MGTemplateEngine 也依赖于此库。附上 RegexKit4.0 的官方文档教程。git
MGTemplateEngine
MGTemplateEngine 是一个模版引擎。咱们主要使用它来生成单条微博页的内容。咱们的单条微博页打算用 UIWebView 来显示,因此内容须要用模版渲染成 HTML 格式。MGTemplateEngine 的模版语言比较象:Smarty, FreeMarker 和 Django 的模版语言。github
MGTemplateEngine 的做者官方博客在 这里。正则表达式
咱们在使用时,对此开源库的 Filter 类进行了修改,主要增长了 3 个自定义的 filter,用于提供咱们的格式化时间,转义 html 和过滤空头象的用户的方式。sql
JSONKit
JSONKit 是一个比较高效的 JSON 解析库。我以前比较过各大 JSON 解析库的性能(文章在此),JSONKit 算是很是不错的,大概的使用示例以下:数据库
#import "JSONKit.h" |
GTMNSString
GTMNSString 主要用于转义 HTML 中的特殊字符。以防止 XSS 攻击。
FMDB
FMDB 是一个 sqlite 数据库封装类,须要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件便可。在使用上很是简单。以下是一个例子:
NSString * docsdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; |
BBCustomBackButtonViewController
BBCustomBackButtonViewController 是用于在 ios4 上提供自定义的 NavigationBar 按钮的开源库。使用上异常简单,只须要让本身的 ViewController 继承它就能够了。
我对 BBCustomBackButtonViewController 进行了修改,主要是改动它的自定义的按钮的样式,使其和咱们的风格一致。
MTStatusBarOverlay
MTStatusBarOverlay 是一个在 iphone 的顶部 status bar 显示消息的开源库。示例代码以下:
+ (void)showCompletedTextOnStatusBar:(NSString *)text { |
可是 stackoverflow 上说,有项目由于这个审核被拒,可是新浪微博明显采用了此 UI 方案,因此咱们仍是大胆用了这个库。后来,咱们也顺利经过了审核。
MBProgressHUD
MBProgressHUD 是一个用于显示灰色的加载进度或结果的类。与系统自带的 UIAlertView 相比,MBProgressHUD 因为背影是黑色的,因此视觉上不是那么强烈。咱们主要用它来显示一些加载中的提示,以及一些自已会消失的操做结果(例如网络失败等)。
NSStringWrapper
由于本身有多年 Java 开发的经历,我仍是不太习惯 Objective-C 连基本的字符串操做都要查文档,而我本身又记不住老长的方法名,因此我把 Objective-C 的字符串基本操做都封装成了 Java 风格的方法调用。这部分是很早前拿周末时间在家里写的,因此是开源的,源代码地址。
EGOTableViewPullRefresh
EGOTableViewPullRefresh 一个开源的下拉刷新组件。我对它进行了改进,增长了强制刷新功能。
LoadMoreTableFooterView
LoadMoreTableFooterView 一个开源的上拉加载更多的组件。我作了少许修改,以便让它支持 iPhone5 的分辨率。
zepto.js
zepto 是一个相似 JQuery 的 javascript 开源库,用于实现 css 选择器和一些 dom 操做。它的 api 几乎和 JQuery 彻底同样,优势是体积小巧。
ejs
ejs 一个 js 端的模版库。咱们主要用于渲染一些 UIWebview 中异步加载的内容。例如笔记的评论,问题的答案。
总结
但愿上面的开源库能对你有用。最后分享一张粉笔网全站用到的全部开源项目的图片。
