搜档网
当前位置:搜档网 › iOS游戏毕业论文

iOS游戏毕业论文

届别 2016届

学号 201214240204

毕业设计

基于iOS系统新闻资讯APP

姓名邓小勇

系别、专业电子信息与电气工程学院

电气工程及其自动化

导师姓名、职称何湘艳讲师

完成时间2016年5月

目录

摘要............................................................................................................................................. I Abstract................................................................................................................................... II 第一章绪论.. (1)

1.1 课题开发背景 (2)

1.2 新闻资讯app系统框架设计开发的现实意义 (3)

1.3 本系统预达到的目标 (3)

第二章新闻资讯app系统开发技术简介 (4)

2.1 Objective-c简介 (4)

2.1.1 ios系统框架 (5)

2.1.2 iOS系统各个层次 (5)

2.1.3应用程序框架 (6)

2.2 Xcode介绍 (8)

第三章新闻资讯app技术与需求分析 (10)

3.1 新闻资讯app的可行性分析 (10)

3.1.1 使用Objective-C编程技术 (10)

3.1.2 Objective-C的三大特点(继承,封装,多态): (11)

3.2社会因素和市场因素可行性 (12)

3.3 新闻资讯app需求分析 (12)

第四章新闻资讯app系统实现 (15)

4.1 初始框架的实现 (15)

4.1首页功能模块实现 (22)

4.3.国内外模块功能实现 (31)

4.4.地方资讯功能模块 (35)

4.5.个人中心功能模块实现 (38)

4.6.模块使用的主要技术 (40)

4.6.1 网络请求的二次封装: (40)

5.6.2 单例模式 (44)

4.7.主要技术框架 (45)

总结 (45)

参考文献 (46)

致谢 (47)

摘要

新闻资讯是一种用于对游戏介绍,下载软件。它涵盖了各种游戏。它们不仅界面美观,而且操作简单,让人第一眼看着就印象深刻。它还可以让人们在无聊的时候观看各种游戏视频,它支持各种视频格式。并且有着最新的游戏资讯,让人第一时间知道,既快捷又方便。

本文主要介绍了iOS平台以及基于该平台新闻资讯app的系统的发展现状与功能实现。本系统是一款基于iPhone平台的资讯app。资源占用率小,运行效率高,操作简洁,扩展能力强。本系统播放画面流畅,具有声效和图效上的听觉及视觉的享受。

使用本app时您会觉得世界之大无奇不有的新闻,让你了解世界各处的新闻在使用app的同时能够看视频,常用iPhone控件等技术,模块与模块间低耦合,高内聚,采用模块化方法编程,维护性较高。

关键词新闻资讯

Abstract

News and information is a kind of used for the game, download the software.It covers all kinds of games.They not only beautiful interface, and simple operation, let a person at first glance looks impressive.It can also make people in bored watching all kinds of video game, it supports a variety of video formats.And with the latest game information, let a person know the first time, quick and convenient.This article mainly introduced the iOS platform and based on this platform system development present situation and function of news and information app.This system is a information based on the iPhone app.Resource usage rate of small, high efficiency, simple operation, strong extension.Play the picture is fluent, this system has a sound and figure of auditory and visual enjoyment.When using this app you will think of the great wonders of the world news, let you understand the news all over the world in the use of the app can see video at the same time, the commonly used iPhone control technology, such as low coupling between modules and modules, high cohesion, by adopting the method of modular programming, high maintainability

Key word:News and information

II

第一章绪论

随着计算机网络通信技术和Internet的飞速发展,基于因特网的手机移动应用已经开始成为一种全新的功能需求,并且越来越受到人们的关注。由于移动应用具有简单性,随时随地性等诸多特点,因此它有着传统计算机所无法比拟的优点。这样一来,手机移动应用的开发工作就显得尤为重要,然而手机即时新闻也随之发展起来了,基本每个智能手机都会装上一款新闻资讯类的app。

第一章,介绍了课题的开发背景、课题开发的现实意义、新闻资讯的概念以及预期达到的目标。

第二章,概略地介绍了开发音乐播放器多用到的各种技术,比如新技术Objective-c,开源框架的josn解析等。

第三章,对新闻资讯app的系统结构设计、系统结构功能、运行环境等概要分析设计阶段做工了大体介绍即需求分析。

第四章,对系统总体流程设计、系统整体框架、后台逻辑处理功能设计和数据库设计作了简要说明。

第五章,具体介绍了系统各功能实现过程,如app界面的处理,个人信息的处理等。

第六章,大体介绍了对本系统的测试工作,涵盖了测试计划、测试结果以及测试分析这三个方面的内容。

1.1 课题开发背景

