齐京
摘 要:本文介绍了开发一个iPhone应用程序的过程和体会,这几年开发iPhone应用程序如火如荼,特别是年轻人对开发和使用苹果产品给予了极大的关注。智能手机作为下一代互联网的终端接入设备已经成为大势所趋,移动互联网应用将会比现在的互联网应用更加普及和丰富多彩,给用户提供更加便捷的服务。
关键词:记事本XCODEApp Store
中图分类号:F416.63 文献标识码:A 文章编号:1674-098X(2012)06(b)-0014-02
1 优质的产品
苹果的产品不只是产品,而是一种文化。我觉得这种文化就是让我们把创新、设计和学习结合起来,鼓舞我们有更积极向上的生活态度,为我们的社会做出更好的产品。iPhone手机的热销,离不开3G业务的推广和移动客户端存储能力的不断增强,智能手机作为下一代互联网的终端接入设备已经成为大势所趋,移动互联网应用将会比现在的互联网应用更加普及和丰富多彩,给用户提供更加便捷的服务。苹果的App Store销售模式,更是在软件销售渠道上进行了重大的变革,极大地缩短了从iPhone手机软件开发人员到软件最终用户的销售环节,为iPhone手机软件开发人员和用户及苹果公司都带来了利益,使得大批软件开发人员都纷纷投身其中。学习iPhone手机软件开发,学的是技术,但重要的是培养创新能力。iPhone手机软件开发者面对的是不断更新的用户需求,没有创新思维,就会被淘汰。所以iPhone学习的目标应放在打造终身就业能力这一高度上,挖掘创造力,能够独立解决企业遇到的或者将来可能遇到的实际问题。
2 项目开发情况
2.1 题目
《手机交友—— 记事与娱乐功能》,这是一个团队开发的项目,在项目中我负责记事与娱乐功能的开发工作。
2.2 开发工具
开发环境:Mac OS Lion;硬件:苹果MacBook Pro,iPhone,iPad;软件:XCODE4.1;开发语言:Objective-C。
2.3 系统功能
(1)月历功能:包括月历、周历和日历,月历是万年历,可以调节日、月和年,见图1。周历记事功能:周历设置了简单的记事功能,一目了然一周所计划的事情;日历记事功能:日历设置了详细的记事功能,可以记录一天所计划的事情。(2)记事本功能:记事本功能分为添加事件和列表,添加事件中包括添加标题时间和事件类型,可以设置主题,设置时间见图2,这里包括开始时间和结束时间,均使用滚筒方式。有是事件列表,在事件列表中可以查看事件详情。(3)提醒功能:在图2中有一个Alarm开关,它可以通过响铃提醒时间到。(4)娱乐功能1—老虎机游戏:老虎机游戏进行中见图3。(5)娱乐功能2—拼图游戏:拼图游戏中要拼的图被打乱后见图4,不仅可以是4*4的图,也可以加大难度成为5*5或6*6的图。
2.4 完成后的截屏显示
2.5 团队的组成
设计人员:设计项目界面、功能、流程。开发人员:项目编程实现。测试人员:黑盒测试项目运行过程。推广人员:产品上线、推广。
2.6 遵循的的规范
http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgramming Guide/ApplicationEnvironment/ApplicationEnvironment.html
3 开发过程
3.1 记事本程序包括
MyDatabase类完成对SQLite的操作,当用户点击“列表”时,从数据库中将内容取出。ShowWeekScrollView类完成对周记事的显示操作。addNewEventController类完成对新事件的添加操作。AlertController类完成铃声提醒的操作。DayTableView类完成日历的操作。DB类完成对数据库的物理操作。EventStyleController类完成对事件类型的选择的操作。MonthViewController类完成对月历的操作。NoteController类完成对记事本框架的操作。NumberOfdayMethod类完成对每月多少天的计算。RepeatAlert TimesController类完成对铃声设置的操作。ShowMonthView类完成对月记事的显示操作。ShowWeekScrollView类完成对周记事的显示操作。TimeViewController类完成对时间设置的操作。TitleViewController类完成对标题的的操作。
3.2 项目实现
(1)功能说明:记事本的主要功能集中在日历和记事功能,娱乐的主要功能集中在小游戏上,并且游戏功能可以不断的添加。现在项目里包括两个游戏。
(2)架构说明:所有的iPhone应用程序都是基于UIKit框架构建而成的,因此,它们在本质上具有相同的核心架构。UIKit负责提供运行应用程序和协调用户输入及屏幕显示所需要的关键对象。从应用程序启动到退出的过程中,UIKit框架负责管理大部分关键的部分。iPhone应用程序不断地从系统接收事件,而且响应那些事件。应用程序的生命周期是由发生在程序启动到终止期间的一序列事件构成的。在iPhone OS中,用戶可以通过轻点Home屏幕上的图标来启动应用程序。iPhone应用程序生命周期展示出了发生在应用程序启动到退出过程中的事件序列。在应用程序初始化和终止的时候,UIKit会向应用程序委托对象发送特定的消息,使其知道正在发生的事件。在事件循环中,UIKit将事件派发给应用程序的定制事件处理器。在应用程序初始化之后,UIApplicationMain函数就会启动管理应用程序事件和描画周期的基础组件,如图5所示。在用户和设备进行交互的时候,iPhone OS会检测触摸事件,并将事件放入应用程序事件队列。然后,UIApplication对象的事件处理设施会从队列的上部逐个取出事件,将它分发到最适合对其进行处理的对象。
在iPhone OS的多点触摸事件模型中,触摸数据被封装在事件对象(UIEvent)中。为了跟踪触摸动作,事件对象中包含一些触摸对象(UITouch),每个触摸对象都对应于一个正在触摸屏幕的手指。当用户把手指放在屏幕上,然后四处移动,并最终离开屏幕的时候,系统通过对应的触摸对象报告每个手指的变化。
在启动一个应用程序时,系统会为该程序创建一个进程和一个单一的线程。这个初始线程成为应用程序的主线程,UIApplication对象正是在这个线程中建立主运行循环及配置应用程序的事件处理代码。图6显示了事件处理代码和主运行循环的关系。系统发送的触摸事件会在队列中等待,直到被应用程序的主运行循环处理。
(3)国际化应用程序。理想情况下,iPhone应用程序显示给用户的文本、图像、和其它内容都应该本地化为多种语言。比如,警告对话框中显示的文本就应该以用户偏好的语言显示。为工程准备特定语言的本地化内容的过程就称为国际化。工程中需要本地化的候选组件包括:(1)代码生成的文本,包括与具体区域设置有关的日期、时间、和数字格式。(2)静态文本—比如装载到web视图、用于显示应用程序帮助的HTML文件。(3)图标(包括应用程序图标)及其它包含文本或具体文化意义的图像。(4)包含发声语言的声音文件。(5)Nib文件。
通过Settings程序,可以从Language偏好设置视图中选择希望在用户界面上看到的语言。可以访问General设置,然后在International组中找到该视图。用户选择的语言和程序包中的一个子目录相关联,该子目录名由两个部分组成,分别是ISO 639-1定义的语言码和.lproj后缀。还可以对语言码进行修改,使之包含具体的地区,方法是在后面加入ISO 3166-1定义的区域指示符。举例来说,如果要指定美国英语的本地化资源,程序包中的子目录应该命名为en_US.lproj。约定:本地化语言子目录为lproj文件夹。
4 结语
通过这次项目开发,我们了解了苹果软件的开发过程,体会到了前所未有用户体验第一的精神。当前我国经济的发展,需要大批的满足企业岗位的技能人才,借鉴这些先进的经验,找出符合我国国情的技术发展方向,为我国的经济发展服务。