苹果的应用程序一般都会用一种优雅的,半透明的进度显示效果,不过这个API是不公开的,因此你要是用了,很可能被清除出AppStore。而MBProgressHUD提供了一个替代方案,而且在用户角度上,实现的效果根本看不出和官方程序有什么差别。同时还提供了其他附加功能,比如虚拟进展指示符,以及完成提示信息。整合到项目里也很容易,这里不细谈了。
iPhone当然也有自己的HTTP Network API,那为什么要用ASIHttpRequest呢?因为官方的API简直跟话痨似的,太罗嗦了!ASIHttpRequest库极大的简化了网络通信,提供更先进的工具,什么文件上传工具,重定向处理工具、验证工具、等等。只要你手头的东西跟HTTP有关,用这个绝对能让你感觉道生活有美好!先看一段代码就体会到了。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
- (
void
) loadAppDevMag
{
NSURL *url = [NSURL URLWithString:@
"http://www.appdevmag.com"
];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (
void
)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
} ]
|
如果你做的应用和网站服务器有交互,那就得用到JSON了。但事实上,iOS平台的原生类库根本就不支持JSON,这就略犀利了吧?不过JSON框架满足了你的所有需求,包括一个解析器将JSON字符串解析成对象;以及一个生成器从对象生成字符串。这个库根本就是太流行了,JSON提过很多次了,具体特点就不多讲了,所谓“一段代码胜千言”,下面用一段代码演示一下吧。
1
2
3
4
5
6
|
// JSON string -> NSDictionary
NSString *jsonString = @
"{\"foo\": \"bar\"}"
;
NSDictionary *dictionary = [jsonString JSONValue];
NSLog(@
"Dictionary value for \"foo\" is \"%@\""
, [dictionary objectForKey:@
"foo"
]);
// NSDictionary -> JSON string
NSString *newJsonString = [dictionary JSONRepresentation];
|
通过Furry你可以得到应用的用户人数,用户活跃度,用户来源等统计信息。但是他最厉害的地方是,你可以追踪应用本身的事件和错误记录,所有这些数据都会在一个类似Google Analytics的界面上显示,这样就很容易掌握用户的行为和出现的问题。
正则表达式大家都知道。但是iPhone SDK居然当他不存在?这怎么能忍啊!果断用RegexKitLite。虽然叫的是Lite,但是功能很full。示例代码
1
2
3
4
5
|
// finds phone number in format nnn-nnn-nnnn
NSString *regEx = @
"[0-9]{3}-[0-9]{3}-[0-9]{4}"
;
for
(NSString *match in [textView.text componentsMatchedByRegex:regEx]) {
NSLog(@
"Phone number is %@"
, match);
}
|
大体来讲就是iPhone上的Facebook login,完全支持Facebook Graph API和the older REST api
用SDWebImage调用网站上的图片,跟本地调用内置在应用包里的图片一样简单。操作也很简单;
类似的功能在Three20里也有,这个过会儿再说。相比而言,SDWebImage主要是提供一个小而精的简捷方便的解决方案。
跟Google相关的,值得一提的是,这个项目很开放。有很多示例程序供下载。
CorePlot有很多解决方案将你的数据可视。,同时也会提供各种迷人的图形效果,比如棒状图、饼状图、线状图等等,在他们网站上也提供了大量的范例图形,很多股票价格应用,游戏分数,个人财务管理都在用。
Three20类库是Facebook自己做的,大而全是他最大的特色。把他整合到已有的项目中可能得费点周折,不过如果一开始你就用上了Three20,尤其是牵扯到很多web相关的项目的时候,你就能深刻体会到神马叫给力了。
http://code.google.com/p/uwecaugmentedrealityproject/
http://code.google.com/p/iphone-wireless/
http://zbar.sourceforge.net/iphone/sdkdoc/install.html
http://code.google.com/p/cocoaasyncsocket/
http://code.google.com/p/siphon/
http://code.google.com/p/asterisk-voicemail-for-iphone/
http://code.google.com/p/voiphone/
http://code.google.com/p/panoramagl/
http://code.google.com/p/ichabber/
http://code.google.com/p/plblocks/
http://code.google.com/p/simple-iphone-image-processing/
http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/?r=87
https://github.com/schwa/TouchXML
https://github.com/ldandersen/scifihifi-iphone
https://github.com/jdg/MBProgressHUD
https://github.com/enormego/EGOTableViewPullRefresh
http://www.markj.net/iphone-asynchronous-table-image/
https://bitbucket.org/sfoster/iphone-tts
http://code.google.com/p/oauth/
http://code.google.com/p/oauthconsumer/