`
iefreer
  • 浏览: 3607 次
  • 性别: 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
分享到:
评论

相关推荐

    2024-2030全球及中国控制膨胀合金箔行业研究及十五五规划分析报告.docx

    2024-2030全球及中国控制膨胀合金箔行业研究及十五五规划分析报告

    通信历年真题选择题汇总1.(DOC).doc

    通信历年真题选择题汇总1.(DOC).doc

    电子通信设计资料电子万年历设计与制作论文资料

    电子通信设计资料电子万年历设计与制作论文资料提取方式是百度网盘分享地址

    JSP-SSM健身俱乐部客户关系管理系统可升级SpringBoot源码.7z

    前台框架基于Bootstrap这一HTML5响应式框架,能够自适应不同终端设备的屏幕大小,为用户提供良好的浏览体验。开发环境兼容myEclipse、Eclipse、Idea等多种工具,配合mysql数据库,实现数据的存储与管理。后台则采用SSM(SpringMVC + Spring + Mybatis)框架,保证系统的稳定与高效运行。 系统主要包括会员信息管理、员工信息管理、设备信息管理以及退出模块。会员信息管理模块详细记录了会员的基本信息、健身目标、消费记录以及健身习惯等,同时设有会员投诉管理模块,用于收集和处理会员的意见与建议。员工信息管理模块则涵盖了员工的基本信息、工资发放情况等,帮助俱乐部进行人事管理。设备信息管理模块则负责建立器械档案,跟踪维修情况,并合理安排器械摆放位置,以延长器械使用寿命。 数据库设计方面,会员表记录了会员的各项基本信息,包括姓名、性别、职业等;部门表与员工表则分别用于记录俱乐部的组织机构和员工信息;会员消费表记录了会员的消费详情;员工工资表则用于记录员工的工资发放情况;留言表用于收集会员的留言及回复;设备类别表与设备表则详细记录了会所内器械的分类与具

    2024-2030全球及中国超级殷钢 32-5行业研究及十五五规划分析报告.docx

    2024-2030全球及中国超级殷钢 32-5行业研究及十五五规划分析报告

    2023年贴剂行业竞争格局与市场机会.pptx

    行业分析报告

    linux nginx免安装文件

    linux环境不能上网,用这个文件可以实现nginx免安装

    按点击量排序-基于内容的课程推荐网站的设计与实现(SSM+html).zip

    “按点击量排序-基于内容的课程推荐网站的设计与实现(SSM+html)”是一个基于内容推荐概念的在线学习平台,旨在为用户提供个性化的课程推荐体验。系统的核心功能包括用户注册登录、课程浏览搜索、个性化推荐和热门课程按点击量排序展示。在技术架构方面,该系统采用SSM框架作为后端开发技术,包括Spring、Spring MVC和MyBatis,用于处理业务逻辑和数据持久化。前端界面则采用HTML设计实现,展示课程信息和用户交互界面。这样的技术选择不仅提供了稳定的后端支持,还保证了良好的前端用户体验。通过SSM框架以及HTML的结合,该课程推荐网站在功能性和性能方面表现优异。SSM框架提供了高效的业务处理和数据交互,HTML则赋予网站美观友好的用户界面,使用户能够轻松使用课程推荐功能。热门课程的点击量排序功能提高了用户浏览体验,使用户更快速地找到感兴趣的课程,从而提升整体用户满意度和学习效率。

    OSP项目施工组织方案.docx

    行业分析报告

    小型婚礼(可动态添加祝福语)程序文件jquery

    1:场景一主要有两个功能,第一个是控制左边图片,第二个是让右边文字逐一显示。 2:场景二功能简单一点,只控制左边人物出现,紧接着是文字显示。 3:场景三功能控制图片弹跳显示,我用for循环控制弹跳距离。 4:场景四控制图片从顶部往下滑落,停留1秒然后滑向右侧直至消失。 5:场景五慢慢显现,可点击进入婚礼。 6:场景六显现停留1.6秒,然后以碎片的形式向外散开。 7:场景七祝福贴纸随机排布,并且可拖动祝福贴纸。 8:添加祝福语中,需填写祝福语,否则不让提交。可提交的祝福语便随机散布在祝福墙中,可实现随意拖动功能,

    AI相关领域论文+英文中文+论文攻读

    AI论文体系建设是指建立一个完善的AI领域的论文研究框架和体系,以促进学术交流和知识积累。这一体系包括但不限于以下几个方面: 1. **研究主题界定**:明确AI领域的研究主题和范围,包括机器学习、深度学习、自然语言处理、计算机视觉等方向。 2. **文献综述**:对AI领域相关研究文献进行综述和分类,总结研究现状和发展趋势,为后续研究提供参考。 3. **研究方法论**:探讨AI研究的方法论,包括实验设计、数据采集、模型构建等方面的方法和技巧。 4. **实验验证**:强调实验验证在AI研究中的重要性,提倡开放数据和代码,以促进研究结果的可复现性和可验证性。 5. **学术交流**:倡导学术交流和合作,包括参加学术会议、发表论文、组织研讨会等方式,促进学术成果的传播和交流。 6. **学术评价**:建立科学的学术评价体系,包括SCI、EI等学术期刊和会议的评价标准,以及学术成果的评价指标和方法。 通过建设完善的AI论文体系,可以促进AI领域的学术研究和技术创新,推动人工智能技术的发展和应用。

    2024年硬件嵌入式系统咨询行业分析报告.pptx

    行业分析报告

    智慧医院大健康全院信息化建设解决方案.pptx

    围绕着医疗安全与医疗机构管理精细化目标,借鉴HIMSS评级标准、JCI评审、等级医院评审标准规范,基于统一的技术平台架构下的医教研人财物六位一体的信息化管理解决方案,实现医疗卫生机构医务、护理、人力资源、科研、教学、医患关系、设备与物资供应链等日常管理运营信息化。 利用移动互联网技术构建专业的分享服务平台,以为会员提供相关知识、专家在线服务、法律咨询服务,并为医生、医疗机构和健康管理会所提供宣传服务等众多增值服务。 4 大目标: 高效诊疗、智慧医疗、精细管理、信息便民; 1 卡通: 一张诊疗卡。 1 个平台: 一个医院信息集成平台; 6 大应用: 医疗管理、临床信息、运营管理、移动物联、医疗协作、对外服务。

    基于PHP的轻量级MVC框架设计源码

    本项目是基于PHP的轻量级MVC框架设计源码,包含56个文件,其中主要包含50个php源代码文件。系统采用了PHP编程语言,实现了基于PHP7+的轻量级MVC框架。该框架适用于博客系统、新闻管理系统、企业官网和Api系统等多种应用场景,是这些系统的最佳选择。项目结构清晰,代码可读性强,易于理解和维护。

    飞行器机动飞行质点弹道仿真-侧向和纵向-龙格库塔/欧拉法

    本Matlab程序的主要功能是实现飞行器的侧向和纵向的机动,通过设计横向和纵向的控制指令实现。系统状态(微分方程)的解算提供了两种方式,龙格库塔法和欧拉法。 主程序main_cexiang:实现飞行器的侧向机动; 主程序main_zongxiang:实现飞行器的纵向机动。

    基于ssm+vue学生学籍管理系统源码数据库文档.zip

    基于ssm+vue学生学籍管理系统源码数据库文档.zip

    mybatis-plus-generator-3.5.3.jar

    mybatis-plus-generato.jar 包,各个版本,免费下载。 mybatis-plus 代码生成器生成代码框架。各个版本,免费下载。 下载不了,关注我,评论区联系我。

    java-springboot+vue“智慧食堂”设计与实现源码(源代码+说明文档资料)

    springboot+vue“智慧食堂”设计与实现 系统主要包括首页,个人中心,用户管理,菜品分类管理,菜品信息管理,留言板管理,系统管理,订单管理等功能。 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog

    基于ssm+vue孩童收养信息管理系统源码数据库文档.zip

    基于ssm+vue孩童收养信息管理系统源码数据库文档.zip

    概率论与潮流统计学在时尚产业的应用(文档加Matlab源码)

    本文深入探讨了概率论在时尚产业中的应用,分析了如何利用统计学原理来预测和引导时尚潮流。内容涵盖了数据收集、市场趋势分析、消费者行为研究以及如何通过概率模型来优化设计和营销策略。文章适合时尚产业的设计师、市场分析师、品牌经理以及对时尚趋势感兴趣的学者和学生。无论是在设计新款服饰、制定市场推广计划,还是在学术研究中,本文都能提供有价值的见解和方法。 关键词 时尚产业

Global site tag (gtag.js) - Google Analytics