农信通iphone应用开发毕业设计论文.docx
- 文档编号:26427564
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:46
- 大小:839.29KB
农信通iphone应用开发毕业设计论文.docx
《农信通iphone应用开发毕业设计论文.docx》由会员分享,可在线阅读,更多相关《农信通iphone应用开发毕业设计论文.docx(46页珍藏版)》请在冰豆网上搜索。
农信通iphone应用开发毕业设计论文
论文题目:
农信通(新疆联通iphone版)
摘要
苹果iOS是由苹果公司开发的手持设备操作系统。
苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及AppleTV等苹果产品上。
iOS与苹果的MacOSX操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。
原本这个系统名为iPhoneOS,直到2010年6月7日WWDC大会上宣布改名为iOS。
截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%.
iOS是由苹果公司为iPhone开发的操作系统。
它主要是给iPhone、iPod、touch以及iPad使用。
就像其基于的MacOSX操作系统一样,它也是以Darwin为基础的。
原本这个系统名为iPhoneOS,直到2010年6月7日WWDC大会上宣布改名为iOS。
iOS的系统架构分为四个层次:
核心操作系统层(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),可轻触层(theCocoaTouchlayer)。
系统操作占用大概
240MB的存储器空间。
iOS的系统结构分为以下四个层次:
核心操作系统(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),Cocoa触摸框架层(theCocoaTouchlayer)。
2007年10月17日,苹果公司发布了第一个本地化IPhone应用程序开发包(SDK),并且计划在2月发送到每个开发者以及开发商手中。
2008年3月6日,苹果发布了第一个测试版开发包,并且将“iPhonerunsOSX”改名为”iPhoneOS“。
2008年9月,苹果公司将iPodtouch的系统也换成了”iPhoneOS“。
2010年2月27日,苹果公司发布iPad,iPad同样搭载了”iPhoneOS”。
这年,苹果公司重新设计了“iPhoneOS”的系统结构和自带程序。
2010年6月,苹果公司将“iPhoneOS”改名为“iOS”,同时还获得了思科iOS的名称授权。
2010年第四季度,苹果公司的iOS占据了全球智能手机操作系统26%的市场份额。
2011年10月4日,苹果公司宣布iOS平台的应用程序已经突破50万个。
2012年2月,应用总量达到552,247个,其中游戏应用最多,达到95,324个,比重为17.26%;书籍类以60,604个排在第二,比重为10.97%;娱乐应用排在第三,总量为56,998个,比重为10.32%。
一、绪论5
1.1课题的来源及意义5
1.2课题主要研究的问题5
1.3系统设计的目标及基本思路6
1.3.1设计目标6
1.3.2基本思路6
二、相关知识8
2.1iOS的相关介绍8
2.2Xcode相关介绍9
2.3Objective-C相关介绍10
2.4基本设计模式11
2.5Xib文件13
三客户端UI的设计与实现14
3.1应用的整体概述14
3.2应用的详细设计15
3.2.1用户需求设计15
四、真机调试28
4.1测试过程28
4.1.1测试方法28
4.1.2测试要点28
4.2测试结果29
4.3系统的维护30
五技术要点总结31
5.1应用的主要技术31
5.1.1有关文件的存储31
5.1.3涉及的UI控件33
5.1.4协议34
5.1.5涉及的亮点34
5.2存在的问题及展望35
结论36
致谢42
一、绪论
1.1课题的来源及意义
随着社会科学的进步,现代化的工具更多的被人们接受,如,手机、电脑。
如今网络已入人心,当代大学生则是不可一日无网。
在最近的几年里,互联网发展迅速、市场相当巨大、前景非常诱人。
这在侧面告诉我们,人类对移动性和信息的需求急剧上升,越来越多的人希望在移动的过程中高速的接入互联网,获取急需的信息,完成想做的事情,而互联网额在逐渐的渗透到人们的生活、工作当中。
手机支付、视频应用、位置服务等各种各样的应用正迅速的进入人们的生活。
本年度,中国联通海南省分公司在海口启动了农业科技110电子农信通项目,正式推出电子农务网的定制终端“农信通”手机,农民可以在农田、果园、养殖场等现场快捷地搜索、查询和获取农务资讯和信息,随时随地与网上农业专家交流沟通。
据悉,项目启动后将有一批农村信息员在海口农村首先推广“电子农信通”。
1.2课题主要研究的问题
(1)如何自动注册和登录农信通和八百里物流?
(2)如何获取最新的天气预报?
(3)如何获取最新的市场动态和价格行情?
(4)如何发表和回复微博?
(5)如何查看物流信息?
1.3系统设计的目标及基本思路
1.3.1设计目标
本客户端主要应用于iphone手机用户,根据这一实际应用背景,确定了系统设计的三个目标:
实用性、高效性和简洁性。
实用性,顾名思义,就是本系统不仅仅要用户界面好看,还要做到系统真的能给人们带来方便,系统的功能能够满足用户的需求,做到为用户服务。
高效性,如果一个系统功能很齐全,但是没有效率,用户与网站后台之间每一次沟通都要耗时很久,那么,也就没有开发本客户端的必要了。
开发本客户端,目的就在于节省客户的时间,能够及时的了解各种应用的信息。
简洁性,为什么要强调简洁性呢?
因为这个客户端是面向客户的也是面向大众的,如果功能操作过于频繁,或者要求的理解能力太强,那就没办法提高它的使用率,也就降低了它的生存空间,因此,考虑到群众文化水平的参差不齐,本客户端的相关功能都简单而且易操作。
1.3.2基本思路
模块划分:
(1)农信通包含四个模块:
农信通,农技110,我的资料,其他应用等。
农信通:
分为首页,我的主页,微博,博客,好友,通知,专题
站内搜索等八个模块。
(2)农技110:
服务站,专家库,天气预报,价格信息,农业技术,通知公告
(3)我的资料:
个人资料,个人动态,我的人脉
(4)其他应用:
联通应用,八百里物流
功能分析:
(1)当用户用手机访问时候应用时候农信通应用时,自动登录,登录帐号为用户手机号码,密码为手机号码后六位数(如果该手机号码没有注册,要求自动给手机号码注册,手机号码注册时候在农信通数据库里记录注册号码,用做判断该手机号码是否注册),老用户提供可选手动登录
(2)用户可以在线发表博客和回复微博,获取最新的市场动态,价格走势,自动获取和更新近三天的天气预报
(3)用户可以在线咨询农业技术方面的专家,进行农业技术方面的交流
(4)用户可以登录wap版联通应用,娱乐生活.还可以查看个人的物流详细信息,我的车辆,我的运货单,我的出货单,以及在线咨询等信息.
(5)方便快捷的农信通让农业人员可以足不出户,随时随地了解农业信息,获取最新的市场走势,达到产量的增收.
二、相关知识
2.1iOS的相关介绍
苹果iOS是由苹果公司开发的手持设备操作系统。
最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及AppleTV等苹果产品上。
iOS与苹果的MacOSX操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统[2]。
iOS的系统结构分为以下四个层次:
核心操作系统(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),Cocoa触摸框架层(theCocoaTouchlayer)。
2.2Xcode相关介绍
本系统主要在Xcode中开发完成,由Objective-C程序设计语言来实现。
是开发人员建立MacOSX应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径[7]。
它将MacOSX的轻松使用,UNIX能量以及高性能的开发技术集合在一起。
可以通过这个工具来完成如下工作:
(1)创建和管理工程,包括指定目标的需求、依赖性、和连编的风格。
(2)在具有语法染色、自动缩进等功能的编辑器上编写源代码。
(3)在工程的不同组件中进行漫游和检索,包括头文件和文档。
(4)连编工程。
(5)在图形化的源代码级调试器上调试工程。
Xcode可以连编由C、C++、Objective-C、Objective-C++、和Java编写的源代码组成的工程,可以生成MacOSX支持的所有类型的执行代码,包括命令行工具、框架、插件、内核扩展、程序包、和应用程序。
Xcode允许您对连编和调试工具、可执行文件的打包方式(包括信息属性列表和本地化程序包)、连编过程(包括拷贝文件、脚本文件处理、和其它连编阶段)、以及用户界面(包括分立和多视图的代码编辑器)进行几乎无限的定制;还支持几个源代码管理系统(其中有CVS和Perforce),使您可以将文件追加到代码库、提交修改、获取更新版本、以及进行版本的比较[8]。
2.3Objective-C相关介绍
Objective-C,是扩充C的面向对象编程语言。
它主要使用于MacOSX软件开发。
Objective-C不支持多重继承,Objective-C是动态定型(dynamicallytyped)所以它的类库比C++要容易操作。
Objective-C在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。
在C/C++你或许曾使用过NULL,而在Objective-C中则是nil。
不同之处是你可以传递讯息给nil(例如[nilmessage];),这是完全合法的,然而你却不能对NULL如法炮制[9]。
#importvs#include:
就如同你在helloworld范例中看到的,我们使用了#import。
#import由gcc编译器支援。
我并不建议使用#include,#import基本上跟.h档头尾的#ifndef#define#endif相同。
许多程式员们都同意,使用这些东西这是十分愚蠢的。
无论如何,使用#import就对了。
这样不但可以避免麻烦,而且万一有一天gcc把它拿掉了,将会有足够的Objective-C程式员可以坚持保留它或是将它放回来。
偷偷告诉你,Apple在它们官方的程式码中也使用了#import。
所以万一有一天这种事真的发生,不难预料Apple将会提供一个支援#import的gcc分支版本[10]。
2.4基本设计模式
iPhone应用程序使用的设计模式有很多种,下面我们对其进行一一介绍。
(1)MVC模式
模型—视图—控制器模式将代码分割为几个独立的部分。
模型部分定义应用程序的数据引擎,负责维护数据的完整性;视图部分定义应用程序的用户界面,对显示在用户界面上的数据出处则没有清楚的认识;控制器部分则充当模型和视图的桥梁,帮助实现数据和显示的更新。
(2)委托
委托模式可以对复杂对象进行修改而不需要子类化。
与子类化不同的是,你可以照常使用复杂对象,而将对其行为进行修改的定制代码放到另一个对象中,这个对象就称为委托对象。
复杂对象需要在预先定义高的时点上调用委托对象的方法,使其有机会运行定制代码。
(3)目标—动作
控件通过目标—动作模式将用户的交互通知给应用程序。
当用户以预先定制好的方式进行交互时,控件就会将消息发送给指定的对象。
接受到动作消息后,目标对象就会以恰当的方式进行响应。
(4)委托内存模型
Objective-C使用引用计数模式来确定什么时候应该释放内存中的对象。
当一个对象刚刚被创建时,它的引用计数是1,然后其他对象可以通过改对象的retain、release或autorelease方法增加或减少引用计数。
当对象的引用计数变为0时,Objective-C运行环境会调用对象的清理例程,然后解除分配改对象。
2.5Xib文件
xib文件是一种数据文件,用于存储可在应用程序中需要时使用的一些“冻结”的对象。
大多数情况下,应用程序使用xib文件来存储构成用户界面的窗口和视图。
当你将xib文件载入应用程序时,xib装载代码会将文件中的内容转化为应用程序可以操作的真正对象。
哦能够过这个机制,xib文件省去了用代码创建那些对象的工作。
InterfaceBuilder是一个可视化的设计环境,你可以用它来创建xib文件。
你可以将标准对象(比如UIKit框架中提供的窗口和视图)和Xcode工程中的定制对象放到xib文件中。
在InterfaceBuilder中创建视图层次相当简单,只需要对视图对象进行简单拖拽就可以了。
你也可以通过查看器窗口来配置每个对象的属性,以及通过创建对象间的连接来定义它们在运行时的关系。
你所做的改变最终都会作为xib文件的一部分存储到磁盘上。
在运行时,当你需要xib文件中包含的对象时,就将xib文件载入到程序中。
典型情况下,装载xib文件的时机是当用户界面发生变化和需要在屏幕上显示某些新视图的时候。
如果你的应用程序使用视图控制器,则视图控制器会自动处理xib文件的装载过程。
三客户端UI的设计与实现
3.1应用的整体概述
本应用是基于用户需求,应用objective-C程序设计语言开发,供iOS手持设备使用的软件。
从总体上讲,应用主要分为四大功能模块:
农信通,农技110,我的资料,其他应用.用户可以根据手机号自动注册和登录农信通和八百里物流,也可以通过用户名,密码,邮箱来注册一个新用户,让用户获取最新的市场动态,天气状况,物流情况,在线交流等.
3.2应用的详细设计
3.2.1用户需求设计
作为一名农业人员,及时获取最新的时政要闻,市场动态,天气状况,专家动态,物流查询等都是非常重要的,下面是几点功能需求:
(1)登陆注册
(2)电子农务
(3)微博和博客
(4)农技110
(5)联通应用
(6)八百里物流
针对这些主要需求,我们进行了以下设计:
(1)登录注册
用户可以根据手机号自动生成一个账号和密码,自动登录,登录成功后直接跳转到主界面,登陆到农信通页面,若失败,则直接跳转到八百里物流页面,如图1-1登录页面。
也可以通过用户名,密码,邮箱自己注册一个账户,提交给服务器,如图1-2注册页面。
图1-1登录页面图1-2注册页面
(2)电子农务:
导航栏电子农务包括首页、主页、微博、博客、好友、站内搜索、通知、专题等八个子模块。
如图1-3电子农务主菜单所示:
例如:
首页:
主要从服务器获取新闻资讯,焦点、热点、观点、评论,政策、财经、企业、市场,科技、教育、文化、百科,网友写新闻,首页子菜单如图1-4所示,首页详细信息页面如图1-5所示。
而主页主要显示个人动态,个人资料,用户信息等,如图1-6所示。
图1-3电子农务主菜单图1-4首页子菜单
图1-5首页详细信息图1-6我的主页
(3)微博和博客:
用户可以在线获取微博列表信息,还可以发布和回复微博,实现在线互动,如图1-7我的微博。
我的博客,显示所有的博客信息,包括我的和好友,以及评论过的博客信息,还可以发表博客,并获取博客详细信息,查看最新的动态。
图1-7我的微博图1-8我的博客
(4)农技110
农技110分为服务站,专家库,天气预报,价格信息,农业技术,通知公告等六个子模块,如图1-9农技110子菜单。
例如农业技术,用户可以获取林业,农业,水产业,畜牧业,种植业等不同产业的分类列表,如图1-10农业技术列表,以及分类列表下技术信息如图1-11水产业列表信息,和列表下的详细信息,如图1-12,让农业人员更加准确和细致的去了解农业动态。
通知公告页面如图1-13所示,通过webview读取wap版的页面,让用户一目了然的获取通知公告详细信息。
图1-9农技110主菜单图1-10农业技术列表
图1-11水产业列表信息图1-12博客详细详细信息
图1-13通知公告页面
(5)联通应用:
导航栏中的其他应用包括八百里物流和联通应用如图1-14所示.联通应用更倾向于联通用户,用户可以登录和注册联通网上营业厅,获取最新的娱乐信息,旅行出游,网上购物,酒店预订,美食天下等等,如图1-15所示。
图1-14其他应用主菜单图1-15联通应用
(6)八百里物流
用户可以获取订单查询,运价查询,车源查询,我的车辆,我的运货单,我的出货单,在线咨询等七个模块,如图1-16所示。
订单查询:
用户可以输入订单号查询订单详情
运价查询:
用户先要获取起始城市的列表和到达城市列表,可以搜索到运价详细信息,如图1-17所示。
详细信息如:
运费,里程,车型等。
车源查询:
车辆详细信息,type,long,width,height等车辆信息。
我的运货单:
运货单详细信息,如地址,运费,保险费,老板,货源等
我的出货单:
出货单详细信息,如地址,运费,保单,保费,车牌号,货物类型,发货人,收货人等
在线咨询:
可以在线交流和咨询专家,如图1-18所示:
图1-16八百里物流主菜单图1-17运价查询
图-18在线咨询
四、真机调试
4.1测试过程
4.1.1测试方法
通过iphone/ipad的设备号,下载证书,依托这个证书获取ipa包,同步到设备上面,便可以测试真正的界面效果。
4.1.2测试要点
根据需求,需要测试的重点有以下几项:
(1)能否自动注册和登录
(2)能否发布和回复微博信息,并发表博客信息,并且能够在线显示
(3)天气预报的准确信息
(4)八百里物流的物流信息
根据这些要点,进行一一测试。
4.2测试结果
(1)用户在登录和注册的过程中,如果用户名和密码为空或错误,会弹出提示框,提示登录失败;若手机号自动注册成功,则登录到农信通和八百里物流界面,若失败则直接进入八百里物流注册;用户修改密码是否成功,会有一个提示框,提示用户的操作。
(2)发布和回复微博信息,通过wap平台显示和真机测试,发送信息后,看返回页面是否能够显示新发的信息内容,列表是否刷新等
(3)天气预报会显示近三天的天气状况,包括温度,天气阴晴,光照,穿衣指数,紫外线指数,旅行出游指数等,参照wap版和真机可以对比不同地区的天气情况。
(4)八百里物流主要查询物流的详细信息,通过真机测试可以一目了然的看到,物流的具体信息,例如:
startcity,startProvince,endcity,endProvince,sendman,receiveman等具体信息,参照wap版
4.3系统的维护
为了保证系统能够完美的运行,在同事的帮助下,进行多方面多人员测试,检查系统是否存在隐藏性错误。
并且会不定期使用本系统,对系统进行纠错性维护。
现在,iOS手持设备的系统版本会随着社会的发展不断提高,我们的系统也会根据需要对系统进行升级,提高系统的性能和运行效率,另外,也要根据应用环境的变化,也要适当的调整其机构、管理体制和数据等需求。
在系统使用过程中,根据用户的体验感受和提出的要求,对系统进行完善性维护,比如,根据需要增加一些功能,整合一些功能等。
我们还要对那些还有较长使用寿命,目前尚能正常运行,但可能将要发生变化或调整的系统进行维护。
五技术要点总结
5.1应用的主要技术
5.1.1有关文件的存储
#import"SFFileManager.h"
@implementationSFFileManager
//Document文件地址
+(NSString*)pathForDocument:
(NSString*)fileName{
NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*documentsDirectory=[pathsobjectAtIndex:
0];
NSString*filePath=[documentsDirectorystringByAppendingPathComponent:
fileName];
returnfilePath;
}
//判断文件是否存在
+(BOOL)fileExistsAtDocument:
(NSString*)fileName{
return[[NSFileManagerdefaultManager]fileExistsAtPath:
[SFFileManagerpathForDocument:
fileName]];
}
//读取和存储文件方法存取Data
+(NSData*)loadDataFromFile:
(NSString*)fileName{
NSString*path=[SFFileManagerpathForDocument:
fileName];
if([[NSFileManagerdefaultManager]fileExistsAtPath:
path]==NO)
returnnil;
NSData*data=[NSDatadataWithContentsOfFile:
path];
returndata;
}
+(void)saveDataToFile:
(NSData*)datafile:
(NSString*)fileName{
if(!
data||!
fileName)
return;
NSString*path=[SFFileManagerpathForDocument:
fileName];
[datawriteToFile:
pathatomically:
YES];
}
5.1.2登录注册访问的时间和返回信息
+(SFNode*)sendMessageWithMethod:
(NSString*)method
message:
(NSDictionary*)message
{
NSString*soapMessage=[SOAPXMLsoapXMLWithMethod:
methodcontent:
message];
SFSoapClient*aSoapClient=[[SFSoapClientalloc]initWithServerURL:
[NSURLURLWithString:
[NSStringstringWithFormat:
@"%@/%@",kServerURL,method]]];
NSMutableData*data=[NSMutableDatadataWithData:
[aSoapClientsendMessageAndWaitForReply:
soapMessagetimeOut:
80]];
[aSoapClientrelease];
NSString*theXML=[[NSStringalloc]initWithBytes:
[datamutableBytes]length:
[datalength]encodi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 农信通 iphone 应用 开发 毕业设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)