《毕业设计(论文)基于IOS平台的文化交流平台系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于IOS平台的文化交流平台系统的设计与实现.doc(35页珍藏版)》请在三一办公上搜索。
1、目 录ABSTRACTii第1章 绪论11.1 开发背景及意义11.1.1 开发背景11.1.2 开发意义112 开发工具及运行环境21.2.1 开发工具21.2.2 运行环境2第2章 项目所用技术介绍32.1 IOS简介32.2 IOS系统架构32.3 IOS系统优势52.3.1 IOS模块性52.3.2 灵活性52.3.3 可伸缩性52.3.4 可操作性5第3章 系统分析63.1 功能需求63.2系统使用例图7第4章 系统设计细节84.1 程序总体架构84.2 模块功能设计9第5章 详细设计与编码105.1 登陆注册模块105.2 首页模块145.3 发布动态模块175.3.1 基本功能1
2、75.3.2 选择图片上传225.3.3 聊天功能24第6章 系统测试276.1 登陆模块测试用例286.2 发表动态测试用例286.3 浏览动态测试用例286.4 系统评价29第7章 总结30谢 辞31参考文献32基于IOS平台的文化交流平台系统的设计与实现摘要 文化交流平台,是一种非正式的迷你型社交软件,是一个基于用户关系的信息分享、传播及获取平台。用户可以通过WEB(WORLD WIDE WEB)、WAP(Wireless Application Protoco)以及各种客户端组件个人社区,以150字左右的文字更新信息,并实现即时分享。它是一种互动及传播性极快的工具,具有实时性,传播速度
3、甚至比大众媒体还快。 本文阐述了文化交流平台的各种相关知识,尤其对iPhone客户端的开发和应用作了详细的介绍,同时将设计过程中所用到的主要方法及控件进行了详细说明。此次毕业设计以IOS操作系统作为开发平台,Xcode作为开发环境,参照社交软件的基本功能,进行文化交流平台客户端软件的设计与实现。本软件实现了首页获取数据、我的资料、我的关注、我的粉丝、收藏动态、评论动态、添加照片、发表动态、在线聊天等功能,具备了一般社交软件所具有的功能,具有较强的实用性。关键词 IOS平台 iPhone社交 文化交流ABSTRACTAbstract Cultural exchange platform, is
4、an informal Mini social software, is a user based on the relationship between the information sharing, dissemination and access platform. Users can WEB (WIDE WEB WORLD), WAP (Application Protoco Wireless) as well as a variety of client components of the community, to 150 words or so of text updates,
5、 and to achieve instant sharing. It is a kind of interactive and fast communication tools, with real-time, and even faster than the mass media.In this paper, the cultural exchange platform for the related knowledge, especially the development and application of iPhone client made a detailed introduc
6、tion, at the same time, the design of the main methods used in the process and control are described in detail. The graduation project to IOS operating system as a development platform, Xcode as the development environment, with reference to the basic functions of social software, the design and imp
7、lementation of the cultural exchange platform client software. The software achieve the home page access to the data, I and friends, my concern, my fans, used to comment on, comment, forward comments, add photos, comment, online chat, etc. function, with the general social software with the function
8、, has a strong practicality.Keywords IOS platform, iPhone social, cultural exchanges第1章 绪论1.1 开发背景及意义1.1.1 开发背景2006年3月,社交平台先驱blogger创始人埃文威廉姆斯(Evan Williams)创建的新兴公司Twitter推出了社交服务。在最初阶段,这项服务只是用于向好友的手机发送文本信息。Twitter英文原意为小鸟的叽叽喳喳声,用户能用如发手机短信的数百种工具更新信息。Twitter的出现把世人的眼光引入了社交的小小世界里。Twitter是一个社交网络及微客户端服务。现在,
9、用户可以经由SMS、即时通信、电邮、Twitter网站或Twitter客户端软件(如Twitterrific)输入最多140字的文字更新,Twitter被Alexa网页流量统计评定为最受欢迎的50个网络应用之一。Twitter在国外的“大红大紫”,令国内有些人终于坐不住了。2005年从校内网起家的王兴,在2006年把企业卖给千橡互动后,于第二年建立了饭否网。同样擅长技术活的SwiSen也瞄准了这个行业,很快清新、简约的随心微博也开始正式上线。而腾讯作为一个拥有4.1亿QQ用户的企业,看着用户对随时随地发布自己状态的强烈需求后,也忍不住尝试了一把,2007年8月13日腾讯滔滔上线。2009年7月
10、中旬开始,国内大批老牌社交产品(饭否、腾讯滔滔等)停止运营,一些新产品开始进入人们的视野,像1月份开放的大围脖,6月份开放的Follow5,7月份开放的贫嘴,8月份开放的新浪微博。其中Follow5在2009年7月19日孙楠大连演唱会上的亮相, 是国内第一次将社交平台引入大型演艺活动,与twitter当年的发展颇有几分神似。1.1.2 开发意义在智能手机飞速发展的今天,手机成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此应用建设在智能手机应用上的地位显而易见,它已成为人文信息交流,政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视
11、。社交平台,有点像聊天室或者说是像茶楼酒肆。是沟通人与人之间思想,交流知识,讨论问题和交换观点的网络交际平台。在这个平台上首先是虚拟的人(性别,年龄,职业,喜好,职务等)共同谈论你所感兴趣的任何话题,通过你们之间交流争辩让你对它有更进一步的了解和认知。社交平台的传播速度更快,关注的人更多,时效性更强。社交平台上有许多信息是在传统媒体上看不到的,而公众对公共话题天生有一种关注心态,在社交平台上企业和客户之间不再是单纯的买卖关系,社交平台用好了,就能够在企业用户中培养出超越买卖的情感关系,在市场竞争中游刃有余。传统的企业口碑营销,偏重在认识的人之间的口碑,但现在,越来越多的年轻人相信网络社群上不认
12、识的“亲朋好友”的评价。因此,赢得网友的口碑,对企业而言,几乎跟花钱做广告一样重要。微社交平台的出现丰富了企业网络营销的手段,帮助企业“赢得”陌生人的口碑。微社交平台作为一个新的交流互动平台,正在受到越来越多人的青睐。相比博客而言,微社交平台使用更加简单,用户所付出的单位成本、精力投入都更少,写作门槛更低,用户扩展更为迅速,为可能实现的媒体信息传播积累了庞大的通讯员队伍。同时,整合各类工具尤其是手机短信的优势,微社交平台具备了实时传播的特性,在面对突发新闻事件时,微社交平台的报道速度往往能领先于传统媒体。随着社交平台的“客”流量不但呈爆炸式增长,而且其影响力也与日俱增。微社交平台迅速成为中国企
13、业及时传播信息,增加用户与企业粘性的营销利器。众多中小企业纷纷设立官方微博客、官方公众号等等,安排专人在新浪、微信、QQ等开博,与粉丝紧密互动,积极推广企业品牌。社交平台预示着个体的力量不再孱弱,它在影响和改变这个世界上正发挥越来越大的作用。12 开发工具及运行环境1.2.1 开发工具(1) 开发该软件使用的开发工具为Xcode7.1版本1。(2) 开发该软件使用的开发语言为Objective-C等开发语言2-3。1.2.2 运行环境(1) 该软件运行手机的版本为iPhone4及其以上版本。(2) 开发该软件运行的苹果系统为IOS4.3.5及其以上版本。(3) 软件运行手机硬件参数 CPU:苹
14、果A4处理器 集成PowerVR SGX535图形核心,800MHz; Ram:512MB; 屏幕:3.5英寸,960640像素; 支持频段:WCDMA 2100MHz 、CDMA EV-DO(电信3G专用)。第2章 项目所用技术介绍2.1 IOS简介IOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。IOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名
15、为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为IOS。截止至2011年11月,根据Canalys的数据显示,IOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%,据市场研究公司ABI Research最新发表的市场预测报告称,苹果的全球智能手机市场份额在2013年将达到最高点的22%。2.2 IOS系统架构Objective-C作为开发语言,是c语言的升级版4。iOS的系统结构分为以下四个层次:核心操作系统(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),
16、Cocoa 触摸框架层(the Cocoa Touch layer)。如图1所示。图1 IOS系统结构层次对初学者来说,Objective-C存在了很多令人费解的写法,实际上他们是非常优雅的。有C语言基础的程序员在专业老师的指导下,用1个月的时间就可以完全掌握Objective-C这门编程语言了。程序员写的最多的就是函数以及调用自己写的或者别人写的函数。本文就从函数的角度来看下Objective-C的优雅之处。C#和Objective-C同属于C语言系列5。让我们先看下C#的函数定义和调用,做个对比。C#函数的定义:publicvoiddoIt(stringactorName,stringmo
17、vieName,inttimesSeen)Console.Write(0ismyfavoriteactorinthemovie1,Isawit2times.,actorName,movieName,timesSeen);函数的调用:Class1objMovie=newClass1();objMovie.doIt(莱昂纳多迪卡普里奥,盗梦空间,120);再让.NET程序员看下Objective-C的定义:-(void)doIt:(NSString*)actorNamemovieName:(NSString*)valuetimesSeen:(int)timesNSLog(%ismyfavorite
18、actorinthemovie%,Isawit%itimes.,actorName,value,times);如果你第一次看Objective-C,肯定会琢磨不透上面的代码,怀疑是不是写错了。对于上面这个函数的定义:(1) -表示这个函数是实例函数(类似非静态函数),+表示这个函数是类函数(类似静态函数)(2)(void)表示这个函数没有返回值。(3) 函数名是doIt:,而不是doIt(4) 参数用空格隔开(5) 参数类型写在括号中(6) 参数分内部参数和外部参数,如电影名称,内部参数是:value,外部参数是:movieName(7) 函数的一个参数没有外部参数的名称,有内部参数名。如:a
19、ctorName。调用:objMoviedoIt:成都.哇卡伊movieName:毛飞碟说timesSeen:2000000从上面代码可以看出除了第一个参数,其余的参数都可以加上外部参数名称用于区别。从上面可以看出Objective-C和C#区别很大,实在会令.NET程序员费解。Objective-C函数设计的优雅之处在于既有内部参数名又有外部参数名,可以不用再在内部定义变量来存放函数的参数。2.3 IOS系统优势2.3.1 IOS模块性IOS是Cisco路由软件的初始品牌名称。随着Cisco技术的发展,IOS不断扩展,成为Cisco Central ENgineering(中央工程部门)所称
20、之为的“一系列紧密连接的网际互连软件产品”。尽管在其品牌名识别中,IOS可能仍然等同于路由软件,但是它的持续发展发已使之过渡到支持局域网和ATM交换机,并为网络管理应用提供重要的代理功能。必须强调的是,IOS是Cisco开发的技术:一项企业资产。它给公司提供独特的市场竞争优势。目前许多竞争者许可IOS在其集线器和中由模块内运行,IOS已尼广泛成为网际互连软件事实上的工业标准。2.3.2 灵活性基于Cisco产品的工程开发以用户可以获得适应变化的灵活性。IOS软件提供一个可扩展的平台,Cisco会随着需求和技术的发展集成新的功能。Cisco可以更快地将新产品投向市场,我们的客户可以享用这种优势。
21、2.3.3 可伸缩性IOS遍布网际互连市场;广泛的Cisco使用伙伴及竞争者在他们的产品上支持IOS.IOS软件体系结构还允许其集成构造企业互联网络的所有部分。Cisco已经定义了4个:核心/中枢:网络中枢和WAN服务,包括大型骨干网络路由器和ATM交换机。工作组:从共享型局域网移植到局域网交换(VLANs)提供更优的网络分段和性能。)远程访问:远程局域网连接解决方案;边际路由器、调制解调器等。IBM网际互连:SNA和LAN并行集成,从SNA转换到IP.Cisco的IOS扩展了所有这些领域,提供了支持端到端网际互连的稳健性。2.3.4 可操作性IOS提供最广泛的基于标准的物理和逻辑协议接口超过
22、业界任何其他供应商:从双绞线到光纤,从局域网到园区网到广域网,Novell NetWare,UNIX,SNA以及其他许多接口。即是说,一个围绕IOS建立的网络将支持非常广泛的应用。第3章 系统分析3.1 功能需求此次程序设计任务是IOS平台下的微社交平台客户端设计,程序将在真实手机运行调试。此次程序设计用户界面要求较为友好,由于针对的用户为iPhone智能手机用户,因此程序的操作全部可以通过触控完成操作。本微社交平台客户端要求设计合理.在设计完成后,要求程序能够实现登录功能。同时,程序还必须能够实现首页信息获取,用户资料,好友资料,发表动态,用户的关注,用户的粉丝,转发动态,评论动态,收藏动态
23、,我发表的动态等。此次程序设计的操作系统要求为IOS4.3.5及以上版本。此次程序设计需要在Xcode7.1环境下开发。本客户端的数据都是通过网络来自于融云的服务器,产生的数据也是上传到融云的服务器,在客户端在沙盒存一些身份识别信息。基于系统需求分析,该系统需要实现以下功能:(1) 用户登录:当用户第一次使用该软件时,会进入注册页面,如果是老用户,则可以直接登录。(2) 发布动态:发布动态是社交平台的基本功能,用户将自己想要向外界传达的信息进行发布,这是用户向外传播信息的最主要的途径与方法。(3) 修改用户个人信息:用户可以根据个人需要修改自己的信息,包括用户名、email、心情、以及上传头像
24、或者更改为其他头像。(4) 查看动态更新:在首页要显示用户关注的博友的最近动态更新,并能够查看动态的评论,以及查看好友的主页。(5) 转发动态:转发动态是社交软件的基本功能之一,用户将自己看到的感觉有用的信息进行转发,不需要用户全部编写,可以按照动态原文转发,也可以在原文的基础上更改信息后进行转发,这是用户发布动态的另一种较为方便的方法。(2) 评论动态:当用户对一篇动态有所感想时可以对这篇动态进行发表自己的评论,用户可以写下自己的想法进行评论,当评论成功时,别的用户再次浏览该篇动态时就可以在文章的下面看到用户的评论,这是动态进行互动的另一种方法。3.2系统使用例图在该软件系统中用户可以进行的
25、操作有用户登陆、查看首页、查看动态详情、发布新的动态、对别人的或者自己的动态进行评论、转发别人的动态、查看别的用户详情护自己的详细信息,该系统使用例图,如图2所示。图2 系统使用例图第4章 系统设计细节4.1 程序总体架构在三层结构中(如图3所示),解决了客户端/服务器模式面临的许多问题。通过划分客户与服务器之间的功能,分布式计算提供了一种把应用中的用户界面从企业逻辑中分离出来的自然方法。在分布式环境下,企业逻辑提供了一种把应用中的用户界面从企业逻辑中分离出来的自然方法。在分布式环境下,企业逻辑集中地安装在应用服务器上,这样就降低了客户端的负载,同时对敏感信息的访问也可以得到很好的控制。采用分
26、布式计算有着多方面的技术优势6,包括:(1) 封装性;(2) 性能;(3) 全性管理。在分布式计算模式中,由于所有的商业逻辑都驻留在服务器端,信息管理部就可以十分方便地监控服务器的运行情况,很容易地控制访问服务器以及与服务器应用打交道人员的数量。这可以大大简化管理员对系统的管理,减轻系统维护的工作量,并确保系统的可靠运行。图3 三层客户/服务器模型软件设计时,考虑到整个系统的延续性和可扩充性,我们将系统应用体系分为三部分:用户表现层、数据访问层、商业逻辑层。(1)用户表现层:处理用户界面的功能;(2)数据访问层:在通常情况下指数据库;(3)商业逻辑层:指在程序中做出职能决策的那一部分功能。客户
27、端的结构图如图4 所示。图4 客户端结构图4.2 模块功能设计本客户端大致分为首页、动态详情、用户信息、发布动态、查看评论等模块,分别负责不同的功能:登陆模块:访问用户的信息与数据需要经过用户的授权,所以必须有用户登陆成功的模块本软件才能正常使用。首页:是用户浏览的界面,会将用户所关注的人的动态按照时间先后顺序排列,其中会显示动态的作者、发布时间、内容、转发评论数量、发布方式等。首页是用户使用最多的界面,也是软件初次打开的默认界面。动态详情:当用户在首页浏览动态的时候,点击某一条动态就会进入到动态详情的界面,这个界面会更详细的展示用户所点击的那条动态,并且提供转发和评论的功能按钮。用户信息:用
28、户信息是展示用户的界面,何以展示用户本身的信息并修改,也可以查看任何用户感兴趣的用户。发布动态:用来发布新动态的界面,转发和评论的时候也会用到这个模块。查看评论:用来浏览某一条动态的评论。第5章 详细设计与编码5.1 登陆注册模块本软件采用客户端与服务器交互的方式授权来使访问用户的数据。效果如图5所示,授权成功后就会进入主页。图5 登陆页面登陆具体代码如下:- (void)MyPerformWithIndentifier self.view endEditing:YES;/移除键盘 if (self.failureCount = 2 & !self.myTestWord) self creat
29、TextWord; if (self.myTestWord & !self.myTestWord.putInTextWord.text isEqualToString:self.testResult ) self creatWarnLabel; self.warnLabel.text = 验证码错误!; self.myTestWord clickChangeValue; return; if (self.passWordText.text.length = 5 | self.userNameText.text.length = 0) self creatWarnLabel; return; /
30、验证过程中,提示正在登录。 MBProgressHUD showMessage:正在登录; self.user.username = self.userNameText.text; self.user.password = self.passWordText.text; /-/下面数据需要网络返回 BmobUser loginWithUsernameInBackground:self.user.username password:self.user.password block:(BmobUser *user, NSError *error) if (!user) self creatWarn
31、Label; if (self.myTestWord) self.myTestWord clickChangeValue; self.failureCount +; MBProgressHUD hideHUD; self.warnLabel.text = 登录失败,输入有误,请检查!; return; else self.user.littleName = user objectForKey:littleName; self.user.objectId = user.objectId; self.user.userToken = user objectForKey:userToken; sel
32、f.user.userPhoto = user objectForKey:userPhoto; self loginRongCloud; ;如果没有账号则先进入注册页面,如图6所示:图6 注册页面注册代码如下:#pragma mark - 点击注册- (void)registerUser if (self.rCount 1) return; if (self.passWordText.text.length 0) self creatWarnLabel; self.warnLabel.text = 邮箱已经注册!; else self.rCount +; ; 5.2 首页模块在这个viewco
33、ntroller中,主要是一个UITableview,在UITableview中的每一个条目中展示每一条动态。首先将获得的token存储到本地中,这样的话用户只需在初次使用时需要登陆,以后就可以直接获取数据了:#import interface LZYFirstViewController : UIViewControllerend#import LZYFirstViewController.h#import LZYArticlePhotoOutlineViewController.h#import LZYPublic.h#import LZYArticleEditViewController
34、.h#import LZYUser.h#import LZYLogInViewController.h#import LZYArticleShowPhotoViewController.h#import LZYFriendsViewController.hinterface LZYFirstViewController ()property (nonatomic, strong) LZYArticlePhotoOutlineViewController *photoVC;property (nonatomic, strong) UIScrollView *scrollView;property
35、 (nonatomic, strong) LZYUser *user;endimplementation LZYFirstViewController- (void)viewDidLoad super viewDidLoad; self.automaticallyAdjustsScrollViewInsets = NO; / Do any additional setup after loading the view. self makeNavAttributes; self.view.backgroundColor = UIColor whiteColor; self makeSubView
36、s;- (void)viewWillAppear:(BOOL)animated super viewWillAppear:animated; self.navigationController.navigationBar setHidden:NO; self.tabBarController.tabBar setHidden:NO;- (void)didReceiveMemoryWarning super didReceiveMemoryWarning; / Dispose of any resources that can be recreated.#pragma mark - 懒加载- (
37、LZYArticlePhotoOutlineViewController *)photoVC if (!_photoVC) _photoVC = LZYArticlePhotoOutlineViewController alloc init; _photoVC.delegate = self; return _photoVC;- (LZYUser *)user if (!_user) _user = LZYUser defaultUser; return _user;- (UIScrollView *)scrollView if (!_scrollView) _scrollView = UIS
38、crollView alloc init; return _scrollView;#pragma mark - subViews- (void)makeSubViews self.scrollView.frame = CGRectMake(0, 64, ScreenW, ScreenH - 110); self.scrollView.contentSize = CGSizeMake(ScreenW, ScreenH); self.photoVC.view.frame = CGRectMake(0, 0, ScreenW, ScreenH - 110); self.scrollView setScrollEnabled:NO; self.scrollView addSubview:self.photoVC.view; self.view addSubview:self.scrollView;由于获取网络数据所消耗的时间较长,且手机的网络信号不稳定