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方法立即收回对象占用的空间。如果必须创建一定数量的自动释放对象,则一定记住创建局部的自动释放池,以便在返回事件循环之前定期对其进行清理,回收那些对象的内存。
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方法立即收回对象占用的空间。如果必须创建一定数量的自动释放对象,则一定记住创建局部的自动释放池,以便在返回事件循环之前定期对其进行清理,回收那些对象的内存。