如今的移动应用开发产业让人眼花缭乱,主要的移动操作平台有:iOS iPhoneOS 、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、Flash/Flash Lite等。Android以其开放性,多任务,大功能,画面流畅,硬件设备优良多样等各种优点,占智能机一大部分;然而它也存在着很明显的不足,如:兼容性差,各种机型的配置不一样,以至于开发的时候出现各种版本。有些产品华而不实,用户体验差。Symbian 主要基于C语言的应用开发,支持多线程运行模式,但是开发代码量过大给开发人员造成很大的不便,另外塞班版本之间兼容性差也是SymbianOS需要改进的一个地方。就目前而言,三大平台 Android、Symbian、BlackBerry 的市场占有率也在逐渐下降,iOS 呈现平稳上升趋势。

1.App Store的支付模式成熟。不仅仅是商业模式的创新,更重要的是无法模仿,经过长时间的运营,App Store已经形成完备的支付模式,被大部分用户接受。

2.iOS是用Objective-C开发。从全球的编程语言排行榜来看,虽然,Objective-C只有苹果公司一家使用,但是已经排名第4,可见iOS开发的普及性和受欢迎程度,另外,基于C语言,运行效率更高。

3.苹果iPhone以及所有苹果的硬件软件策略和控制让苹果在用户体验和控制产品质量方面占尽先机,大部分iOS用户能够同时对他们手中的设备进行更新,这会吸引更多用户。

2

4.iPhone在中国极受欢迎。中国的各大移动运营商都积极地与苹果公司合作,各自推出适合中国人使用的手机套餐和应用,比如中国联通,中国电信等等,社会各界也对iPhone有很好的评价。

1.2 新闻资讯app系统框架设计开发的现实意义

随着手机的更新换代,功能的提升,人们已经可以在手机上装更多软件了并且可以很流畅的运行,现在中国有百分之60%的人在用智能手机,人们用手机是为了更方便,消息传递快等,所以一款好的新闻资讯app是不可缺少的,现在市面上好的新闻资讯app很多,竞争也很大。以前人们了解新闻都是从报纸,书籍上了解,那样消息传递太慢了,现在我们只需要下载一个app就可以在任何时候都可以知道前一分钟在某个地方发生的事。所以新闻资讯app的市场还是很广的。本app是基于iOS系统开发,因为现在很多人买iPhone手机为的就是更流畅,体验更好。本app运行效率也高,操作简洁,扩展能力强等特点

1.3 本系统预达到的目标

本系统紧跟当前移动手机开发趋势,使用Objective-c语言开发一个基于新闻资讯类的app,实现基于iOS平台的新闻快速浏览,观看视频的基本功能。

3

第二章新闻资讯app系统开发技术简介

该部分主要包括对iOS系统架构的分析,核心操作系统的分析,应用程序框架的分析,内核的分析,开发环境的配置信息,选用数据库描述信息等。

2.1 Objective-c简介

苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。iOS 与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix 的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS

Objective-C,是扩充C的面向对象编程语言。它主要使用于Mac OS, Objective-C 通常写作OC和较少用的Objective C或Objc,是在C的基础上,加入面向对象特性扩充而成的编程语言。目前,Objective-C主要应用于Mac OS X和iOS这两个系统。Objective-C可以在任何GCC支持的平台上进行编译,因为GCC原生支持Objective-C Objective-C是C语言的严格母集合,意指任何原始的C语言程式都可以通过Objective-C编译器而不需修改,也允许 Objective-C 使用任何原始的C语言代码。Objective-C 形容自己为覆盖于C语言上的一层薄纱,这是因为Objective-C的原意就

4

是在原始C语言主体上加入面向对象的特性。Objective-C的面向对象语法源于Smalltalk讯息传递风格。所有其他非面向对象的语法,包括变量型别,前处理器(preprocessing),流程控制,函数声明与调用皆与C语言完全一致。

2.1.1 ios系统框架

iOS的系统架构和其操作系统一样,采用了分层的架构。iOS分为四层,分别为核心操作系统 the Core OS layer ,核心服务层 the Core Services layer ,媒体层 the Media layer ,Cocoa触摸架构层 the Cocoa Touch layer 。

2.1.2 iOS系统各个层次

Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。作为app开发者不需要与这一层打交道。

Core Services是核心服务层,可以通过它来访问iOS的一些服务。

Media是媒体层,通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。

5

Cocoa Touch是可触摸层,这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。包括以下这些组件:OS X Kernel,Mach 3.0,BSD,Sockets,Power Mgmt,File System Keychain,Certificates,Security,Bonjour等。在Cocoa Touch层中的很多技术都是基于Objective-C语言的。Objective-C语言为iOS提供了相机集合,文件管理,网络操作等支持。例如开发人员接触最多的UIKit框架,它为应用程序提供了各种可视化组件,窗口 window ,视图 view 和按钮组件 UIButton 。Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架,获取照片信息功能的框架,负责加速感应器和三维陀螺仪等硬件支持的框架等等。

