Google Glass之Mirror API探秘與開發(fā)實踐
Glass應用的設計原則
Google Mirror API 是一種RESTful Web 服務類 API;開發(fā)者給 Google Glass 寫的應用叫做 "Glassware"。Google 希望 Glass 可以帶給用戶“下一代的移動互聯網體驗”,也給出 4 條相應的設計原則:
- 為Glass而設計。你的應用應該是專門為Glass而設計、開發(fā)和測試,以保證適合Glass的用戶體驗。
- 不要妨礙用戶。Glass的用戶希望在需要時使用科技,而在不需要是讓科技消失。不要過分使用用戶不期待的通知。
- 及時性。信息的實時性和及時性會讓Glass這個平臺最有效。
- 避免用戶意料之外的事情。應用中包括用戶沒有期待的功能在任何平臺上都是不好的,但是因為Glass和用戶的生活體驗太接近了,所以更要避免。你需要對用戶誠實解釋你應用的目的和所需要的用戶授權。
很顯然,Google 對待 Glass 的態(tài)度有點像對待自己的小孩兒一樣,一切都是小心翼翼的,而 Glass 的應用門檻可能也會比 Android 應用要更高一些。
時間軸卡片的一切
Glass 向用戶展示信息的主要方式是通過”時間軸卡片“(Timeline Card)。時間軸卡片可以顯示文字、圖片、視頻和 HTML。除了單卡片顯示之外,開發(fā)者也可以將多張卡片放在一起(bundle),然后用戶可以通過聲音或者觸控瀏覽。
這當然也意味著開發(fā)者們的 "Glassware" 應用最終的信息呈現也是通過這些時間軸卡片。最常見的 API 行為包括:
- 在時間軸上創(chuàng)建新卡片
- 更新原來的卡片
- 通過卡片的菜單獲得用戶的輸入
- 接受Glass的通知,所以可以對用戶的行為做相應的反應
附加背景的時間軸卡片是這樣的:
下面講述Mirror API的開發(fā)實踐,當然,首先是我們最熟悉的Hello World.
#p#
Hello World
每一位程序員在學習一個新語言或 API 時,做的第一件事應該都是寫“Hello World “。這是 Glass API 的 "Hello World" 程序:
HTTP/1.1 201 Created Date: Tue, 25 Sep 2012 23:30:11 GMT Content-Type: application/json Content-Length: 303 { "kind": "glass#timelineItem", "id": "1234567890", "selfLink": "https://www.googleapis.com/mirror/v1/timeline/1234567890", "created": "2012-09-25T23:28:43.192Z", "updated": "2012-09-25T23:28:43.192Z", "etag": "\"G5BI0RWvj-0jWdBrdWrPZV7xPKw/t25selcGS3uDEVT6FB09hAG-QQ\"", "text": "Hello world" }
這種語構對于使用過其它 RESTful API 的開發(fā)者應該還是比較容易上手的。顯示的結果是:
GPS定位和地圖
另一類應該是很常用的 API Call 應該是與地理位置有關的,因為我們可以想象很多 Glass 的應用會是屬于 LBS 類型的應用。
開發(fā)者可以通過 Mirror API 直接請求用戶的最后已知位置,也可以通過 " 訂閱”(subscribe)來獲取用戶位置的更新,但是對于這種訂閱式的位置更新,Google 限制 Glass 在只能每十分鐘發(fā)送一次。這里的原因應該是為了節(jié)省電池使用,但應該也有出于用戶隱私的一些考慮。
Glass 和 Google 地圖有深度結合,可以通過 Mirror API 直接渲染出一個 Google 地圖的圖片,開發(fā)者可以指定地點、路線、地圖寬度、地圖高度和聚焦等參數。顯示結果也是通過時間軸卡片:
分享權限和“聯系人”
在默認權限下,Glass 應用只可以控制應用自己創(chuàng)造的時間軸卡片。用戶需要通過一種”聯系人“方式的授權來容許跨應用的時間軸卡片分享,以及分享用戶自己用 Glass 創(chuàng)造的媒體,比如照片和視頻。
來獲得分享授權,Glass 應用需要發(fā)送給用戶一個請求,其中要包含應用的 ID、名字和圖標。Google 建議圖標為 640x360 像素的 PNG 文件。
總而言之
我們可以看得出,不同于 Android API,Google Mirror API 目前并不容許開發(fā)者直接與硬件接軌,而且是非常重視用戶隱私和遵守權限的。這個原因很多,Glass 是一種全新的智能設備,而且與用戶的距離比以前任何一種智能設備要更親密,所以 Google 在 API 方面最開始采取比較保守的態(tài)度是意料之中的。第一代 iPhone 的 API 相比現在的 iOS API 也要單薄很多,Google 必定會繼續(xù)擴展 Mirror API 中的功能,讓開發(fā)者們可以實現更多的應用設計。