齐京
摘 要:通过开发iPhone卡通书项目,将iPhone手机软件开发的相关技能贯穿其中,一方面针对“苹果”移动终端的开发技术和能力积累相关经验,另一方面培养创新思维,强调创新精神在iPhone手机软件中至关重要的作用。iPhone开发者面对的是不断更新的用户需求,没有创新思维,只能沦为iPhone手机软件开发机器,迟早会被淘汰。本文介绍了开发iPhone卡通书应用程序的过程和一些体会。
关键词:卡通书用户体验移动终端设备
中图分类号:F416.63 文献标识码:A 文章编号:1674-098X(2012)06(a)-0021-02
1 工程背景
iPhone手机软件开发代表了未来开发领域的新方向,是当下软件开发领域炙手可热的话题,特别是年轻人对开发和使用“苹果”产品给予了极大的关注。据艾瑞网2011年6月iOS应用数据报告数据显示,全球共销售iOS设备(包括iPhone、iPad和iPod touch)总数已达2亿部。智能手机作为下一代互联网的终端接入设备已经成为大势所趋,移动互联网应用将会比现在的互联网应用更加普及和丰富多彩,给用户提供更加便捷的服务。”苹果”公司的App Store销售模式,更是在软件销售渠道上进行了伟大的变革,极大地缩短了从iPhone手机软件开发人员到软件最终用户的销售环节,为iPhone手机软件开发人员和用户及”苹果”公司都带来了利益,使得大批软件开发人员纷纷投身其中,更为学校的教学提供了素材。基于这一市场现状,我们选用面向iPhone的“卡通书”项目。“卡通书”集娱乐性和实用性于一身,卡通书的屏幕显示卡通画、漫画,伴随声音讲解或字幕显示,通过手指在屏幕上滑动来翻页。卡通书的内容可以通过服务器不断更新。同时满足幼儿教育、休闲娱乐等多种层次的需求,真正做到寓教于乐、老少咸宜,使得iPhone这一集合了照相、个人数码助理、媒体播放以及无线通信设备等多姿多彩的商务、娱乐功能更加丰富。
2 技术要求
2.1 项目准备
特别要强调的是,基于“苹果”产品的软件和“苹果”产品本身一样,有其独特的风格和魅力,这一切来源于“苹果”公司个性鲜明的文化精髓和创新精神。因此在iPhone或与“苹果”有关的项目中,倡导创新精神,贯彻这一文化精髓的重要性与掌握技术同样重要。这种重要性从项目组成立之初,直至项目完成都不应有所变化。
2.2 软件环境的安装和配置
iPhone项目主要运行于Mac OS系统,区别于多数基于Windows环境的应用程序。所以这一任务首先要安装Mac OS系统环境,然后安装iPhone SDK。也可以采用其他开发框架,本案例主要针对“苹果”的典型环境做设计。
2.3 卡通书的设计和开发
在分析基于iPhone的成功休闲娱乐项目的基础上,完成对《卡通书》项目的策划和创意,完成总体结构和功能细节设计。在熟悉iPhone开发环境的基础上,掌握iPhone应用程序各组成部分的功能作用,明确iPhone生命周期的各个状态及其变化关系对手机应用程序的影响,运用合适的iPhone资源完成手机应用程序的开发。
2.4 卡通书的项目测试
对于iPhone项目来说,通常采用黑盒测试的方法。除常规黑盒测试之外,iPhone项目比较注重基于经验的现场测试,还有一些测试准则和性能评测的内容,都是移动终端项目通常要考虑的。
3 解决方案
3.1 卡通书的设计和开发
3.1.1 项目架构
本案例包括后台服务器、web服务器、无线网络、iPhone卡通书客户端几个部分。后台服务器采用Tomcat,网络通信采用Apache HTTP协议客户端,中间Web服务器采用Servlet响应客户端请求,iPhone客户端采用Objective-C编程语言进行开发。如图1所示。客户端实现卡通书的功能,服务端主要用于内容更新和升级。服务端的开发主要用到Java技术,本案例中不涉及。
3.1.2 工作流程
iPhone的项目有其独特的工作流程和测试方式。完整工作流程如(图2)所示。
3.1.3 界面设计
卡通书是支持图片格式的手机终端软件。它借助便携式移动通信设备,专为阅读图片设计。它使用手机屏幕显示图片并播放声音,采用动画翻页技术,并可以从互联网上下载数字化图片集。卡通书便携、容易使用、大容量的特点非常适合现代生活,数字版权贸易和互联网技术的发展,使卡通书的用户可以方便阅读更多的图书,为卡通书的流行奠定了基础。卡通书的逻辑功能并不复杂,界面流程、功能相对比较清晰。在起始界面主屏幕中点击“卡通”图标,进入卡通书列表。在列表中选择感兴趣的卡通书,经过一个等待画面,就会进入程序运行的浏览界面,界面变化流程如图3(a)、(b)、(c)所示。应用程序运行后,一屏接一屏都是卡通图片,每张图片都配有声音。从右向左滑动,向右翻片,从左向右滑动,向左翻片。全屏有一个大的按钮,设置成为透明的,手触屏幕任何地方都可以翻页。翻页具有动画效果。
3.1.4注重未来的程序性能
(1)有效地使用内存。由于iPhone OS的虚存模型并不包含磁盘交换区空间,所以应用程序在更大程度上受限于可供使用的内存。对内存的大量使用会严重降低系统的性能,可能导致应用程序被终止。因此,在设计阶段就应该把减少应用程序的内存开销放在较高优先级上。应用程序的可用内存和相对性能之间有直接的联系。可用内存越少,系统在处理未来的内存请求时就越可能出问题。如果发生这种情况,系统总是先把代码页和其它非易失性资源从内存中移除。但是,这可能只是暂时的修复,特别是当系统在短时间后又再次需要那些资源的时候。相反,需要尽可能使内存开销最小化,并及时清除使用的内存。合理使用内存。iPhone应用程序使用委托内存模式,因此,必须显式保持和释放内存,减少自动释放对象的使用。通过autorelease方法释放的对象会留在内存中,直到显式清理自动释放池或者程序再次回到事件循环。在任何可能的时候,应避免使用autorelease方法,而是通过release方法立即收回对象占用的空间。如果必须创建一定数量的自动释放对象,则一定记住创建局部的自动释放池,以便在返回事件循环之前定期对其进行清理,回收那些对象的内存。
(2)减少电力消耗。移动设备的电力消耗一直是个问题。iPhone OS的电能管理系统保持电能的方法是关闭当前未被使用的硬件功能。此外,要避免CPU密集型和高图形帧率的操作。优化目标应该是以尽可能有效的方式完成大多数的工作。应该总是采用Instruments和Shark工具对应用程序的算法进行优化。但是,很重要的一点是要知道,即使最优化的算法也可能对设备的电池寿命造成负面影响。
3.1.5 忠实贯彻“苹果”的产品设计思想
“苹果”的产品强调“体验第一,产品第二”的思想。IT产业的生命周期相对较短,人才、技术和产品的更新迅速。微软模式是技术不断升级,IBM的模式是服务不断升级,而“苹果”采用的是用户体验升级的模式,在设计中不断强调更简洁的设计、更友好的用户界面、更方便的使用场景、更为高雅的外观和更为舒适尊贵的持有感。当产品能够调动消费者的情感时,对于产品的需求自然而然地产生,基于情感的多样性和复杂性,这种需求成为具有唯一性的需求,这种产品也就成为了最具差异化、个性化的产品。因此,在项目设计过程中,要强调设计的思想,强调每做一件事首先要考虑使用者,强调一再追求最佳效果,强调用户体验。研究用户体验和升级用户体验,首先要对现有体验充分进行分析,以此为基础逐步培养对于用户的洞察力。可以通过研究分析类似的成功项目(如iPhone的工具软件、游戏等)获得经验和灵感,甚至可以对美术、摄影等其他类别艺术作品展开讨论,形成尽可能贴近“苹果”文化的项目文化氛围,贯彻“苹果”产品“在我们优美的产品中,没有任何技术的痕迹”的理念,最终形成我们自己的产品。
3.2 卡通书项目测试
常规黑盒测试内容在本案例中不做介绍,以下内容是针对iPhone项目的测试要求、准则和性能评测需要考虑的问题。
(1)测试要求:①根据测试规范和要求,完成测试报告。②在测试过程中,迅速、准确、全面地找出问题,并对各种问题产生原因做出判断。③准确、详实地描述bug产生的过程、bug的现象,并对bug的严重程度做判别。④结合市场运营对所评测软件给出自己的看法和反饋。
(2)测试准则:①页面显示正常,无乱码,无图片错乱。②图片与手机屏幕适配正常,无浮出。③声音播放正常,与图片衔接正常,先后次序合适。④手机页面跳转正常,延误时间在正常允许范围内。
⑤后台数据记录正常。⑥多次连接、断开、长时间在线测试均正常。
(3)性能评测。在应用程序开发过程的每一步,都应该考虑所做的设计对应用程序总体性能的影响。由于iPhone设备的移动本质,iPhone应用程序的操作环境受到更多的限制。所以对于iPhone软件的测试,除常规黑盒测试内容之外,还需考虑如下几点内容:①关闭屏幕锁定。如果iPhone OS在特定时间段中没有接收到触摸事件,就要关闭屏幕,并禁用触摸传感器。以这种方式锁定屏幕是省电的重要方法。因此,除非确实需要在应用程序中避免无意的行为,否则应该总是打开屏幕锁定功能。将共享的UIApplication对象的idleTimerDisabled属性设置为YES,就可以禁止屏幕锁定。② 国际化应用程序。理想情况下,iPhone应用程序显示给用户的文本、图像、和其它内容都应该本地化为多种语言。如,警告对话框中显示的文本就应该以用户偏好的语言显示。为工程准备特定语言的本地化内容的过程就称为国际化。③代码的优化。和iPhone OS一起推出的还有几个应用程序的优化工具。它们中的大部分都运行在Mac OS X上,适合于调整运行在仿真器上的代码的某些方面。如,可以通过仿真器来消除内存泄露,确保总的内存开销尽可能小。借助这些工具,还可以排除代码中可能由低效算法或已知瓶颈引起的计算热点。在仿真器上进行代码优化之后,还应该在设备上用Instruments程序进行进一步优化。在实际设备上运行代码是对其进行完全优化的唯一方式。因为仿真器运行在Mac OS X上,而运行Mac OS X的系统具有更快的CPU和更多的可用内存,所以其性能通常比实际设备的性能好很多。在实际设备上用Instruments跟踪代码可能会发现额外的性能瓶颈,需要进一步进行优化。
4 结语
让设计插上翅膀,让产品成为现实。通过这个项目使我感受到苹果的产品不只是产品,而是一种文化。我觉得这种文化就是让我们把创新、设计和学习结合起来,鼓舞我们有更积极向上的生活态度,为我们的社会做出更好的产品。