很多开发手机终端软件的朋友,假如想做一个网络的应用,除了使用大公司的api之外,就是需要自己搭建服务器了。本人,由于一直都是从事ios开发的,对服务器后台的开发,认识几乎为0,所以就一直制约了我们团队的发展,大概就是做一些本地应用啊,调用以下大公司的api的。但是,近段时间,我无意中发现了Parse,这个后台服务器。其实与其说是服务器,不是直接说就是一个空间,不过这个空间的服务相当好。几乎完完全全是傻瓜式的,官网的介绍非常详细。https://www.parse.com/
英文比较好的同学,可以直接去官网看介绍,超级简单。下面我大概讲述一下,我使用的一些想法吧。
由于很多开发者,都没有服务器,或者没有能力和精力去搭建一个服务器,所以,Parse就提供了一系列的方案。官网上,有ios和android两套的sdk,直接就可以用了,还有一个官方的例子做参考,那个例子其实也比较简单的,就是一个post数据,和一个get数据。但是不要小看这2个操作,互联网应用,几乎全部都是基于这2个操作的。Parse的好处在于,你写程序的时候,你可以默认假定你已经拥有一个别人配置好的,一流的后台服务器。你需要上传数据,只需
- PFObject *gameScore = [PFObject objectWithClassName:@"GameScore"];
- [gameScore setObject:[NSNumber numberWithInt:1337] forKey:@"score"];
- [gameScore setObject:@"Sean Plott" forKey:@"playerName"];
- [gameScore setObject:[NSNumber numberWithBool:NO] forKey:@"cheatMode"];
- [gameScore save];
使用这个函数,就可以将上传的动作后台进行,完成不会阻塞当前的线程。
[gameScore saveInBackground];
你想去把数据拿回来,操作更简单,甚至与数据库有点类似
首先说一下Parse支持的数据类型
目前Parse的table column支持NSString, NSNumber, NSDate, NSData, 或者另外一个PFObject。同时也可以使用NSDictionary and NSArray保存结构化的数据。其中NSArray 支持相对应的查询。虽然可以使用NSData保存二进制数据,但是推荐先使用PFFile保存文件,比如照片等,而在对应的column保存PFFile的引用。
常用的查询
类似SQL,查询时先创建PFQuery对象,然后设置查询条件。
先看个简单的,查询GameScore表中playName等于 “Dan Stemokoski”的所有记录。
复制代码
|
这个是查NSNumber,查询 playAge大于18的所有记录。
复制代码
|
这个是查数组的,aryMatchTypes是一个NSArray的数组,下面的语句查询aryMatchTypes包含"Football"的所有记录。
复制代码
|
既然是面向对象的,Parse也支持关联查询,下面的例子中Comment和Post都是Parse的对象,下面的代码可以查询包含myPost对象的所有comment记录。
复制代码
|
Parse支持子查询,下面的例子是找到所有comments的记录,其中的post含有image。
复制代码
|
或查询,很遗憾,Parse不支持OR条件查询,只支持AND,要用OR的话可以用Compound query,类似SQL的Union
复制代码
|
parse服务分收费和免费,我感觉免费用户足够使用了,起码对于我这些开发者来说。
之前一直想弄一个push notification的,但是一直不想去弄服务器,现在有了parse,一切都可以迎刃而解了,parse网站上面,提供了push notification的一整套的方案,配置什么的,简直可以说就是一直按下一步的简单。
本人刚刚开始去了解这个后台,所以一些东西还是理解得比较表面的,如果大家还有更好的想法和建议的,欢迎和我交流。