zoukankan      html  css  js  c++  java
  • 粉笔网iPhone端使用的第三方开源库

    粉笔网iPhone端使用的第三方开源库

    前言

    最近有朋友问我粉笔网 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 中异步加载的内容。例如笔记的评论,问题的答案。

    总结

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

  • 相关阅读:
    Mac 下 IDEA 无法启动的问题
    oracle impdp
    张亚琴:人生是赛场不是战场,人生是一个没有终点的赛场,永远都在起跑线上
    sc抽象组件工作
    Jenkins 实现gitLab提交代码立即利用Jenkins发版
    Jenkins 修改admin密码
    docker 安装nginx,并配置vue项目在nginx启动
    No 'Access-Control-Allow-Origin' header is present on the requested resource 是跨域的问题吗?
    Vue个别vue文件不能热加载
    IVT虚拟化支持
  • 原文地址:https://www.cnblogs.com/LiLihongqiang/p/5943863.html
Copyright © 2011-2022 走看看