版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、iPhone開發(fā)教程之將 Google 的云計算功能連接到 Apple 的 iPhone 中(1),簡介 iPhone SDK 和 Google App Engine 的背景 何為 Google App Engine? 從 Google App Engine 生成 plist 文件 清單 1. main.py 清單 2. sonnet.py 的示例 清單 3. HTTP Get 的結果,針對手持設備的云計算和軟件開發(fā)是兩項非常熱門的技術,并被越來越多地結合起來用于創(chuàng)建混合解決方案。在本文中,了解如何連接 Google App Engine(Google 的云計算功能)和 iPhone(Appl
2、e 的移動平臺),以及如何通過連接到 App Engine 云并緩存應用程序數(shù)據(jù)以備離線使用,從而利用開源庫 TouchEngine 動態(tài)控制 iPhone 上的應用程序數(shù)據(jù)。,簡介,過去幾年出現(xiàn)了很多創(chuàng)新技術,2008 年對技術而言是不同凡響的一年。兩項最讓人興奮的創(chuàng)新是云計算和移動應用程序開發(fā)。在本文中,我們將探究一種通信方法,這種方法能利用這兩個技術來實現(xiàn)協(xié)作開發(fā)人員的夢想。在本文中,我們將使用 Google App Engine(Google 的云計算平臺)和 iPhone(Apple 的移動平臺)來開發(fā)一個能同步 “云” 數(shù)據(jù)的應用程序。,我們將利用一種簡單的方法來從 App Eng
3、ine 拉出數(shù)據(jù)放到 iPhone 上; 這種方法需要大量使用 python 和 App Engine。使用 RSS、ATOM 或 REST 將數(shù)據(jù)連鎖到 iPhone 的常規(guī)方法非常簡單,但是必須要編寫一個解析器。更簡單的一種做法是使用 XML 屬性列表或 plist。根據(jù)屬性列表的手冊頁面(參見 參考資料):“屬性列表使用幾個核心基礎類型將數(shù)據(jù)組織成指定的值和值的列表,這些類型包括 CFString、CFNumber、CFBoolean、CFDate、CFData、CFArray 和 CFDictionary。借助這些類型,您就能夠生成結構良好、可傳輸、可存儲和可訪問的數(shù)據(jù),并且還盡可能提
4、高了效率?!?plist 消除了在 iPhone 上解析 XML 的煩擾,因為這些 plist 是 XML 文件格式的,Cocoa Touch 可以很容易將其解析并轉(zhuǎn)變成有意義的對象。在 App Engine 上使用 Python 內(nèi)的 plist 庫,不用費什么力氣就能將任意一個簡單 Python 庫對象發(fā)送給 iPhone,但前提是 Python 庫內(nèi)的數(shù)據(jù)類型是 plist 允許的。本文展示了使用 TouchEngine 開源庫開發(fā)應用程序以便查看莎士比亞的十四行詩。要獲得 Google Code 項目的鏈接,請參見 參考資料。,首先,讓我們先來看看有關 iPhone SDK 和 Goo
5、gle App Engine 的背景信息。 iPhone SDK Native iPhone SDK 可通過 Objective-C 語言得到。它非常類似于 Mac OS X 上的 Cocoa 編程,包括了能充分利用 iPhone 獨特特性的一些 API,比如 GPS、觸摸屏(multi-touch)、加速器(accelerometer)以及屏幕鍵盤。將來的功能還將包括對通知自動推入(push notification)等技術的支持。有關 iPhone Native SDK 的更多信息,請參見 參考資料。,iPhone SDK 和 Google App Engine 的背景,對于移動應用程序開
6、發(fā)人員而言,iPhone 提供了豐富的開發(fā)環(huán)境。直到最近,Objective-C 對 很多開發(fā)人員而言仍舊是一種相當深奧的語言,因為它只用于 NeXT 和 Apple,但是現(xiàn)在通過 Cocoa Touch SDK,它的支持者開始多了起來。借助 iPhone,Objective-C 更是成為了全部新一代移動應用程序開發(fā)人員的前沿和中心。,有了 Amazon 的 S3 存儲和 EC2 彈性計算服務,云計算在可視化方面得到了很大的推進。Google App Engine 是基于服務的云計算市場的一個新生力量。Google App Engine 為著名的 Google 可伸縮數(shù)據(jù)中心提供了一個 Pyt
7、hon 語言的 API(將來會出現(xiàn)其他語言的版本)。這是一個極大的變革,它讓軟件開發(fā)人員能夠從管理應用程序伸縮性的固有復雜性中解脫出來,讓他們能將精力集中于應用程序的編寫。,何為 Google App Engine?,我們先來看看如何從 Google App Engine 生成 plist 文件,之后,您會通過 iPhone Cocoa Touch SDK 在 iPhone 上使用該文件。由于 App Engine 起初是免費的,所以它成為了移動應用程序開發(fā)人員的一種有趣的原型化方法。此外,此 API 是 Python 版本,而該語言享有開發(fā)迅速的美譽;而且它還是一種解釋效率很高的語言。通過
8、App Engine 和 Python 將 iPhone 應用程序的繁重任務以及數(shù)據(jù)存儲外包給 “云功能”,是一種非常有益的做法。,從 Google App Engine 生成 plist 文件,要跟隨本文進行操作,需要下載 App Engine SDK(參見 參考資料 以獲得最新版本)。有了 App Engine,很容易就能讓一個 protype 在幾分鐘內(nèi)工作起來。請注意,您也可以從本文附帶的源代碼下載此示例。 為了將 plist 文件提供給 iPhone 應用程序使用,只需將 App Engine project 目錄內(nèi)的 plistlib.py 包括進來,稍微修改一下 main.py
9、腳本,再包括進 sonnet.py。Sonnet.py 是一個 Python 源文件,其中的一個目錄包含所有莎士比亞十四行詩的文本。清單 1 所示的就是這個 main.py 文件。,#!/usr/bin/env python #Python sonnet maker import wsgiref.handlers from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app #external imports import sonnet import plist
10、lib,清單 1. main.py,class MainHandler(webapp.RequestHandler): Returns sonnets dictionary as a converted plist def get(self): plist = plistlib.writeplistToString(sonnet.verses) self.response.out.write(plist) def main(): application = webapp.WSGIApplication(/plists/sonnets, MainHandler), , debug=True) r
11、un_wsgi_app(application) if _name_ = _main_: main(),上面這個代碼片段將包含莎士比亞十四行詩的字典的內(nèi)容轉(zhuǎn)變成一個 XML plist,并將其提供給任何請求此 /plists/sonnets URL 的客戶機。不管您相信與否,這就是我們的這個 Google App Engine 應用程序的主體。清單 2 給出了 sonnet.py 的一小部分。,verses=verses:I,FROM fairest creatures we desire increase, That thereby beautys rose might never die,
12、 But as the riper should by time decease, His tender heir might bear his memory: But thou, contracted to thine own bright eyes, Feedst thy lightst flame with self-substantial fuel, Making a famine where abundance lies, Thyself thy foe, to thy sweet self too cruel. Thou that art now the worlds fresh
13、ornament And only herald to the gaudy spring,清單 2. sonnet.py 的示例,Within thine own bud buriest thy content And, tender churl, makest waste in niggarding. Pity the world, or else this glutton be, To eat the worlds due, by the grave and thee. NOTE: EDITED FOR SPACE main 函數(shù)將 URL /plists/sonnets 傳遞到類 Mai
14、nHandler。如果此客戶機通過 HTTP GET 請求數(shù)據(jù),就會返回類似清單 3 的結果。, verses I FROM fairest creatures we desire increase,清單 3. HTTP Get 的結果,That thereby beautys rose might never die, But as the riper should by time decease, His tender heir might bear his memory: But thou, contracted to thine own bright eyes, Feedst thy
15、lightst flame with self-substantial fuel, Making a famine where abundance lies, Thyself thy foe, to thy sweet self too cruel. Thou that art now the worlds fresh ornament And only herald to the gaudy spring,Within thine own bud buriest thy content And, tender churl, makest waste in niggarding. Pity t
16、he world, or else this glutton be, To eat the worlds due, by the grave and thee. NOTE: EDITED FOR SPACE,訪問 isonnet 項目主頁(相關鏈接,請參考 參考資料),可以看到此輸出。此 URL 給出的是一個編輯后的莎士比亞十四行詩的完整 plist 表示。不過,請注意,您的瀏覽器可能將此顯示為一個巨大的純文本文件。XML plist 是有效的 XML 而且大多數(shù)瀏覽器都會試圖顯示它。請參閱頁面的源代碼,查看格式化的 plist。 Python 和 App Engine 示例的更詳細信息以及有關 Google App Engine
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化學鍍銀工操作安全模擬考核試卷含答案
- 塑料模具工創(chuàng)新思維能力考核試卷含答案
- 工程船舶水手操作管理競賽考核試卷含答案
- 多孔硝酸銨造粒工安全文明測試考核試卷含答案
- 絕緣防爆工具制作工崗前技術改進考核試卷含答案
- 五年級感冒咳嗽請假條
- 2025年呼吸制氧項目發(fā)展計劃
- 2025年地震數(shù)字遙測接收機合作協(xié)議書
- 2026年數(shù)字孿生水務系統(tǒng)項目營銷方案
- 2025年陜西省中考地理真題卷含答案解析
- 不良資產(chǎn)合作戰(zhàn)略框架協(xié)議文本
- 2025年鹽城中考歷史試卷及答案
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫完整參考答案詳解
- 2025年鄭州工業(yè)應用技術學院馬克思主義基本原理概論期末考試模擬試卷
- 測繪資料檔案匯交制度
- 2025年六年級上冊道德與法治期末測試卷附答案(完整版)
- IPC7711C7721C-2017(CN)電子組件的返工修改和維修(完整版)
- 呂國泰《電子技術》
- 哈薩克族主要部落及其歷史
- 2015比賽練習任務指導書
- 人教版七年級語文上冊期末專題復習文言文訓練及答案
評論
0/150
提交評論