版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、iPhone开发教程之将 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 的结果,针对手持设备的云计算和软件开发是两项非常热门的技术,并被越来越多地结合起来用于创建混合解决方案。在本文中,了解如何连接 Google App Engine(Google 的云计算功能)和 iPhone(Appl
2、e 的移动平台),以及如何通过连接到 App Engine 云并缓存应用程序数据以备离线使用,从而利用开源库 TouchEngine 动态控制 iPhone 上的应用程序数据。,简介,过去几年出现了很多创新技术,2008 年对技术而言是不同凡响的一年。两项最让人兴奋的创新是云计算和移动应用程序开发。在本文中,我们将探究一种通信方法,这种方法能利用这两个技术来实现协作开发人员的梦想。在本文中,我们将使用 Google App Engine(Google 的云计算平台)和 iPhone(Apple 的移动平台)来开发一个能同步 “云” 数据的应用程序。,我们将利用一种简单的方法来从 App Eng
3、ine 拉出数据放到 iPhone 上; 这种方法需要大量使用 python 和 App Engine。使用 RSS、ATOM 或 REST 将数据连锁到 iPhone 的常规方法非常简单,但是必须要编写一个解析器。更简单的一种做法是使用 XML 属性列表或 plist。根据属性列表的手册页面(参见 参考资料):“属性列表使用几个核心基础类型将数据组织成指定的值和值的列表,这些类型包括 CFString、CFNumber、CFBoolean、CFDate、CFData、CFArray 和 CFDictionary。借助这些类型,您就能够生成结构良好、可传输、可存储和可访问的数据,并且还尽可能提
4、高了效率。”,plist 消除了在 iPhone 上解析 XML 的烦扰,因为这些 plist 是 XML 文件格式的,Cocoa Touch 可以很容易将其解析并转变成有意义的对象。在 App Engine 上使用 Python 内的 plist 库,不用费什么力气就能将任意一个简单 Python 库对象发送给 iPhone,但前提是 Python 库内的数据类型是 plist 允许的。本文展示了使用 TouchEngine 开源库开发应用程序以便查看莎士比亚的十四行诗。要获得 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、发人员而言,iPhone 提供了丰富的开发环境。直到最近,Objective-C 对 很多开发人员而言仍旧是一种相当深奥的语言,因为它只用于 NeXT 和 Apple,但是现在通过 Cocoa Touch SDK,它的支持者开始多了起来。借助 iPhone,Objective-C 更是成为了全部新一代移动应用程序开发人员的前沿和中心。,有了 Amazon 的 S3 存储和 EC2 弹性计算服务,云计算在可视化方面得到了很大的推进。Google App Engine 是基于服务的云计算市场的一个新生力量。Google App Engine 为著名的 Google 可伸缩数据中心提供了一个 Pyt
7、hon 语言的 API(将来会出现其他语言的版本)。这是一个极大的变革,它让软件开发人员能够从管理应用程序伸缩性的固有复杂性中解脱出来,让他们能将精力集中于应用程序的编写。,何为 Google App Engine?,我们先来看看如何从 Google App Engine 生成 plist 文件,之后,您会通过 iPhone Cocoa Touch SDK 在 iPhone 上使用该文件。由于 App Engine 起初是免费的,所以它成为了移动应用程序开发人员的一种有趣的原型化方法。此外,此 API 是 Python 版本,而该语言享有开发迅速的美誉;而且它还是一种解释效率很高的语言。通过
8、App Engine 和 Python 将 iPhone 应用程序的繁重任务以及数据存储外包给 “云功能”,是一种非常有益的做法。,从 Google App Engine 生成 plist 文件,要跟随本文进行操作,需要下载 App Engine SDK(参见 参考资料 以获得最新版本)。有了 App Engine,很容易就能让一个 protype 在几分钟内工作起来。请注意,您也可以从本文附带的源代码下载此示例。 为了将 plist 文件提供给 iPhone 应用程序使用,只需将 App Engine project 目录内的 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(),上面这个代码片段将包含莎士比亚十四行诗的字典的内容转变成一个 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 函数将 URL /plists/sonnets 传递到类 Mai
14、nHandler。如果此客户机通过 HTTP GET 请求数据,就会返回类似清单 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 而且大多数浏览器都会试图显示它。请参阅页面的源代码,查看格式化的 plist。 Python 和 App Engine 示例的更详细信息以及有关 Google App Engine
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国智能汽车智能座舱供需分析及未来发展趋势报告
- 2026中国叶黄素酯原料种植基地建设规划研究报告
- 2026中国洗衣粉行业高端市场突破与品牌定位战略研究报告
- 2026中国土壤改良行业市场现状供需分析及投资评估规划分析研究报告
- 2026全球益生菌原料市场竞争格局与菌株专利布局研究报告
- 2026汽车制造业行业市场前景评估及投资发展策略报告
- 解析四川专升本考试题目及答案
- 四川省广安市-学年高二数学上学期期末考试试题-理
- 技术路线图评定报告
- 农村留守老人数字素养对主观幸福感的影响研究报告
- 2026秋季学期新教材译林版(三起)六年级上册英语Unit 1 Try your best 教案(3课时)
- 绵阳英才中学2025初一入学语文分班考试真题含答案
- 新二升三暑假英语26个字母每日一练过关练22天
- 2026年高校行政管理岗招聘笔试典型试题及要点含答案
- 光伏施工方案范文模板
- 2026年时事政治考试题库及答案(100题)
- 2026年危险化学品生产单位安全生产管理人员安全生产模拟考试题库及答案
- 高标准农田建设技术工作手册
- 魏家凉皮考勤制度
- 无刷电机培训
- 临床医学大三《急性脑梗塞合并一氧化碳中毒》教学设计
评论
0/150
提交评论