1、本科毕业论文(20 届)基于 iOS平台开发的移动应用的设计与实现辣妈帮所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期摘 要随着社会的科技发展,人们的生活中越来越不能缺少移动技术的产品,人们也比较注重便捷以及方便。正是由于这种人们的想法,移动技术的潮流也指向了手机应用,因此手机移动应用已经开始成为一种新的功能需求,受到了越来越多的人们关注。随着手机的普遍使用,许多国家的手机品牌也不断渗入人们的生活中,例如国内的 K-TOUCH(天语) ,人们在早期使用的芬兰 NOKIA(诺基亚) ,日本的 SAMSUNG(三星) ,美国的 iPhone(苹果)等等众多手机品牌。在这些手机品牌中苹果
2、也一直以它的特色占据着手机市场中的一定位置。苹果系统作为市场占有率超过 30%的手机平台,其移动应用的发展也是非常迅速的。本文主要介绍基于 iOS 平台开发的一款苹果手机移动应用辣妈帮。本文首先详细介绍了 iOS 的系统以及它的发展状况,接下来介绍了项目研究的背景、研究意义以及论文的主要工作,然后在对 iOS 的开发技术进行了基本的介绍,其中包括 iOS 应用的特点、MVC 软件的设计模式、SQLite 数据库等技术,然后从功能需求以及非功能性的需求点出发,对辣妈帮应用客户端进行了设计,从请求数据的处理以及 UI 界面的展示两个部分进行了设计以及实现。最后,经过详细的测试,使得应用能够使用的流
3、畅。论文作者在项目中独立完成了的模块包括:我的帮模块、动态模块、附近模块、推荐模块和更多模块,完成了数据库中数据的读取以及操作、和性能的优化以及缓存模块等技术。关键词:iOS ;辣妈;MVC;SQLiteABSTRACTWith the development of science and technology of the society, peoples life more and more cannot lack of mobile technology product, people are more easy and convenient. It is because of the
4、peoples minds, mobile technology also points to the trend of the mobile application, so mobile applications have begun to become a new kind of functional requirements, has been more and more attention. With the widespread use of mobile phones, mobile phone brands in many countries has been into peop
5、les life, such as domestic K - TOUCH (tianyu), people in the early use of Finlands NOKIA (NOKIA), SAMSUNG (SAMSUNG) in Japan, the United States of the iPhone (apple), and so on many mobile phone brands. In these mobile phone brands featured with its apple has also been occupying a certain position i
6、n the mobile phone market. Apple system as a market share of more than 30% of the mobile platform, the mobile application development is very rapid.This paper mainly introduces the iOS platform to develop a application - hot mama help apple mobile devices. This article first introduced the iOS syste
7、m and its development status, then introduces the research background, research significance and the main work of paper, then the iOS development technology for the basic introduction, including the characteristics of the iOS app, MVC mode in software design, such as SQLite database technology, and
8、then from the point of the functional requirements and non-functional requirements, the design of hot mama help application client, from the request data processing and interface shows the two parts of the UI design, and implementation. Finally, after detailed test that enables the application to us
9、e the smooth. The authors independently completed the module in the project include: near my help module, dynamic module, module, recommendation module and more modules, completed the data in the database reads and operating, and optimization of the performance and the cache module technology.Keywor
10、d: IOS; hot mom; MVC;SQLite目 录1. 绪论 .11.1 本课题的研究背景以及意义 .11.2 国内外的研究现状 .11.3 本课题的研究内容 .21.4 本章小结 .22. iOS 开发语言、开发环境以及开发所用的技术介绍 .22.1 iOS 简介 .22.2 开发工具 .32.2.1 X-code 工具 .32.2.2 Interface Builder.32.2.3 Simulator(模拟器) .32.2.4 Instruments.42.3 开发语言 Objective-C .42.4 应用程序框架以及设计模式 .42.4.1 应用程序框架 .42.4.2
11、设计模式 .62.5 本章小结 .63. 功能模块设计 .63.1 需求分析 .63.1.1 我的帮 .63.1.2 动态 .73.1.3 附近 .73.1.4 推荐 .83.1.5 更多 .83.2 系统模块设计 .83.3 手势交互模块的流程图详细设计 .93.3.1 手势交互设计 .93.3.2 多点触摸交互设计 .103.4 详细设计 .113.4.1 选择的控件 .113.4.2 数据输入和传递 .123.4.3 数据的存储与显示 .123.5 本章小结 .124. 代码的具体实现 .124.1 数据请求 .124.2 网络判断 .134.3 数据的解析 .134.4 代理的实现 .
12、144.5 本章小结 .155. 系统测试 .155.1 功能模块测试 .155.1.1 首页数据测试 .155.1.2 帮列表的具体内容页数据测试 .165.1.3 话题具体内容页以及回复的数据测试 .185.2 其他功能页面展示 .195.3 本章小结 .206. 总结 .20参 考 文 献 .21致 谢 .22第 1 页 共 29 页1. 绪论随着信息网络时代的快速发展,对于手机使用的方式也是越来越多样化,智能手机以及移动互联网应用的普及不断改变着人们的生活方式。如今手机应用已经成为手机必备的软件,本设计主要是基于 iOS 平台实现了 iPhone 客户端辣妈们聊天以及分享生活功能,通过
13、这款应用辣妈们可以查看到其他妈妈们的育儿经验、购物以及保养等等。本设计采用 X-Code 开发工具,它具有可视化的编程界面、完善的帮助文档以及详细的代码提示,对于软件开发人员来讲使用起来是非常方便的。本次设计首先概要性的介绍了本款软件所使用的关键的技术以及设计模式等;然后给出模块端总体分析与设计,包括系统的需求分析、系统设计需求以及系统的总体功能设计;其次采用了图表的方式对于设计中所涉及到的重点部分进行详细的分析以及阐述;最后具体的描述了每个模块的实现,对代码进行了详细的解析。1.1 本课题的研究背景以及意义在现在科技发达的时代,互联网与人们的生活的联系变得更加密切,随着科技不断的进步,手机已
14、经不再是简简单单的通话工具,手机逐步变得智能化、网络话、娱乐多媒体化等。伴随着互联网技术的日益成熟以及 3G 手机的普及,手机网络话已经成为引人注目的焦点,移动互联网已经成为未来发展的重要趋势被业界所认可,手机成为人们使用最为广泛的移动信息中端在未来互联网的地位也是举足轻重的。以后在移动互联网所实现的包罗万象的服务都会成为手机的载体,在此基础上,以手机作为主导地位的移动应用的开发也会越来越受人关注。iPhone 手机软件的开发象征着未来开发领域的发展趋势,随着 iPhone 应用的需求不断增加,主要手机应用做到创新、实用,就会获得丰厚的收益。越来越多的开发者们也投身其中,中国的 iPhone
15、手机软件开发者也逐渐的投入其开发中,由此可以看出 iPhone软件开发行业发展是非常乐观的,但是由于语言的限制,在中国的 iOS 开发工作还是处于缓慢的上升阶段,这也就意味着未来的市场将会更加庞大,很足够上升以及提高的空间。而且现在随着人们生活节奏的加快,人们也就更加注重时代的步伐,人们仍然处于不满足只是获取影讯的方式,所以这对于信息的传播方式也提出了更高的要求。1.2 国内外的研究现状互联网与手机的相互融合形成的移动互联网业务与传统的移动的通信业务是两个完全不同的新型业务,移动互联网的日益需求量逐日上升,已经成为传统 IT 以及通信巨头的蓝海。随着社会的不断发展,各种各样的手机应用软件加入了
16、人类的社会活动中,使人与之间的交流范围变得更加广泛,而且还可以使人们的思维变得更加活跃。根据摩根士丹利的一份报告显示,未来 5 年移动互联网的人数将会超过传统互联网。移动互联网就像一块巨大的金矿等待开采。iPhone 是苹果公司推出的一款手机平台,最第 2 页 共 29 页主要的特点就是该平台是封闭性的,统一由苹果公司推出 API,编程语言采用 Object-C,C 语言的编程效率是相当高的。目前苹果公司取得了巨大的成功,其推出的软件商店模式使得更多的开发者参与进来,更大的丰富了 iPhone 的功能,也使得开发者有了更多的致富机会。在中国,电信、移动、联通相继推出了自己的应用程序商店,并不是
17、只是效仿苹果 App Store 的商业模式,看到更多的是多样的应用程序在将来会成为用户选择运营商以及手机平台的决定性因素;对于开发者来讲,手机软件商店的分成模式也会成为他们的另一个金矿。1.3 本课题的研究内容本文深入分析了课题的背景意义、iPhone 应用的市场现状以及发展趋势。在前人的研究的基础上对辣妈帮这一款软件的手机客户端进行了重构以及设计。本软件是通过对服务器数据的解析,实现了对辣妈们的生活以及心情展现,实现对辣妈状态、辣妈最近心情、评论等等功能。1.4 本章小结本章中介绍了 iPhone 软件开打的课题背景以及意义,阐述了手机应用软件以及开发的国内外研究现状,描述了本论文所要研究
18、的内容以及本论文的具体架构。2. iOS 开发语言、开发环境以及开发所用的技术介绍2.1 iOS 简介iOS 最初的设计是在 iPhone 上的操作系统,苹果公司在 2007 年的 1 月 9 日的Macworld 大会上宣布了这个系统,并且将其命名为 iPhone OS,但是随着该系统能够在iPod touch、 iPad 以及 Apple TV 等苹果产品上的广泛应用,苹果公司在 2010 年 6 月 7 日的 WWDC 大会上将其改名为 iOS。根据 Canalys 的数据显示,截止到 2011 年 11 月,iOS已经占据了全球智能手机系统市场份额的 30%,在美国的市场占有率更是到达
19、了 43%。但是近几年 Android 开源操作系统的异军突出以及 Windows Phone 的大力扩大,iOS 的市场所占有的份额正在被其一点点的吞食,但是 iOS 设备的利润率却是高的惊人,就拿智能手机为例 iPhone 的利润额已经占到了整个智能手机利润额的 80%,正是由于这样,苹果的市值已经达到了 5000 亿美元。iOS 操作系统主要采用的是多点触控,直接对手机进行操作,控制方法其中包括轻触屏幕和图标、滑动、按键。主要的操作有:滑动、清按、放大以及缩小。除此之外,iOS移动设备中还内置了加速器,使得在 iOS 设备发生旋转操作的同时,界面也会随之旋转,所以 iPhone 等便携设
20、备使用起来更加方便。自从 3GS 开始,iPhone 中也内置了陀螺仪,使得 iPhone 有了重力感应,使人们玩的游戏效果更加真实。第 3 页 共 29 页在 iPhone 的屏幕下方是 home 键,点击该键就会回到主界面。底部是 dock,可以安放四个用户经常使用的程序的图标。屏幕的最上方是状态栏,从这里可以看到一些相关的信息,比如时间、电池电量情况以及信号的强度等等。如果要启动应用程序,只需要点击应用程序的图标,点击屏幕下方的 home 键便会退出该应用程序。在 iPhone3.0 以后的版本中,及时应用程序退出,当三方软件收到了新的信息时,苹果公司的服务器将会把这些通知推送到 iOS
21、 设备中(无论应用程序是否正在运行) 。2.2 开发工具2.2.1 X-code 工具X-Code 是 Apple 开发工具套件,支持项目管理、编写代码、构建可执行程序、代码的调试、代码的版本管理以及性能优化等。在这个套件里主要的就是应用的本身,它提供了基本的源代码开发环境。开发者可以在 Xcode 中创建新的项目,编写新的 iPhone 应用程序。一个项目管理着整个应用程序所有的信息,其中包括源代码、编译设置以及将所有文件整合到一起的编译规则。Xcode 项目的核心就是项目的窗口,开发者可以使用该窗口更加快速的访问应用程序中关键的元素。组以及文件列表管理着项目的一些文件,里面包括了源代码的文
22、件以及编译后所生成的目标文件。在 Xcode 中的工具栏中为开发者提供了比较常用的工具以及命令,使用详细资料来设置项目的工作区域,项目的窗口的其他部分也提供了更多关于项目的信息。Xcode 中有一个更加高级的代码编译器,它提供了补全代码、语法高亮、临时隐藏代码块,还有警告、错误说明。Xcode 环境中提供了一些默认的设置以及用户环境的设置。开发者可以在帮助文档窗口中搜索以及查看相关的信息。2.2.2 Interface Builder在 Interface Builder 中所创建的 nib 文件中包括 UIKit 在应用程序中所创建的相同对象的相关信息。运行时加载 nib 文件,创建它们在运
23、行时的版本,设置与 InterfaceBuilder 中相同的属性。它也会使用连接的信息,建立起新建对象与程序中其他对象之间的关系。连接的信息也提供了代码以及 nib 文件的对象连接关系,与此同时也提供了对象与用户之间的联系。总的来讲,在开发者创建应用程序图形界面时,使用 Interface Builder 可以节约更多的时间。Interface Builder 不需要手工编写代码、定位界面的对象,而且 Interface Builder还是一个可视的编辑器,开发者可以在设置的同时可以更清楚的看到运行时界面所产生的效果。2.2.3 Simulator(模拟器)第 4 页 共 29 页iPhon
24、e Simulator 是 iPhoneSDK 中比较有用的一个工具,并不需要使用真实的手机或者 iOS 设备来调试应用程序。通常并不需要直接启动 iPhone Simulator应用程序启动时就会自动启动,Xcode 也会将应用程序安装在 iPhone Simulator 上。开发者在 Xcode 执行应用程序时,需要选择 iPhone 模拟器以及设备。iPhone 模拟器为应用程序提供了一个本地的应用测试环境。在 iPhone 模拟器测试可以通过时,便可以将 Xcode 编译并且运行在 iPhone 上。苹果在 iPhone 运行时也提供了全面的测试环境,Xcode 可以在设备测试的时候使
25、用内置的程序调试器来跟踪代码。2.2.4 Instruments为了能够使用户在使用软件时达到最佳状态,Instruments 可以分析 iPhone 应用程序在模拟器或者真机上运行时的性能。Instruments 会通过时间轴的图标形式展现出运行应用程序时的多种数据,其中包括磁盘的活动、CPU 消耗、网络活动等等。时间轴图标的方式向开发者展现出了不同的应用程序的相关信息,这样方便开发者收集并且了解该应用程序的所有行为,并不是对特定的区域来监控。除了时间轴图标之外,Instruments 也为开发者提供了分析应用程序在运行时产生的行为。比如,Instruments 窗口可以同时保存多个运行时的
26、数据,开发者可以通过应用程序的行为来对代买进行修正,而且也可以将数据保存在 Instruments 文档中,随时打开这些数据。2.3 开发语言 Objective-CObective-C,通常也被称做 OC 语言,是 C 语言的扩充的面向对象编程语言,主要用于 Mac OS X 和 GNUstep 这两个使用 OpenStep 标准的系统。Objective-C 最开始是并不支持垃圾回收机制的,因为垃圾回收需要有漫长的“死亡时间” ,这时会导致整个系统失去功能。但是在 Xcode4.0 之后,开始支持自动释放,也就是 ARC(Automatic Reference Counting)机制,这样
27、就不需要开发者手动 Release(释放)每一个对象,编译机会在编译程序期间自动为需要释放的对象添加释放机制的,也就是之前经常写的NSObject release。Objective-C 和 C+有许多不同的地方,Objective-C 不支持运算符重载功能,也就是不允许对象多继承,只支持对象单继承,但是引入的 Categories 和 protocols 可以提供很多多继承的好处。很多经常见的编译时的性能优化的方法都不能用在 OC 中,例如内联函数。2.4 应用程序框架以及设计模式2.4.1 应用程序框架第 5 页 共 29 页MVC(模型视图控制器)是 Xerox PARC 在八十年代为编
28、程语言 Smalltalk80发明的一种软件设计模式,现在已经被广泛使用。在最近几年被推荐为 Sun 公司 J2EE 平台的设计模式,并且 iOS 和 PHP 的开发者越来越喜欢用这种模式来编程。MVC 是用于拆分 GUI 应用程序的逻辑方法。MVC 是以中国设计模式,它能够强制性的使应用程序数据的输入、处理以及输出分开。MVC 模型将所有的功能模块划分成 3 种,如图 2.1 所示。(1)模型模型对象代表特别的知识和专业技能,它们负责保存应用程序的数据以及自定义的操作数据逻辑。被模型返回的数据是中立的,也就说模型与数据的格式是毫无相关的,这样一个模型能够为多个视图提供数据,由于应用于模型的代
29、码只需要写一次就可以被多个视图共用,这样就减少了代码的重复使用性。(2)视图视图对象会知道如何向应用程序显示模型数据,而且有可能允许开发者对该数据模型进行编辑。视图所指的就是用户能够看到并且能够与之交互的界面,应该如何使应用程序的界面变得越来越有挑战性。MVC 的最大的一个好处就是能够为应用程序处理许多的不同视图。其实在视图中并没有真正的处理发生,无论这些数据是否联机存储还是一个雇员列表,作为视图来讲说,它就是一个作为将数据输出并且允许用户操作的一种方式。(3)控制器控制器对象就是应用程序的视图对象以及模型对象之间的协调者。控制器接受用户输入并且去调用视图以及模型来完成用户的需求。控制器本身不会输出任何数据和做出任何的处理。它的工作就是接收请求并且决定去调用哪个模型构建处理请求,然后再确定用哪个视图去显示模型处理返回的数据。