目前正在开发的产品告一段落,有时间总结下经验,也顺便分享一下我们主要使用的平台-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>

Object c代码  
  1. score: 1337, playerName: "Sean Plott", cheatMode: false

如果用parse保存的话就是:

Object c代码  
  1. PFObject *gameScore = [PFObject objectWithClassName:@"GameScore"];
  2. [gameScore setObject:[NSNumber numberWithInt:1337] forKey:@"score"];
  3. [gameScore setObject:@"Sean Plott" forKey:@"playerName"];
  4. [gameScore setObject:[NSNumber numberWithBool:NO] forKey:@"cheatMode"];
  5. [gameScore save];

对应的Request格式为: 



复制代码

Object c代码  
  1. objectId: "xWMyZ4YEGZ", score: 1337, playerName: "Sean Plott", cheatMode: false,createdAt:"2011-06-10T18:33:42Z", updatedAt:"2011-06-10T18:33:42Z"

保存成功后可以在Parse的Data Browser里看到对应的纪录。

Parse-轻松构建移动APP的后台服务的更多相关文章

  1. 答CsdnBlogger问-关于定时和后台服务问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 前段时间写了不少博客,在问答页面也陆续回答几十个问题,之后Csdn乙同学找到我,说要推荐我参加问答类 ...

  2. Android8.0 后台服务保活的一种思路

    原文地址:Android8.0 后台服务保活的一种思路 | Stars-One的杂货小窝 项目中有个MQ服务,需要一直连着,接收到消息会发送语音,且手机要在锁屏也要实现此功能 目前是使用广播机制实现, ...

  3. Android : App客户端与后台服务的AIDL通信以及后台服务的JNI接口实现

    一.APP客户端进程与后台服务进程的AIDL通信 AIDL(Android Interface definition language-“接口定义语言”) 是 Android 提供的一种进程间通信 ( ...

  4. ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方式

    原来定位服务是10分钟收不到定位信息就挂起定位,如今变为最短3分钟,预计都是为了省电吧. 仅仅要你开启应用的后台定位,而且10分钟有一次定位,那么苹果就不会关闭你的线程.如今变成3分钟.若你的应用开启 ...

  5. nodejs 从helloworld到高质量的后台服务server的一点思考

    ---恢复内容开始--- 新公司用的nodejs作为app和网站的后台服务server,所以最近对nodejs一直在学习,加上之前简单的学习了一点,看了两天后台接口源码,所以就直接上手干活了,下面是我 ...

  6. ASP.NET Core 6框架揭秘实例演示[21]:如何承载你的后台服务

    借助 .NET提供的服务承载(Hosting)系统,我们可以将一个或者多个长时间运行的后台服务寄宿或者承载我们创建的应用中.任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载,A ...

  7. ASP.NET Core 6框架揭秘实例演示[22]:如何承载你的后台服务[补充]

    借助 .NET提供的服务承载(Hosting)系统,我们可以将一个或者多个长时间运行的后台服务寄宿或者承载我们创建的应用中.任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载,A ...

  8. iPhone Anywehre虚拟定位提示“后台服务未启动,请重新安装应用后使用”的解决方法

    问题描述: iPhone越狱了,之后在Cydia中安装Anywhere虚拟定位,但是打开app提示:后台服务未启动,请重新安装应用后使用. 程序无法正常使用... 解决方法: 打开Cydia-已安装, ...

  9. Android 三级联动选择城市+后台服务加载数据库

    技术渣,大家将就着看 首先我们需要一个xml数据保存到数据库,这里我从QQ下面找到一个loclist.xml文件 <CountryRegion Name="中国" Code= ...

随机推荐

  1. docker学习---搭建Docker LAMP环境

    1.环境 系统版本:CentOS Linux release 7.4.1708 docker版本:docker-ce-18.09 主机IP:192.168.121.121 2.载入MySQL和PHP镜 ...

  2. zmq的send

    int zmq_send (void *socket, zmq_msg_t *msg, int flags);      2.2.1 nt zmq_send (void *socket, void * ...

  3. CSIC_716_20191129【 单例模式 的五种实现方式】

     单例模式 单例模式:在确定类中的属性和方法不变时,需要反复调用该类的情况.  让所有通过该类实例化出的对象,都指向同一个内存地址. 优点:节省内存空间. 单例模式有五种表现形式: 1.通过class ...

  4. [原创] Java 流布局管理器 FlowLayout

    参数原型: public FlowLayout(int align, int hgap, int vgap) { this.hgap = hgap; this.vgap = vgap; setAlig ...

  5. NX二次开发-UFUN工程图更新视图UF_DRAW_update_one_view

    NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <uf_obj.h> #include <u ...

  6. NX二次开发-UFUN获取当前显示部件的TAG,UF_PART_ask_display_part

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_part.h> UF_initialize ...

  7. python入门 集合(四)

    集合 集合是一个无序的不重复元素序列,可以迭代,也可以修改.集合迭代的时候元素是随机的. 集合通常用来 membership testing, 去重, 也可以用来求交集并集补集. 介绍一下如何创建集合 ...

  8. jsp-request应用1

    用jsp写表单提交数据时需要用到request去读取数据,表单代码如下: <form action="requestresult.jsp" method="post ...

  9. Python3 From Zero——{最初的意识:003~数字、日期、时间}

    一.对数值进行取整:round(value,ndigits) >>> round(15.5,-1) #可以取负数 20.0 >>> round(15.5,0) #当 ...

  10. 剑指offer——25合并两个排序的链表

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.   题解: 使用普通方法,或者递归,注意新的头节点即可. //使用普通的合并方法 class S ...