2.1.3应用程序框架

编写应用程序项目,都是从Cocoa Touch层开始的,iOS 应用程序的基础 Cocoa

Touch 框架重用了许多 Mac 系统的成熟模式,但是它更多地专注于触摸的接口和优化。UIKit 为您提供了在 iOS 上实现图形,事件驱动程序的基本工具,其建立在和Mac OS X 中一样的 Foundation 框架上,包括文件处理,网络,字符串操作等。大部分 Cocoa Touch 的功能是用 Objective-C 实现的。Objective-C 是一种面向对象的

6

语言,它编译运行的速度令人难以置信。更值得一提的是采用了真正的动态运行时系统,从而增添了难能可贵的灵活性。由于 Objective-C 是 C 的超集,因而可以很容

易地将 C 甚至 C++ 代码添加到您的 Cocoa Touch 程序里。

当您的应用程序运行时,Objective-C 运行时系统按照执行逻辑对对象进行实例化—而且不仅仅是按照编译时的定义。例如,一个运行中的 Objective-C 应用程序能够加载一个界面(一个由 Interface Builder 创建的 nib 文件),将界面中的 Cocoa 对象连接至您的程序代码,然后,一旦UI中的某个按钮被按下,程序便能够执行对应的方法。

基本框架有:

AddressBook.framework 提供访问存储核心数据库中用户联系人信息的功能。

AddressBook.framework提供一个用户界面,用于显示存储在地址薄中的联系人详情。

AudioUnit.framework提供一个接口,让我们的应用程序可以对音频进行处理。

AudioToolbox.framework和AVFoundation.framework提供音频录制和回放的底层API,同时也负责管理音频硬件。

CFNetwork.framework访问和配置网络,像HTTP,FTP和Bonjour Services 等。

7

CoreFoundation.framework提供抽象的常用数据类型,如Unicode、strings、XML、URL等。

CoreGraphics.framework提供2D绘制的基于C的API。

Foundation.framework提供Object-C的基础类像NSObject 、基本数据类型和操作系统服务等。

GameKit.framework为游戏提供网络功能,点对点互联和游戏中的语音交流。

MapKit.framework为应用程序提供内嵌地图的接口。

MediaPlayer.framework提供视频播放和音频的功能。

MessageUI.framework提供视图控制接口用以处理E-mail和短信。

OpenGLES.framework提供简洁而高效的绘制2D和3D图形的OpenGL API。

QuartzCore.framework提供动画特效以及通过硬件进行渲染的能力。

StoreKit.framework为应用程序提供在程序运行中消费的支持。

SystemConfiguration.framework检测当前网络是否可用和硬件设备状态的能力。

2.2 Xcode介绍

Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由苹果公司开发。Xcode是开发OS X 和 iOS 应用程序的最快捷的方式。Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。

8

Xcode 4 的虚拟模型和设计功能让你可以更轻松的开发和维护应用程序。只需选择应用程序中想要编写的部分,然后模型和设计系统将自动创建分类图表,不仅可以显示编码,还可以让你进行浏览。Mac OS X Core Data API 帮你的应用程序创建数据结构。更棒的是,它还自动提供撤消、重做和保存功能,无需编写任何编码。

Xcode 整合的 Apple Reference Library 为所有的Apple开发者文件提供一个单独的搜索和显示界面,这些文件包括来自苹果电脑公司网站的在线文件,以及存放在你电脑上的文件。新的参考资料库甚至可以帮你将定期更新资料下载到你的电脑,保持文件的最新状态。Xcode 将帮你快速找到最新的答案。

Xcode 4 的核心部分是苹果电脑公司下一代业界标准的 gcc 编译器gcc 4.0。新的编译器利用许多先进的最优化技术帮你从现存编码中获得更多性能。从超级计算世界借鉴来的自动向量化(Auto-vectorization)技术可以帮助你释放每台 Intel 系统中速度引擎的能量,而不需要编写向量化编码。其他的最优化工具则支持反馈定向的最优化,以及隐藏模块分析。

Xcode 将赋予你创建诸如计算和渲染引擎应用程序的能力,这些应用程序使用64位内存定址。这非常适合数据集中的应用程序,其通过访问内存中的数据运行速度更快,远胜于磁盘访问。Xcode 将为你提供工具来建立并调试适合 Intel Core i5, i7 和Mac OS X Lion 的 32 或 64 位应用程序,还可以让你创建包含32位和64位执行能力的 Fat Binaries。

