標籤:
目前正在開發的產品告一段落,有時間總結下經驗,也順便分享一下我們主要使用的平台-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 logo的網頁和郵件地址。Pro使用者可以自訂郵件模版,頁面範本,或者要求Parse redirect到自己應用的官網。
6. Facebook和Twitter賬戶綁定。就是建立PFUser和Facebook和Twitter賬戶的關聯。同時Parse的SDK也包含了Facebook和Twitter的SDK。這個應該只對那些面向國外市場的同學有用。
Parse的SDK包括什麼?
第三方的雲端服務滿天飛,好用才是關鍵。看看Parse團隊的介紹,都是些牛人,放出來的SDK的品質也沒話說。官方的有iOS和Android,非官方的基本都全了,包括WP,PHP,Flex Java等等。這裡只談iOS的SDK。除了基本的和後台Restful API的介面外,還包括了一個封裝了下來重新整理的table view controller,挺漂亮的登陸,註冊介面,非同步讀取儲存資料介面和Cache。官網上除了各種例子之外,最近還放出了個真正上App Store的項目AnyWall。有興趣的同學可以去看看。
好了說了那麼多,可以看看代碼了。英語好的同學可以參考官方文檔:www.parse.com,或者聽我講講實際使用的經曆,代碼例子來自Parse官方文檔和我本人的項目。可以參考 https://www.parse.com/apps/quickstart 建立本地開發環境。
最簡單的Parse對象就是下面這個:
Object c代碼
- score: 1337, playerName: "Sean Plott", cheatMode: false
如果用parse儲存的話就是:
Object c代碼
- 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格式為:
複製代碼
Object c代碼
- 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後台服務(一)