閱讀此文章須要對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包上傳上去,生成二維碼,測試人員在手機上掃碼二維碼,就能夠直接安裝最新的測試版本了,好用的讓人想哭。