基于IOS的手机应用终端设计毕业论文.doc
基于IOS的手机应用终端设计 摘要:人类社会进入二十一世纪以来,社会的快速进步伴随着人们生活的节奏越来快,导致人们工作之余的时间随之减少。很多人娱乐越来越碎片化,社交也越来越碎片化,传统的媒体已经无法满足对人们对实时立刻了解,随之大批的“快餐文化”伴随着互联网孕育而生,互联网的发展和好的帮助了现代人们能够及时放松、娱乐、交友。本课题就是开发一个基于IOS操作系统的娱乐社交客户端软件。以“百思不得姐”IOS客户端开放平台获得数据来源,把IOS作为开发运行环境,完成整体的设计,开发和设计。”百思不得姐”IOS客户端是由精灵在线网络公司推出的一款大型娱乐创意社区,它对外开放API,使得我们可以和好的获取他们的数据接口。本设计采用MVC模式,客户端采用Object-c语言和SQLite的数据库编程开发。用户功能分为精华,新帖,关注,我的和发帖等几个主要功能模块,数据的从它开放的API接口获取完成整体的开发。测试阶段利用真机iPhone6作为测试,根据运行到真机上的效果进行检测修改。关键字:IOS操作系统 移动终端 百思不得姐API SQLiteDesign of mobile phone application terminal based on IOSABSTRACTSince human society entered the twenty-first Century, the rapid progress of society has been accompanied by the rhythm of people's life, which leads to the decrease of the time of people's work. Many people entertainment more and more fragmented, more and more pieces of social, traditional media has been unable to meet the people of real-time immediately understand, along with a large number of "fast food culture" with the Internet was born, the development of the Internet and good help modern people can and relaxation, recreation and entertainment, and friends.This topic is to develop a IOS operating system based on the entertainment social client software. To "100 think not sister" IOS client to access the data source, the IOS as the development environment, the completion of the overall design, development and design." IOS client is a large entertainment creative community launched by the wizard online network company, it is open to the API, so that we can make good access to their data interface.This design uses the MVC mode, the client uses the Object-c language and the SQLite database programming development. User functions are divided into the essence of the new post, concern, I and post, and other major functional modules, data from its open API interface to complete the overall development. The use of iPhone6 as a test prototype testing phase, according to the operation to the real machine effect to detect changes.Key word: IOS operating system mobile terminal baisibudejieAPI SQLite1引言1.1研究目的及意义互联网时代的到来,人们生活中越来越多的和网络产品相关了。购物、旅游、学习、工作都离不开网络了,这些都是在我们身边并且我们都能切身感受到的。物质水平的提高,伴随着精神水平的提高,娱乐社交又是人们不可缺少的部分,特别是上班族,可能在娱乐时间上相对较少,怎样在较短的时间里快速获得当下最新最潮的信息智能手机。智能手机和平板电脑等移动设备的用户数量的增多,移动APP应用也的到了迅速的发展,而移动APP应用也必将在将来得到更好,更快的发展。其中社交,娱乐应用的发展也是令人瞩目,很多优秀的App得到了广大的推广和应用。而百思不得姐作为其中的一个,也是得到了广大网民用户的认可和喜爱,尤其是在学生,白领人群中。百思不得姐最大的娱乐创意社区。致力于提供各种搞笑、萌、动漫、幽默图片,汇聚大量的超火爆、超级冷、高笑点的段子。这里还聚集了一群多才多艺的网友,用声音的形式演绎生活中的笑料百出。在百思不得姐中随时可以查看他人发布的奇闻乐事并与网友分享自己亲身经历或听说到的有意思的、不顺心的等各类情形的生活糗事。进行百思不得姐客户端的设计不仅可以检验自己的IOS学习水平,也可以在学习中休闲片刻。在最近几年,移动化、社交化、多媒体化、云化已经成为大众认可的新媒体发展趋势,各类个性化和本土化的App应用应运而生。设计个性化的应用满足社交娱乐的需要势在必行,所以进行百思不得姐的设计是十分有必要的。通过这个App你可以选择把生活中不顺心,尴尬的,糗事,倒霉事在这里尽情倾诉,和众人分享,苦中作乐,同时你也可以看看他人的各种糗事,为自己减压。1.2国内外研究现状现在社会进入了移动互联网时代,高科技给我们的生活带来了便捷,舒适,很高的体验效果,其中IOS操作系统体验更高,本应用就是基于IOS平台设计的,能够实现各种幽默信息的收集,支持iPhone4/4s,iPhone5/5s,iPhone6/plus;资源占用率小,运行效率高,操作简单,扩展能力强。系统画面清晰流畅。此款手机客户端采用Object-c语言和Sqlite数据库的IOS编程开发,而IOS操作系统与安卓系统相比较具良好的编程风格和界面设计,系统分析和功能分析全面,并且方便用户的操作,尽量减少用户不必要的操作。百思不得姐手机客户端,支持iPhone4/4s,iPhone5/5s,iPhone6/plus,是一款基于iPhone平台的娱乐社交类App,可以为用户提供最新的网络幽默段子,利用网络的即时性、开放性,将移动端交流及时以及查看方便的优点融合在一起,吸收传统PC端的优点,并克服其时间限制,携带不便等弱点,发挥移动端应用的优点,构建一种全新的娱乐交流模式;此外,受益于手机电子商务和手机社交娱乐等细分行业的良好表现,以及基于手机应用商店为核心的产业链生态初步形成,中国移动互联市场规模稳步提升。由此可见,次手机客户端定会收到广大客户的青睐。1.3本文的主要内容本文基于IOS操作系统开发一款娱乐社交客户端,凭借着移动客户端的简单便捷,为广大上班族提供快乐和放松。本文将从百思不得姐客户端的项目产生背景开始,和国内同行软件,如糗事百科等进行对比。在需求分析阶段,对产品进行分析得到产品的特性和用户特性,得出相对较为完善合理的需求。这次开发设计将按照软件工程开发流程,从客端的整体架构、各个模块的设计与实现进行论述。根据开发的中心和方向,本文将具体介绍客户端的精华模块、好友模块、关注模块、我的设置模块的设计与整体实现过程基于IOS的百思不得姐APP是一款运用在iPhone上的应用,它是运用有Xcode开发工具和object-c语言行总体开发编程,最后配置证书并且运行到真机进行测试。由于APP是娱乐社交类型的,所以将用户人群锁定为广大上班族,其功能是利用上下班短暂的休息时间,给用户及时获得快乐和当前最流行时尚的网络用语。在这里可以尽情倾诉,和众人分享快乐,为生活增添色彩。IOS系统是由苹果公司开发,苹果公司所推出的一系列移动设备iPhone、iPad等都是应用此系统,它实现对硬件设备的管理并为本地应用程序提供基础的技术支持。iOS操作采用的是多点触控操作,控制方法包括滑动、轻触屏幕和按键。常以滑动、轻按、缩小及放大进行操作。iOS移动设备中还内置了加速器,使得旋转iOS设备时,界面也可以得到旋转,这也使得手机便携设备更便于使用。 屏幕的下方是home键,点按回到主界面。底部是dock,可安放四个使用者最经常使用的程序的图标。屏幕最上方是状态栏,显示一些有关资讯:如时间、电池电量和讯号强度等。其余的屏幕用于显示当前的应用程序。启动程序,只需点按该程序的图标,点按屏幕下方的home键即退出应用程序。IOS操作系统分为四层:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和触摸层(Cocoa Touch layer)。自底向上,下层为上层提供调用的接口和服务,上层为应用提供更复杂的服务。系统的架构如图2-1所示。该层包含了Core Location、Core Motion、SystemConfiguration、Foundation Core Foundation子模块。其中Foundation与Core Foundation子模块提供了对公共数据类型(字符串、集合等)的抽象,Core Foundation中的Core Data子模块可以实现对象图形管理与对象持久化。Objective-C是C语言的扩展集,不管是怎么样的C语言的程序都可以不用修改而直接用Objective-C的编译器编译去运行。而且在Objective-C中用C语言代码写程序也是完全可以的,不会造成任何混乱。Objective-C被人们描述成遮盖在C语言上的面具,因为Objective-C原本的意思就是以C语言为整个的主体不会改变,然后加入面向对象等特性。Objective-C是一种跨平台语言。而其它非面向对象语言,包括流程控制,函数声明等的调用都和C语言的调用完全一致。不同的是,某些C语言语法的代码在objective-c中所表达的意思却不一定相同。比如有些布尔表达式种,在Objective-C中返回值可能是NO,在C语言中返回值却为true。在Objective-C类的定义与实现,分为.h和.m文件,类的定义文件是遵循C语言之惯例用.h为后缀命名,类一般在.h文件中声明,在.m文件中实现。用一句话来慨括,Objective-C是一种面向对象的c语言,并且有着自己的鲜明的特点。如兼容性,字符串,类,方法,协议,属性。(1) 核心操作系统层(Core OS layer)。位于iOS框架的最底层,主要包含内核、文件系统、网络基础架构、安全管理、电源管理、设备驱动、线程管理、内存管理等。简而言之,该层提供了最低级的、系统级的服务。(2) 核心服务层(Core Services layer)。可称之为核心服务层,顾名思义,它提供诸如字符串管理、集合管理、网络操作、URL实用工具、联系人管理、偏好设置等服务。除此之外,它还提供很多基于硬件特性的服务,如GPS、加速仪、陀螺仪等。该层包含了Core Location、Core Motion、SystemConfiguration、Foundation Core Foundation子模块。其中Foundation与Core Foundation子模块提供了对公共数据类型(字符串、集合等)的抽象,Core Foundation中的Core Data子模块可以实现对象图形管理与对象持久化。(3) 媒体层(Media layer)。依赖于Core Services层提供的功能,主要负责图形与多媒体服务。它包含了CoreGraphics、Core Text、OpenGL ES、Core Animation、AVFoundation、Core Audio等与图形、视频和音频相关的功能模块。(4) 触摸层(Cocoa Touch layer)。是直接向iOS应用程序提供各种基础功能的支持。其中的UIKit框架提供各种可视化控件供应用程序使用,如窗口、视图、视图控制器与各种用户控件等。另外UIKit也定义了应用程序的默认行为和事件处理结构。IOS的开发过程中,我们会经常使用很多第三方的开源类库,例如SDWebImage、SVProgressHUD等等。有可能一个类库又使用到其他的类库,那么我们为又要导入其他的类库,这样是我们的工作量非常大。如果这些类库一旦更新,又得重新下载导入,工作十分麻烦。但如果使用CocoaPods类库管理工具,那么上述问题都变得非常简单,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。在当前安装环境Mac下由于本身自带Ruby,因此我们只需输入命令:objc view plaincopy 在CODE上查看代码片派生到我的代码片 sudo gem install cocoapods,CocoaPods是以ruby gem 包的形式安装的。在安装执行的过程中,有可能会提示我们是不是更新rake,这时输入y即可。因为rake gem包会在安装过程中检查更新,一旦出现可用的新版本就会出现刚刚的提示。在安装进程结束的时候,执行命令:objc view plaincopy 在CODE上查看代码片派生到我的代码片pod setup 。如果都没有报错,那么说明都安装成功。SDWebImage是非常好用的一个第三方类库,集成图片下载,缓存等功能。这个库给UIImageView提供类目,支持远程下载图片(从网络上),现在已经支持ARC和64位处理了,不过使用时需要加sd_前缀。提示当前的状态,如:网络传输、提交中、操作成功或失败等等。可以设置提示的 pop layer 是否为 model,就是,提示的时间是否允许用户做其他操作。可以设置 背景色 和 自定义提示的内容。 使用起来非常简洁,代码量非常少AFNetwork是一个轻量级的网络请求api类库。是以NSURLConnection, NSOperation和其他方法为基础的。作为一个为iOS和Mac OSX制作的令人愉快的网络库,它建立在URL装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象。它的模块架构被良好的设计,拥有丰富的功能,因此,使用起来,必定赏心悦目。MJExtension是一套字典和模型之间互相转换的超轻量级框架。能完成:字典(JSON) -> 模型(Model)、CoreData模型(Core Data Model)JSON字符串 -> 模型(Model)、CoreData模型(Core Data Model)模型(Model)、CoreData模型(Core Data Model) -> 字典(JSON)字典数组(JSON Array) -> 模型数组(Model Array)、Core Data模型数组(Core Data Model Array)JSON字符串 -> 模型数组(Model Array)、Core Data模型数组(Core Data Model Array)模型数组(Model Array)、Core Data模型数组(Core Data Model Array) -> 字典数组(JSON Array)只需要一行代码,就能实现模型的所有属性进行Coding(归档和解档)(1) 通过创建百思不得姐IOS客户端APP,让广大的用户群众随时自由的分享身边的乐事、糗事。优秀的氛围和上好的用户体验,使得百思不得姐用户更加自由方便的与注册好友进行分享交流,给用户带来最大的快乐。本应用作为移动娱乐社交的软件,客户端需要实现的功能包括了:向服务器发送请求,解析处理服务器返回的数据,并把数据展示在客户端给用户,而且把服务器返回的数据存储到本地数据库中,减少用户不必要的流量,方便用户使用。应用整体功能划分如图3-1:登录功能是应用的一项基本的功能。当用户要发布帖子、收藏、评论等,一系列的操作时,都需要现进行登入。它包括用户输入用户名和密码进行登入和自动登入两块。用户输入用户名登入:可以使用键盘输入用户名和密码,比对输入是否正确,并与服务器进行验证,如果正确就登入系统。输入错误时提示用户输入错误,并提示重新输入进行验证。自动登入:用户上次登入后记住登入信息,本次点击登入时将会从本地数据库读出登入信息,自动发送请求,进行验证登入。注册是针对新用户使用本产品。新用户使用本产品时,进入系统注册,可以运用QQ、微博、微信等进行注册或者另外注册。要求用户名不能重复,密码达到规定的要求。发送客户端信息给客户端和客户端进行数据确认。服务器发送返回信息,则显示登入界面,成功注册。反之注册失败。关注开始点击关注的用户头像进入关注页面点击关注用户键进入登入功能否检验用户是否已经登入是客户端向服务器发送关注的请求服务器处理关注请求并反馈信息客户端接收并解析数据提示用户关注失败否用户关注是否成功是提示用户关注成功并更新本地数据结束开始精华点击进入主页面检查本地数据库并加载显示向服务器发送数据请求获得新的数据服务器处理请求,并将更新后的帖子数据返回是否返回新数据更新本地数据是否页面加载更新列表结束我的开始是否登入用户是否登入提示未登录否是进入登入功能本地数据是否存在向服务器提交申请是客户端解析数据并更新本地个人信息在页面显示个人的信息结束发帖模块输入帖子内容是是否添加图片/视频/音频开始弹出相册/相机获取并处理内容点击发布按钮返回发布页面进入登入功能流程向服务器发送请求并返回数据提示用户发送失败提示用户发送成功结束否是发布是否成功是否判断是否登入否