众所周知,在构建中引进多重处理器可以提高速度,Xcode 能帮你实现这个明显的结论。利用支持 Rendezvous 的分布式构建功能,可以轻易地把编译工作量分散到

9

闲置的电脑上来寄放构建,或者更好是在单独的电脑上开发一个专门的 Xserve 构建寄放区,快速处理那些耗时的任务。

不管你用 C、C++、 Objective-C或 Java编写程序,在 AppleScript里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现 Xcode 编译速度极快。每次操作都很快速和轻松。

第三章新闻资讯app技术与需求分析

根据第一章所定义的课题研究方向及目标,本章将对系统功能进行具体的需求分析,具体分析app所要实现的功能以及欲达到的效果。

3.1 新闻资讯app的可行性分析

3.1.1 使用Objective-C编程技术

Objective-C是C语言的面向对象扩展,可以将其称为“带有对象的C”。相对于其他面向对象语言,Objective-C更加容易学习。

10

3.1.2 Objective-C的三大特点(继承,封装,多态):

多态性

在Objective-c中消息的调用看上去和标准C中的函数调用相似,但因为方法属于一个对象,消息的行为与函数调用还是不同。在一些情况下,一些对象仅能对针对它涉及的方法起作用,不能被其他类的方法使用,即使这些类有同样名称的方法。这意味着两个对象对同样的消息有着不同的响应,即多态性。Objective-c中多态性和动态绑定配合使用,可以使代码提供给任意数量不同类型的对象使用,这些对象不需要再写代码的时候就已经定义好,它们可以是以后开发的对象,也可以是其他项目的对象。

封装

iOS封装代码可以看出一个程序员的代码功底,一个好的app就必须要进行代码封装,另外就是对一些API,重要属性进行封装:

@private: 此时类的成员变量只能在当前类的实现@implementation直接访问;

@protected: 此时类的成员变量只能在当前类以及子类的实现@implementation能直接访问;

@public:任何地方都可以访问:

@package:同一体系内(架构)可以直接访问,介于@private和@public之间。

继承性

类的定义是累进的,任一个新类都是在另一个类的基础上定义的,新类继承了它的方法和实例变量。继承使所有的类构成一颗树形的结构,在Objective-c中使用类

11

一般要继承或间接继承于基类:NSObject,因为NSObject提供了大量的有用特性。比如,一些图形类,需要继承于Shape类,而Shape是Graphic类的子类,Graphic又继承于NSObject类,因此,还是间接继承于NSObject类。

3.2社会因素和市场因素可行性

如今社会发展迅速,每个人都不再满足于某一个的游戏,越来越多地人手机里游戏在五个以上。所以一个好的游戏资讯app迫在眉睫。

按照目前市场情形,越来越多的移动开发者涌进iOS开发领域。iOS平台上应用软件,App Store的支付模式更为成熟而且有监管,另外iOS的兼容性问题小,开发人员不用考虑太多的配置兼容问题,美观大方的外形,更是吸引了大量的用户。而且其良好的用户体验,都为iOS的发展奠定了良好的基础。

3.3 新闻资讯app需求分析

本系统是基于iOS平台开发的一款资讯类app,将要应用在iOS移动通讯设备上,能够尽可能的满足用户更方便更快捷的了解更多新闻信息,对于一个资讯类app首先界面要让人看的舒服,并且能留下印象,另外就是后台数据要及时更新最新资讯。

为了防止大家在浏览app的时候感觉枯燥无味,因此加了炫酷的视频供大家看。

12

13

14

第四章新闻资讯app系统实现

根据设计阶段的工作成果系统各个功能模块实现的效果是比较理想的。下面是各个功能模块的实现。

4.1 初始框架的实现

在系统的开始,需要实现一个定制的UITabBarController的控件,并且每个UITableBarItem都关联相对应的模块:

//自定义一个UITableBarItem,自己可以随时改成自己想要的形状

- (void)viewDidLoad

{

[super viewDidLoad];

[self _createViewController];

[self _createTabBarButton];

}

#pragma mark - 创建视图

-(void)_createViewController

15

{

GiftViewController *gift = [[GiftViewController alloc]init];

UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:gift];

gift.title = @"福利";

gift.tabBarItem.image = [UIImage imageNamed:@"nav_gift_d"];

TYTHomeViewController *home = [[TYTHomeViewController alloc]init]; UINavigationController *navCtrl1 = [[UINavigationController alloc] initWithRootViewController:home];

ZhaoYXViewController *zhaoxy = [[ZhaoYXViewController alloc]init]; UINavigationController *navCtrl2 = [[UINavigationController alloc] initWithRootViewController:zhaoxy];

MyHomeViewController *myhome = [[MyHomeViewController alloc]init];

16

相关主题