基于敏捷思想的 iOS 平台软件的设计与实现

变化,快速地交付高质量的软件并做到让客户满意,已经成为了一个软件开发公司能否在当今竞争激烈的软件行业中得以生存的关键。 文中在对统一软件过程以及敏捷方法的优势和局限性研究与分析的基础上,利用敏捷思想对统一过程进行适当裁剪并利用统一思想对敏捷开发进行合理扩充,提出了一种基于统一过程和敏捷方法的软件开发过程,成功地将敏捷过程应用到iOS智能手机操作系统开发这一实际的项目中。 实践证明,敏捷开发方法在应对需求频繁变化和提高软件开发效率方面均起到了很好的效果。 

3G智能手机的大众化,智能移动设备用户对无线互联 应用的需求将越来越大。 基于iOS平台的iPhone手机作为当今市场用户体验最好的智能移动设备,也对互联 应用提出了越来越多的需求。

开创了一个全新的软件生态系统,它不仅改写了软件的交付和消费方式,也对软件的设计产生着显著的影响。

上成功的应用,要求的设计过程要比传统的(以用户为中心的设计)UCD过程更敏捷;截至20121App Store提供500,000多款应用软件。成功的App设计,要求在上线第一天就能够吸引用户。 如果你上市的第一个月没有进入排行榜,那第二个月就会消失的无影无踪。

20世纪30年代的一些项目如美国航天局水星计划,最早有记载的使用迭代和增量开发的主要项目之一,是在20世纪70年代为第一艘美国三叉戟潜艇开发的第一指挥和控制系统。 该项目有 大约一百万行代码,进行得非常成功。1976TomGilb在他的著作《软件度量》(“SoftwareMetrics”)一书中阐述了他的迭代和增量开发实践。20世纪90年代推荐使用迭代和增量开发方法的资料和文献显著增加。2001年二月一组由17位在DSDM,XP,Scrum,FSD等领域的专家组成的代表团齐聚美国犹他州,寻找这些方法的共同点。 最终,这些专家制定并宣布了敏捷开发宣言,由此形成了现在人们所认识的敏捷开发和后来的敏捷联盟

Devel-opment),动态系统开发方法(DSDM),特征驱动开发(Feature Driver Development) ,水 晶 开 发(CristalClear)等等敏捷开发方法可以降低需求变化的成本。 其定义了诸如编写用户案例,架构规范,实施规划,迭代计划,代码开发,单元测试,验收测试等等一整套简单的开发流程。 敏捷开发方法核心做法为小规模,频繁的版本发布,短迭代周期,提倡开发成员之间互动交流、反馈、简单、勇气和团队。

胜过过程和工具;设计出可以正常工作的软件胜过面面俱到的文档;与客户相互合作胜过合同谈判;对事件的快速响应变化胜过循规蹈矩。 敏捷开发方法的核心思想概括起来就是:“ 适应变化” 和“ 以人为本”

又称OS X iPhone,是由苹果公司为 iPhone发的操作系統。 后来陆续套用到iPod touch、iPad以及Apple TV产品上。iPhone最初使用的是特别定制的Mac OS X操作系统,发售初期自带系统版本为1. 0. 2,之后以固件更新的方式修正低版本的错误并且引入新的功能。 目前最新的版本是20111012日发布的iOS 5. 0最终版(公开版)。iOS操作系统占用大概512MB的内存空间。

iPod Touch使用基于ARM架构的CPU,因此,所有其他操作系统下的应用程序不能直接在iOS上运行。 需要针对iOS ARM重新编写并编译后,才能在iPhone下运行

为封闭的操作系统,苹果公司对外不公布其操作系统源码。

手机未配置键盘,所有对手机的操作均通过手机的触摸屏来操作。iPhone手机采用先进的电容式触摸屏,支持多点触控的方式进行操作。iPhone与系统交互的操作包括:滑动,轻按,挤压,旋转,并且可以支持其旋转装置令屏幕改变方向。

iPhone应用程序的唯一方法就是在菜单目录中轻点程序的图标,程序运行后可屏幕触摸、点击对程序进行控制。 退出运行中的程序则是按下屏幕下方的home鍵。 在第三方软件退出后,它直接就被关闭了。

是以Darwin为基础的。iOS的系统架构分为四个层次:核心操作系统层(theCore OS layer),核心服务层(the Core Services layer) ,媒体层( the Media lay-er),可轻触层(the Cocoa Touch layer)。 iOS体系结构与Mac OS X的基础架构类似。 开发者创建的应用程序不会直接与硬件进行交互,而是与相对应的驱动器进行连接。 这样的做法可以消除开发者应用程序在不经意间改变了底层的硬件设备的危险。

是为移动终端而开发,要解决的用户需求与Mac OS X 不同。 在底层的实现上iPhoneMac OSX共享了一些底层技术,iOS使用软件栈,在堆栈的底层是Mach内核和一些硬件驱动器,管理程序的执行;在底层之上的其他层包括开发者必须的核心技术和接口;iOS 在内核和驱动级没有任何接口,在软件栈的更上层为开发者设置了许多技术接口。

