`
iefreer
  • 浏览: 3698 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

基于模型开发iPhone twitter客户端

阅读更多
本文介绍使用基于模型的开发方式来快速开发移动web应用程序。
我们将开发一个Twitter客户端的iPhone应用程序。

看到iPhone应用程序,您可能会犹豫。难道我要为此去购买一个Mac机,我是不是还要先申请加入苹果开发人员计划,是不是还要买个iPhone?幸运的是,这里介绍的开发方式,你只要有PC机和浏览器即可,大部分工作都由模拟器来完成。

如果您有过iPhone开发经验,那么应该知道使用XCode构建一个显示Twitter最新消息的客户端,基本上需要做如下几件事情:

*)设计界面
*)连接元素
*)建立HTTP连接
*)发送请求、读取资源
*)解析JSON数据
*)添加用户图标
*)更新界面数据

根据您对XCode工具、iPhone SDK以及Objective C语言的掌握程度,可能会花费几天或几个小时不等的时间来完成这个任务。

那么让我们试试下面基于模型的方法是不是给我们带来一些Amazing Magic。

首先您得下载必要的开发工具Tersus Studio windows版本:http://www.tersus.com/#Id=240。

这是一个基于Eclipse的开源开发平台。

第一步:基础设置

--------------------------------------------------------------------------------

1.   创建一个新Tersus project:

o    选择File -> New -> Tersus Project.

o    输入Project name:  Twitter

o    选择Template: iPhone Application

o    点击Finish 按钮

2.       在模型编辑器(即中间的主窗口)中,双击放大到 <iPhone View>/Body.

3.       右键点击Body --> Add Element: Scroll Pane. 名字修改为: Top Trends Screen.

4.       放大到 Top Trends Screen.

5.       右键点击Top Trends Screen -->Add Element: List.

这样我们就创建了一个包含一个列表控件的带滚动条的<iPhone View>。注意该工程Outline窗口中有两个视图,分别是<Desktop View>和<iPhone View>,这里因为我们创建的是iPhone应用,因此我们仅关注<iPhone View>,展开它可以看到刚才添加的元素。保存工程并运行它(焦点需要在模型编辑器中)。浏览器将会自动启动。默认情况为打开https://localhost:8080/twitter,我们在后面加上/iphone.html。也就是https://localhost:8080/twitter/iphone.html。这样将会出现如下iPhone空白界面:



第二步:读取Twitter数据

--------------------------------------------------------------------------------

在模型编辑器中,放大到<iPhone View>/Body/Top Trends Screen/List.
从左边palette窗口的Basic部分拖动一个Action到Top Trends Screen. 取名为Init.
建模Top Trends Init 动作:
放大到Init.
从palette窗口的Basic部分拖拉一个Service. 取名Get Top Trends.
添加一个exit(灰色小箭头)到Get Top Trends.
从Display Actions 部分拖拉一个Alert. 
从Get Top Trends的exit到Alert trigger(绿色小箭头)创建一个flow. Init模型看起来如下:



建模Get Top Trends服务:
从Constants部分拖拉一个Text常量。数值为'http://search.twitter.com/trends.json'。名字改为Trends URL.
从Basic部分拖拉一个Action,取名Download URL. 给这个action添加一个trigger和一个exit。 
从Trends URL constant 到Download URL的trigger创建一个flow。
从Download URL的exit到Get Top Trends的exit创建一个flow。这个服务现在看起来应该像下面这样:



建模Download URL 动作:
从Miscellaneous部分拖拉一个Read Resource.
从Text部分拖拉一个Binary to Text, 从中删除<Encoding> trigger。
从Download URL 的trigger到Read Resource 的<URL> trigger创建一个flow。
从Read Resource的<Content> exit到Binary to Text的<Binary> trigger创建一个flow。
从Binary to Text的exit到Download URL的exit创建一个flow。Download URL 看起来如下:



保存工程
切换回浏览器窗口。应该会自动更新。
你将会看到一个Alert窗口,显示从Twitter获取到的JSON格式数据。
注:如果您在国内,那么因为社会和谐的原因,你将得到无法访问https://search.twitter.com/trends.json URL的错误。不过不要担心,稍后会给出解决方法。你可以暂时把Twitter search的URL改为Google map的URL来体验上述过程。

第三步:以iPhone的风格显示数据


--------------------------------------------------------------------------------

在模型编辑器中,放大到<iPhone View>/Body/Top Trends Screen/List.
右键点击List --> Add Element: Content Item.
建模Init 动作:
放大到Init Action.
给Get Top Trends添加一个exit. 命名为Parsed Data。设置其Reptetive属性。(选中exit对象,点击右键)
右键点击Init --> Add Ancestor Reference: 选择Top Trends Screen.
从Get Top Trends的repetitive exit(重叠的灰色小箭头)到Content Item (Scrollable Pane/List/Content Item)元素的exit创建一个flow。
删除到Alert的flow。
到目前为止Init 动作应该看起来如下:



删除Alert 元素。
建模Get Top Trends:
从Miscellaneous部分拖拉一个Parse JSON.
从Download URL 的exit到Parse JSON的<JSON Text> trigger创建一个flow。
从Data Types部分拖拉一个Data Structre。取名: Top Trends DS.
从同样的部分拖拉下面这些元素到Top Trends DS 并如下命名:
   
as_of: 类型: Text.

trends: 类型: Data Dtructure; Reptetive.

name: 类型: Text.

url: 类型: Text.

从Parse JSON 的<Value> exit 到Top Trends DS 创建一个flow。
从Basic部分拖拉一个Action。取名Convert to Content Item.
为这个动作添加一个trigger 和一个exit。设置动作为repetitive
从Top Trends DS/trends 到Convert to Content Item 的trigger创建一个flow。
从Convert to Content Item 的exit 到Get Top Trends 的repetitive exit (Prased Data) 创建一个flow.
Get Top Trends 服务模型看起来应该如下:


    

建模'Convert to Content Item':
右键点击Convert to Content Item 的trigger并选择Show in Repository Explorer. 从Repository Explorer 中拖拉trends 数据结构到模型编辑器中的Convert to Content Item 动作中。
从Convert to Content Item 的 trigger 到trends 创建一个flow。
同样的: 右键点击Convert to Content Item 的exit 并选择 Show in Repository Explorer. 从Repository Explorer 拖拉Content Item到Convert to Content 动作里. 从Content Item 到Convert to Content Item 的exit 创建一个flow。
从Constants部分拖拉一个Text 常量,设置数值为: Twitter48.png.
从"Twitter48.png" constant 到 Content Item/Icon/<Path>创建一个flow。
从trend/name 到Content Item/Content Holder/Title Text/<Value>创建一个flow。
从trend/url 到Content Item/Content Holder/Content Text/<Value>创建一个flow。
Convert to Content Item 看起来应该如下:


                    

添加图像:
切换到Navigator view (Window -> Show View -> Navigator)
下载图片: http://downloads.tersus.com/Twitter48.png  并保存到 [Tersus Workspace]/Twitter/web.
保存工程.
切换回浏览器,应该会自动刷新。
如果您的所在地能够访问twitter网站,您将看到如下页面:







如果您有幸在和谐的国度里享受纯净的生活,还想见到如上叽叽喳喳的消息界面,那么您将需要付出一些额外的努力:

1、              安装freegate软件。请Google之。

2、              设置Tersus Studio http代理:Windows->Preference->General->Network Connections







到此为此,您没有写一行代码!您的工作台上只有如下的模型图:






好吧,我们用鼠标拖来拖去完成了这个神奇的魔术。如果熟练的话,画出这个模型图也许半个小时都不到。您或许还想把这个模型应用到Android、Blackbery、Symbian、Windows Phone、J2ME上去。这也正是平台开发者所正在努力的方向。毫无疑问,这代表着一种先进的软件生产方式。我们可以在模型产生的代码框架基础上继续开发。


最后还需要补充一点,虽然我们完成的是一个移动web程序,但如果您希望和以前那样通过苹果App Store的方式来运作,也完全没有问题。借助Tersus Studio,您可以把这个工程导出为一个iPhone本地应用程序即XCode工程。这样您可以在一个迅速搭建的应用程序框架的基础上对工程进行再加工。比如添加本地资源访问(相机、通讯录、加速度、位置信息、指南针、短消息、邮件等)或者更为丰富的用户界面方面的支持。
  • 大小: 78.5 KB
  • 大小: 12.2 KB
  • 大小: 10.5 KB
  • 大小: 34 KB
  • 大小: 17.8 KB
  • 大小: 15.1 KB
  • 大小: 25.2 KB
  • 大小: 153.9 KB
  • 大小: 19.3 KB
  • 大小: 41.8 KB
分享到:
评论

相关推荐

    iPhone的Twitter客户端NatsuLiphone.zip

    NatsuLiphone 是一个 iPhone 上的 Twitter 开源客户端,可显示好友的时间轴信息和发布状态信息。 标签:NatsuLiphone

    基于Doubango的iphone手机客户端函数封装手册

    《基于Doubango的iPhone手机客户端函数封装手册》是一份详尽的开发指南,主要针对使用Doubango框架进行iOS应用开发的工程师。Doubango是一个开源的多媒体通信框架,适用于移动设备,提供了丰富的功能,如VoIP、视频...

    基于Mtime的iPhone影评客户端模块的设计与实现毕业设计_说明.doc

    《基于Mtime的iPhone影评客户端模块的设计与实现》这篇毕业设计主要探讨的是如何构建一个针对iPhone平台的影评客户端应用,该应用与Mtime网站对接,允许用户对电影进行评论和欣赏。以下是对该设计的主要知识点的详细...

    简单的Twitter客户端ios开源代码

    简单的Twitter客户端ios开源代码

    基于iOS的新浪微博iPhone客户端的设计与实现

    本资料主要内容是:基于iOS的新浪微博iPhone客户端的设计与实现的全面讲解。可作为毕业设计的资料。

    Iphone 点餐客户端源码

    本款点餐客户端源码可能是基于这两种语言之一,利用苹果的Xcode集成开发环境进行编译和调试。开发者需要对iOS平台的基本架构、生命周期管理和界面设计有深入理解。 二、UI设计与交互 iOS应用的用户界面设计遵循...

    基于doubango的iphone客户端:源代码结构简介

    ### 基于doubango的iPhone客户端:源代码结构详解 #### 一、iOS-NGN-Statck工程 **iOS-NGN-Statck** 工程是基于Doubango框架构建的核心部分,主要负责实现底层通信功能。整个项目被划分为几个主要模块,包括测试...

    【手机平台软件开发系统客户端验收报告】 软件开发项目验收报告.doc

    随着 iPhone 的风行,基于 iPhone 平台的软件开发越来越热门。电子阅读器是其中的一种,用户对电子阅读器的需求集中在主流格式电子资源的阅读上。 XXX 拥有自己的数字媒体效劳平台,将开发一款基于 iPhone 平台的...

    iPhone开发(淘宝客户端源代码)

    《深入探索iPhone开发:基于淘宝客户端源代码》 在iOS开发领域,对于新手而言,能够接触到实际项目的源代码是极其宝贵的资源。本篇文章将详细剖析一款开源的淘宝客户端源码,帮助开发者理解并掌握iPhone应用开发的...

    iphone手机办公客户端下载

    "移动办公iPhone版客户端部署说明.doc"文件,显然是为初次使用该客户端的用户提供了一份详细的安装和配置指南。这份文档可能涵盖了如何从App Store下载应用、安装过程、设置账户、同步公司数据、以及解决常见问题等...

    iPhone 的 Github 客户端 GitPhone.zip

    iPhone 的 Github 客户端 GitPhone ,GitPhone 是 iPhone 上的一个体验的 Github 客户端 App,可实现简单的查看资...

    异速联iPhone客户端

    异速联iPhone客户端是一款专为苹果用户设计的移动应用程序,旨在提供高效、便捷的数据访问和文件同步服务。这款客户端让iPhone用户能够随时随地连接到异速联服务器,享受跨平台的数据共享和协作体验。 异速联技术的...

    Iphone客户端设置说明.docx

    在本篇《Iphone客户端设置说明》中,我们将详尽探讨如何在iPhone设备上下载并配置客户端应用程序,以便用户能够顺畅地使用各种服务。本文主要分为三个部分:客户端下载、软件设置以及客户端界面功能介绍。 一、...

    新浪微博(显示iphone5客户端版)

    新浪微博(显示iphone5客户端版

    Iphone团购信息客户端

    下面我们将深入探讨这三个库在客户端开发中的作用以及它们如何协同工作。 首先,KissXML是iOS平台上一个著名的XML解析库,它是基于libxml2的Objective-C封装,提供了简单易用的API供开发者处理XML文档。在团购信息...

    ios:新浪微博iphone客户端

    这是一个ios的新浪微博iphone版的客户端,代码成功运行还需要一个appkey,请大家到新浪微博开发平台申请一个appkey,然后加入到程序文件中名为Url.h的文件中,找到一个apply_url,将里面的“AppKey”替换成你所申请...

    iPhone微博客户端优化交互设计文档.rp

    iPhone微博客户端优化交互设计文档.rp

    郑大教务在线iPhone手机客户端

    《郑大教务在线iPhone手机客户端》是一款专为郑州大学学生设计的教务管理系统移动应用。这款应用的源代码提供了一窥iOS应用开发的窗口,尤其是针对教育领域。以下是基于标题、描述和标签的一些关键知识点: 1. **...

Global site tag (gtag.js) - Google Analytics