粉筆網iPhone端使用的第三方開源庫

粉筆網iPhone端使用的第三方開源庫

前言javascript

最近有朋友問我粉筆網 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"

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 中異步加載的內容。例如筆記的評論,問題的答案。

總結

但願上面的開源庫能對你有用。最後分享一張粉筆網全站用到的全部開源項目的圖片。

相關文章
相關標籤/搜索