阅读此文章须要对Objective-C和iOS有必定的了解,彻底没有基础的朋友请先阅读《让不懂编程的人爱上iPhone开发》系列教程。html
什么是后台服务(back-end service)?说白了,就是联机服务。好比说一个备忘录应用,若是全部的数据信息只能保存在本地设备(也就是你所用的电脑、手机、平板电脑上),那么它就是一个单机应用。若是一个游戏只能在本身的设备上玩,并且全部的游戏进度、档案都保存在本地设备上,那么它就是一个单机游戏。前端
所以,简单来讲,后台服务的做用就是把单机应用变成网络应用,把单机游戏变成网络游戏。web
如今若是说哪个移动应用(非游戏)没有提供后台服务的功能,几乎就是不可想象的。不过以前为了提供所谓的后台服务,你须要拥有本身的数据库和web服务器,这个不多是免费的。除非以外,你还须要借助于相似Ruby on Rails,PHP或JAVA等编程语言来实现后台服务。但这样作有几个问题:sql
为移动应用提供后台服务须要大量的开发时间和精力的投入。一般来讲,开发后台服务的时间和客户端的时间几乎是同样的。数据库
即使你已是iOS或Android客户端开发高手,也不意味着你在后台服务的开发上一样NB。事实上,绝大多数程序猿都是专攻其中一项,可以前端后端同时开火左右手互搏的牛人固然有,只是要耗费大量的时间沉淀才可能达到这一步。编程
移动应用的天性决定,你永远不知道你的应用只是小众俱乐部成员,仍是哪天成为百万用户俱乐部的一员。除非是后台开发的高手,很难在开发应用时让应用具备极好的可扩展性。后端
4.金钱的投入浏览器
即使是选择最便宜的虚拟主机服务,你也得为此支付必定的费用。安全
正是由于有以上问题的存在,近年来出现了很多专门针对移动应用/游戏的第三方后台服务。服务器
PART I 关于BAAS服务
随着移动应用开发市场的火爆,已经有聪明人认识到了开发者的这一强烈需求,并提供高度可定制的网络后台服务模块,方便开发者整合到本身的应用之中。有砖家给这种服务提供了一个新的名词,美其名曰Backend as a Service(后台服务),或者更NB的说法叫BaaS。 这些后台服务提供商一般会提供一个整合的方案,其中包括了后台数据库存储,以及其它 可定制化的服务。而在iOS和Android应用中整合这些服务并不难,只须要调用一两个类库就好。大多数此类服务能够提供免费帐号,固然也针对规模可扩展性问题提供了不一样的付费帐号标准。
让咱们大概了解下BaaS提供商所提供的基本功能。 这样吧,让咱们假想一个应用,好比咱们要存储属于不一样队伍的运动员。这些BaaS提供 商能帮咱们些什么呢?
1. Custom objects(可定制的对象):一般来讲,后台服务的最重要功能就是能够将 应用数据存储到网络服务器的数据库中。在你的应用中通常都有表明数据的model对象(好比一个运动员对象,以及一个球队对象),以及对象间的关系(好比某个运动员属于哪一只球队)。BaaS服务提供商一般会让开发者用一种简单的方式从对象中获取数据, 并将其存储/保持到网络服务器的数据库中。
2. File storage(文件存储):除了保存数据库类型的数据,有时开发者还须要保存文 件-好比图片,大型文档等等。在这款假想的应用中,或许你须要为每个运动员保存一张肖像照片。绝大多数的后台服务都提供文件存储功能,方便开发者将文件和某个定制对 象关联在一块儿。
3. Geolocation:(地理位置信息)在大多数的移动应用中,可能会须要根据某个特定的位置来查询对象。例如,用户可能想查找本身手机附近的球队。BaaS服务容许开发者将 本身的对象标记一个特定的地理位置,这样用户就能够根据地理位置来查找对象。
4. Users(用户):很显然开发者须要对应用中的对象实行权限管理,并指定用户能够访问的特定对象。几乎全部的BaaS服务都容许开发者建立本身的用户,而大多数用户都 经过Facebook或Twitter来登陆。这样既能够扩大用户基数,同时也无需让用户建立新的 帐户。
5. Push notification(推送服务):BaaS服务容许开发者向本身的全部或选定用户发送 推送消息。 好吧,这样一来,你大概就清楚了BaaS服务提供商能帮到你些什么。接着让咱们来大概 了解下几个主要的BaaS服务提供商吧。
1. StackMob(StackMob)
多是目前全部BaaS服务中最流行也是最具可定制性的服务了。开发者能够上传本身的后端代码,建立本身的网络服务,这一点让它在BaaS服务提供商中显得鹤立鸡群。
固然也有不爽的地方,若是你要存储二进制文件(好比假想应用中的球员肖像图片),还得须要一个Amazon S3帐户。开发者没法直接在StackMob中维护管理二进制文件。他们的免费计划也稍显吝啬,但付费服务计划就显得很是慷慨合理了,并且扩容方面很方便。
2. Appcelerator Cloud Service (Cloud | Titanium Mobile App Development ) 毫无疑问,该服务是全部BaaS服务中功能最完整的,并且免费计划至关慷慨。不过它是设计来和Titanium SDK一块儿使用的,全部帮助文档稍显晦涩。而若是开发者不是在使用 Titanium的话,会发现有不少看不懂的地方须要跳过。 固然,该网站也提供了很不错的Q&A⻚页面帮助开发者解决各种问题,并且对问题的响应 很是迅速。
3. Parse(Parse):
提供全部BaaS服务中最好的免费服务计划。其帮助文档也是最容易理解的,所提供的服 务特别适合初学者,能够很短期里轻松上手(译者推荐)。 Parse还提供了示例项目,以及能够在项目中添加的定制UIView视图,好比Facebook和 Twitter登录视图。此外,它还提供了大量可用的第三方类库。
4. Applicasa(Virtual Store Platform, Complete In-App Purchase & Backend Solution): 提供了和其它BaaS类似的功能,不过增长了一个拖曳功能,能够方便开发者建立本身的 表格和定制化对象。一旦数据库结果设计完成,就能够下载定制的SDK。Applicasa的收 费基于你的活跃用户数量。若是你是创业型团队,那么它会提供一个免费帐户,容许每个月 10万人的活跃用户。不过你得主动联系他们申请。
5. Kinvey(Backend as a Service): 一样是一个很流行的BaaS服务。开发者在转为付费帐户前,该服务支持200个活跃用户。不过它的付费价格仍是比较高的。固然,大浪淘沙惟留真金,在很短的时间里面Parse已经成为了最主流的BAAS服务提供 商之一,特别是被Facebook以8500万美刀的价格收购以后(参考新闻http:// tech.sina.com.cn/i/2013-04-26/11458285564.shtml),Parse更是成为了BAAS服务的首 选。为了证实Parse能够为移动应用开发节约后台相关的时间,Parse提供了一个仿 Instagram的应用,号称在30分钟内便可开发完成(36氪 | 关注互联网创业139629.html)。
PART II Parse简介
在上面的内容中咱们已经了解到Parse也是BAAS服务的一种,那么它有什么样的特色 呢? parse的最大特定是简单易用,提供完美的文档支持,能够在极短的时间内上手。
1. Parse Data
相似网络数据库的功能,能够在云端存储应用中的数据,无需配置本身的服务器。 支持多种数据类型:
可存储的数据类型包括基本数据类型,地理位置信息,照片和查询等等,可彻底替代 MySQL和NoSQL数据库。
云端更新:
Parse Data具备云端更新功能,开发者能够经过这里上传应用中的新资源文件,并当即 推送到应用中,而无需通过苹果的第三方审查从新提交应用。
强大的数据管理功能: 支持可视化操做,能够在无需编写一行代码的状况下管理,查询和更新服务器数据。 Parse提供了Data browser数据浏览器,容许开发者在相似excel表格的界面中管理数据库 中的数据。 固然,若是数据库中的数据不少,parse还提供了强大的filtering筛选功能,经过设置筛选 条件(相似sql语句),能够迅速找到须要更新的数据。
在data browser中开发者还能够直接添加或删除数据列,删除全部数据,设置访问权限 等。 此外,若是开发者须要一些定制功能,还能够直接联系parse(Plans | Parsecontact_sales)。
2. Parse Push(推送服务)
使用Parse Push能够建立、预设置和分割推送消息。parse的推送服务SDK简单高效,可 以经过网⻚页平台,REST API或客户端SDK来发送推送消息。
Parse Push的推送服务支持超大规模推送,不管你的应用有多少需求,均可以扩展满 足。
可视化的Push Composer:经过Parse dashboard里面的Push Composer,能够很方便的 建立、预览和发送推送消息到全部平台(iOS,Android,win8)。其简单程度和发送邮件无 异。 开发者只须要在文本框中输入相关信息,设置要发送的时间,格式(文本或JSON),并 选择要推送的设备类型(可全选),就能够当即在设备上看到效果。 精准目标设定:Pro和企业用户还能够设置特定的条件将消息推送给特定用户。
3. Parse Social
只需短短几行代码,就能够建立本身的帐号系统,或者和第三方社交网络绑定 (twitter,facebook)。parse social负责帐号绑定,密码设置,信息验证和安全等最繁琐 的事情。固然,相似微博微信这样的天朝社交网络仍是须要自行绑定的。
此外,parse social容许用户在多个不一样设备上使用同一帐号来登陆。 4. Parse Hosting-为网站所推出的特别服务
相似于云存储的服务,利用支持Javascript SDK和Cloud Code来实现。 让你的网站为他人所知,parse hosting能够保持静态网⻚页HTML,JavaScript,CSS,并通 过和Cloud Code交互建立动态⻚页面,从而无需后台服务器。
若是升级到Parse Pro,还能够支持自定义域名。
Parse Hosting的价格以下:
(1)免费服务: 每个月100万次API请求,每超出1000次收费7美分,文件存储1GB免费空间,每超出1GB 收费20美分
(2)付费199美圆服务: 每个月1500万次API请求,每超出1000次收费5美分,文件存储10GB,每超出1GB收费15 美分
(3)企业级服务:
能够联系对方确认。
能够看到,Parse Hosting 的服务价格从文件存储的角度来看并无太大优点,对于重度 文件存储类应用须要考虑其它云服务。此类用户能够考虑StackMob +Amazon S3服务。
5.Cloud Code 支持iOS,Android或HTML5,
6.所支持平台或服务:
iOS, OSX,ANDROID,Javascript,Windows Phone 8,Windows 8,.NET,RESTful API
parse的总体服务价格是基于API调用的:
1. 免费: 支持每个月 100万 次API调用, 支持每个月 100万次推送服务,峰值每秒20次
2. 付费:每个月199美刀,支持每个月1500万次API调用,支持每个月500万次推送服务,峰
值每秒40次,提供30天的免费试用期
3. 企业级服务:能够单独谈。
PART III. Parse的iOS应用示例(使用Xcode4.6, iOS6.1)
该部份内容涉及到代码(示例代码参考了parse官方示例及raywenderlich网站中的相关教程),详细内容参考连接中的pdf文件:
http://vdisk.weibo.com/s/3Q0p9MS10TK
原文: http://zhuanlan.zhihu.com/kidscoding/19597061
----文章完----
最后,推荐一个神器
我的以为比TestFlight更简单好用,开发者只须要简单把打好的ipa包上传上去,生成二维码,测试人员在手机上扫码二维码,就能够直接安装最新的测试版本了,好用的让人想哭。