框架(framework)的程序包中。 一个framework包含了一个动态共享库以及支持该库的一些资源(如头文件、图片、帮助程序等)。 使用framework,应用程序开发人员可以将它内联到开发工程内,从而使其得以访问framework的特性,并指导开发工具去哪里查找头文件和framework的其他资源。 除了framework,Apple还在它的标准共享库(StandardShared Libraries)中提供其他技术。iOS是基于UNIX的,构成操作系统的底层架构的技术都属于开源代码技术。 这些技术的接口就储存在标准库以及接口目录中。

iOS是从Mac OS X核心演变而来,因此开发工具也是基于Xcode。SDK可分类为触控、媒体、核心服务、OSX核心4大项。 和Xcode工具一样,SDK开发工具中包含的iPhone模拟器用来在开发人员的电脑上模拟iPhone的外观和感觉。 该SDK需要拥有英特尔处理器且运行Mac OS X Leopard系统的Mac才能使用。

iOS平台软件的设计流程,跟设计传统web软件的流程没有太大差别,都是基于统一的设计方法论。App Store上成功的应用,绝大部分都是面向个人的软件,它们功能相对简单,注重满足用户的核心需求,设计上极力追求完美

iOS平台软件的设计流程,可以归纳为以下步骤:市场定位,App 定义(ADS),概念草图,概要原型,详细原型,设计说明和整理,设计开发。

析和设计过程所带来的成本,它需要的是更敏捷的设计流程,用尽量完美的设计,来满足用户的特定需

4周的工作时间,这并没有什么大不了,可以通过另一个新产品来获得成功

你发现已经有类似的应用程序,那你需要比它做的更好,有一些独特的优化设计。 最好的调查方式是到iTunes Store 上搜索已有的 iPad程序。 当有了创意,你还需要有个明确的定位,它会在后续的设计过程中决定应用程序的设计要点。 应用程序的定位可以通过苹果的人机界面指南(HumanInterface Guidelines)图来确定。

4.2 App定义(ADS)

4. 3  概念草图前面的过程,仅仅是设计的导入阶段。

做的,是产品草图设计。 按照设计构想,勾画出用户需要用到的界面,包括像按钮之类的界面交互元素;筛选出核心用户最常用的、最适合移动应用场景的功能

App,可能还需要更多的界面。 重点是要设计界面与界面之间的切换方式,这一点在设计交付给开发人员时会显得尤其重要。这个过程叫做App功能穿越(App Functionality Walk-through) 。 

要原型只是把设计的概念草图数字化,便于在电脑上持续的改进。 所以,尽量使用黑白、粗糙的线条和图形来制作概要原型,别在细节上纠结,浪费时间。

PhotoShop,也可以选用自己熟悉的其他工具。 一般,为iPad 设置尺寸为1024 ×768的画布,然后根据概要原型进行细节设计。

Apple提倡有质感、有仿真度的图形界面,偏好设置用于设置该新闻阅读器新闻显示的样式。 很重要的一点是,应用程序所展现的信息,必须简洁明了,没有多余的文字。 所以,在界面设计上,没有必要引入任何华丽的图形或者其他的信息来干扰用户,让用户能一眼就看明白应用程序的用途。 在数据条目之间使用间隔色,用醒目的字体内容,这些都是很好的设计体现。 主界面背后的相关信息界面,使用Apple的标准界面即可,为用户提供搜索后加入关注的功能。 重要的是,确保所有的信息都一目了然,不隐晦,不误导用户。

iPhone屏幕上用来启动程序的图标。iPhone的屏幕大小只有480 *320px,在这狭小的屏幕里,用户希望放下尽可能多的图标,这些图标必须具有突出的视觉效果才能方便用户辨认。icon的设计将决定应用程序在App Store上的辨识度。 可以从简单的轮廓设计开始,先把核心创意表现出来。 除非有必要,icon最好不要包含文字,尽量使用跟应用程序图形界面一致的材质和渐变。

PSD)和图标打包在一起,做上清楚的标注,供开发阶段人员使用。
4. 7 设计开发

作了该系统的用例图

制。 顺序图是交互图中最常用的一种,交互图是用例的具体实现。 其实现是以对象和对象间的协作为基础的,因此通过交互图可以严格地对照检查系统的每一项功能需求是否都得到满足,这些需求都落实到哪些对象,以及这些对象是如何来解决的。 整个过程是连贯的,从用例模型到分析模型到设计模型之间有一致性和可追踪性。

span style=“”><strong>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {NewsListViewController * anotherViewController = [ [ NewsListViewController alloc] initWithNibName:@ ” NewsListViewCon-troller” bundle:nil];anotherViewController. istyle = [[systemdata objectForKey:@ “style”] intValue];anotherViewController.iurl=[channellist objectForKey:[tableView cellForRowAtIndexPath:indexPath]. textLabel. text];anotherViewController. title = [ tableView cellForRowAtIndexPath:indexPath]. textLabel. text;[ self. navigationController pushViewController: anotherViewController animated:YES];[anotherViewController release];}</strong></span>

平台的新闻发布和阅读系统》程序可以实现对选择新闻的发布和阅读,并且可以实时的以手机浏览器的形式连接新闻 址,查看 站提供图片、音频以及相关视频等功能。

5 结束语

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年11月23日
下一篇 2012年11月23日

相关推荐