目前正在开发的产品告一段落,有时间总结下经验,也顺便分享一下我们主要使用的平台-Parse。
什么是Parse?
Parse是一群美国人开发的专为移动APP服务的云计算平台,与现有的其他云计算平台相比,Parse除了提供Restful的service 之外,也提供了官方的iOS和Android SDK。个人认为高质量的client端SDK是Parse区分与其他云服务的核心优势。为什么呢?看完我的文章就知道了。
为什么要用Parse?
先想想开发一个简单的需要保存用户数据的APP,你需要做什么。非技术背景的人多半会认为只需要找个人做几个手机界面就行了。慢!身为程序员的我们会告诉这个不懂技术的朋友(也许是投资人,也许是你的老板),为了保存用户数据及密码,我们需要建立一个数据库,建立一个服务器,找一个虚拟主机提供商部署服务,花费几天到几个月的时间开发服务器的代码,尽管这些事情看上去与一个运行在手机上的程序毫无关系,却是必须而不可或缺的。这些与iPhone开发无关的前期准备工作阻止了大多数个人或者小团体的创业想法变成实际行动。这时候,小团队的拯救者Parse出现了。只需专著于iPhone上具体需求的开发,繁琐的后台服务全由Parse包办。
Parse提供的服务?
多数功能免费,少数功能只开放给Pro用户(199$/month),具体情况可以访问官网(https://www.parse.com/plans)。
1. JASON格式的数据保存读取。可以理解为数据库+DAO+Service。No Schema,前台程序员无需预定义表结构,只要建立Object C 对象,保存时就可以自动建立对应面向对象的“数据库表”。传统开发过程中,整个后台服务的开发工作全部都省去了。
2. 用户管理。用户对象是最常用的,Parse提供了PFUser对象,包含了注册登陆重设密码等常用用户操作,并引入ACL管理对象的权限。
3. 消息推送:支持iOS和Android平台的消息推送。具体的说就是iOS开发者无须再建立自己的消息发送服务器了。
4. 文件存贮:除了类数据库的方式保存对象也支持二进制文件的保存。
5. 隐藏Parse: 默认情况,重设密码,验证油箱等功能使用带有Parse>
- score: 1337, playerName: "Sean Plott", cheatMode: false
如果用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];
对应的Request格式为:
复制代码
- objectId: "xWMyZ4YEGZ", score: 1337, playerName: "Sean Plott", cheatMode: false,createdAt:"2011-06-10T18:33:42Z", updatedAt:"2011-06-10T18:33:42Z"
保存成功后可以在Parse的Data Browser里看到对应的纪录。