粉笔网iPhone端使用了哪些第三方的开源库。我在这儿整理了一下,分享给大家。

ASIHttpRequest

ASIHttpRequest 是一个被广泛使用的第三方网络访问开源库。用于提供更加友好的网络访问接口。相信很多搞iOS开发的朋友都用过它。 ASIHttpRequest 的主要使用文档可以参考这里。

另外,由于ASIHTTPRequest的作者已经公开说明不再维护这个开源项目,并且该项目已经一年多没有更新了,所以我一直在寻找替代的开源库。不过现在暂时还没有找到更好的。

RegexKit

RegexKit是一个正则表达式工具类。提供强大的正则表达式匹配和替换功能。我们主要使用它来对类似微博的正文替换工作。例如将 @某某 换成带链接的,将图片的URL换成img标签等。

同时,开源库MGTemplateEngine也依赖于此库。附上RegexKit4.0的官方文档教程。

MGTemplateEngine

MGTemplateEngine是一个模版引擎。我们主要使用它来生成单条微博页的内容。我们的单条微博页打算用UIWebView来显示,所以内容需要用模版渲染成HTML格式。MGTemplateEngine的模版语言比较象:Smarty, FreeMarker 和 Django的模版语言。

MGTemplateEngine的作者官方博客在这里。

我们在使用时,对此开源库的Filter类进行了修改,主要增加了3个自定义的filter,用于提供我们的格式化时间,转义html和过滤空头象的用户的方式。

JSONKit

JSONKit是一个比较高效的JSON解析库。我之前比较过各大JSON解析库的性能(文章在此),JSONKit算是非常不错的,大概的使用示例如下:

#import "JSONKit.h"NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];
NSData *content = [NSData dataWithContentsOfFile:path];
NSDictionary *kitData = [content objectFromJSONData];
NSString *kitString = [kitData JSONString];

GTMNSString

GTMNSString主要用于转义HTML中的特殊字符。以防止XSS攻击。

FMDB

FMDB是一个sqlite数据库封装类,需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。在使用上非常简单。如下是一个例子:

NSString * docsdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString * dbpath = [docsdir stringByAppendingPathComponent:@"user.sqlite"];
FMDatabase * db = [FMDatabase databaseWithPath:dbpath];
[db open];
FMResultSet * rs = [db executeQuery:@"select * from People"];
while ([rs next]) {NSLog(@"%@ %@",[rs stringForColumn:@"firstname"],[rs stringForColumn:@"lastname"]);
}
[db close];

BBCustomBackButtonViewController

BBCustomBackButtonViewController 是用于在ios4上提供自定义的NavigationBar按钮的开源库。使用上异常简单,只需要让自己的ViewController继承它就可以了。

我对BBCustomBackButtonViewController进行了修改,主要是改动它的自定义的按钮的样式,使其和我们的风格一致。

MTStatusBarOverlay

MTStatusBarOverlay 是一个在iphone的顶部status bar显示消息的开源库。示例代码如下:

+ (void)showCompletedTextOnStatusBar:(NSString *)text {NSString * message = [NSString stringWithFormat:@"%@成功", text];MTStatusBarOverlay *overlay = [MTStatusBarOverlay sharedInstance];overlay.animation = MTStatusBarOverlayAnimationFallDown;overlay.detailViewMode = MTDetailViewModeHistory;[overlay postImmediateFinishMessage:message duration:2.0 animated:YES];overlay.progress = 1.0;
}

但是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中异步加载的内容。例如笔记的评论,问题的答案。

总结

希望上面的开源库能对你有用。最后分享一张粉笔网全站用到的所有开源项目的图片。

粉笔网iPhone端使用的第三方开源库相关推荐

  1. 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善...

    链接地址:http://www.tuicool.com/articles/jyA3MrU 时间 2015-01-05 10:08:18  我是程序猿,我为自己代言 原文  http://blog.cs ...

  2. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    Android开源库 自己一直很喜欢Android开发,就如博客签名一样, 我是程序猿,我为自己代言 . 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者, ...

  3. Android之史上最全最简单最有用的第三方开源库收集整理

    Android开源库 自己一直很喜欢Android开发,就如博客签名一样, 我是程序猿,我为自己代言 . 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者, ...

  4. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发...

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文   http ...

  5. 【安卓开源集合】最全最有用的第三方开源库收集整理,快速开发必备,还能提升效率

    扩展功能库 SlidingMenu  : SlidingMenu 能非常容易的让开发者实现程序的抽屉效果,所谓的抽屉效果如下图所示,通常被用作呼出菜单.而且SlidingMenu能很方便的与Actio ...

  6. 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    Android开源库 自己一直很喜欢Android开发,就如博客签名一样, 我是程序猿,我为自己代言 . 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者, ...

  7. (转)CocoaPods:管理Objective-c 程序中各种第三方开源库关联

    在我们的iOS程序中,经常会用到多个第三方的开源库,通常做法是去下载最新版本的开源库,然后拖拽到工程中. 但是,第三方开源库的数量一旦比较多,版本的管理就非常的麻烦.有没有什么办法可以简化对第三方库的 ...

  8. 45.Android 第三方开源库收集整理(转)

    原文地址:http://blog.csdn.net/caoyouxing/article/details/42418591 Android开源库 自己一直很喜欢Android开发,就如博客签名一样,  ...

  9. Android常用的第三方开源库和框架

    第三方开源库和组件 一个专注于平滑滚动的Android图像加载和缓存库 https://github.com/bumptech/glide 图片缓存Universal-Image-Loader: ht ...

最新文章

  1. Linux那些事儿 之 戏说USB(7)不一样的core
  2. python微信自动机器人
  3. Linux的基础命令小总结(二)
  4. 为什么仿宋字体打印出楷体_win7缺少仿宋_GB2312和楷体_GB2312字体,造成word字体显示不正常...
  5. 图解 ElasticSearch 原理,太牛了
  6. 微软 Powertoys 推出新的实用程序,自定义键盘快捷管理
  7. 为什么每个邮件收到后都会有一个htm的附件_Python3.x 发送各种形式的告警邮件内容...
  8. Android java获取行号和函数名
  9. 互联网带来的颠覆,改变了传统的营销套路
  10. 【机器视觉】独家盘点:详解国内外34家物联网机器视觉技术企业
  11. matlab 多项式画图,matlab多项式画图
  12. 知其然,不知其所以然
  13. Pytorch(一) —— 相关库和函数
  14. 看一点逻辑学,试图理解一点真相
  15. XAVIER CMDS
  16. 斯坦福大学校工程学院计算机,加州大学洛杉矶分校:受大脑启发的计算机视觉的对象发现和检测...
  17. Excel改变了你的基因名,30% 相关Nature文章受影响,NCBI也受波及
  18. 2021年5月系统集成项目管理工程师案例分析真题视频讲解(3)
  19. poco mysql 库_Poco Mysql使用
  20. 如何防止表单重复提交问题

热门文章

  1. java毕业设计智慧维修系统Mybatis+系统+数据库+调试部署
  2. 制作自己定制的centos7安装光盘、U盘
  3. mysql清空表数据_mysql数据库之如何清空表中数据
  4. 数据透视表里填充重复项_数据透视表填充颜色消失
  5. mysql字符串转日期_mysql 字符串 日期互转
  6. mockito 总结
  7. java计算机毕业设计某山区环境保护监督管理平台源码+数据库+系统+lw文档+mybatis+运行部署
  8. 极兔快递单号如何批量查询分析物流信息
  9. 2020第一季度OKR
  10. InfluxDB【InfluxDB数据库操作】