版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕 业 论 文(设计)课 题 基于IOS平台好生活APP的设计与开发 学生姓名 院 部 电气工程学院 专业班级 指导教师 二 一 六年 六 月目 录摘 要IAbstractII第1章 绪论- 1 -1.1选题背景- 1 -1.2研究的意义- 1 -第2章 总体开发环境- 2 -2.1 开发环境与开发工具- 2 -2.1.2 Xcode开发工具- 2 -2.2内存管理- 3 -第3章 IOS技术与app功能框架- 4 -3.1不同版本iphone适配分析- 4 -3.2 MVC设计模式- 5 -3.3 好生活的功能框架- 6 -3.3.1 引导页- 6 -3.3.2 登陆界面- 6 -3.3.
2、3 首页- 7 -3.3.4 个人界面- 7 -3.3.5 设置界面- 7 -第4章 好生活客户端设计与实现- 8 -4.1 项目概述- 8 -4.2 好生活详细设计- 8 -4.2.1 引导页界面- 8 -4.2.2 登陆页面- 9 -4.2.3 首页- 11 -4.2.4 福利页面- 13 -4.2.5 个人和设置- 14 -第5章 测试- 15 -5.1 真机调试的前提- 15 -5.2 调试过程- 15 -第6章 结论- 17 -参考文献- 18 -致谢信- 19 -基于iOS系统的好生活手机APP设计摘 要随着智能手机的不断更新和发展,逐渐替代了传统的手机,而人们对智能手机的应用的需
3、求也越来越广泛,已经不在是以前打电话、发短信的简单要求,手机游戏、手机导航、手机购物等应用已经非常流行了。同时,伴随着iPhone进入中国市场,Objective-C和Swift逐渐成为开发者最常用的语言,本设计利用苹果提供的语言进行苹果手机Application的开发,该软件是公司向员工发放福利,利用福利点数进行购物的一款app,它具有界面美观,操作简单,实用性广的优点。本论文设计的实现,关键的开发程序是用MVC设计模式、代理模式以及单利模式的设计。对于此设计中各个界面的设计和布局,是解析相应的网络请求数据并用不同的控件展示的,而面对不同版本的iPhone,可以利用代码或者官方提供的Auto
4、layout设置约束和Sizeclass设置屏幕尺寸等对其进行适配。本设计利用自定义可以左右滑动的tabbar,将不同页面放置到tabbar上面,实现系统不能左右滑动的效果,不同页面的展示通过自定义的单元格显示在UITableView上。本设计中的网络请求都遵循Http协议,网络请求的实现是利用第三方的类库AFNetworking,通过创建AFNetworking中类的对象,向服务器发送异步请求,请求解析得到的数据,将数据展示在页面上。本文设计的app应用非常广泛,给人们的日常生活带来了便利,通过对本设计的开发,实现了许多app共有的功能,加深对项目开发的理解和认识。关键字:iOS ;Obje
5、ctive-C ;好生活App;iphoneI 基于iOS系统的好生活手机APP设计Good life based on iOS mobile APP designAbstract along with the continuous renewal of smart phones and the development, gradually replaced the old mobile phone, and people's demand for the application of smart phones is becoming more and more widely, is
6、no longer simple requirements before making phone calls, text messaging, mobile games, mobile phones navigation, shopping and so on applications has been very popular. At the same time, along with the iPhone to enter the Chinese market, Objective - C and Swift gradually become one of the most common
7、 language of developers, this design language from apple for the apple mobile phone Application development, the software is to give benefits to employees, the company the use of welfare points for shopping app, it has beautiful interface, easy operation, the advantages of wide practicability. This
8、paper design the implementation of the key development program is to use the MVC design pattern, the pattern design of the proxy pattern and simple interest. For the design of the interface design and layout, to parse the corresponding network request data using different controls display, with a di
9、fferent version of the iPhone, can use the code or official Autolayout set constraints and Sizeclass Settings screen size to fit. This design USES the custom can slide around tabbar, place different pages to tabbar, implement system cannot control the effect of the sliding, different pages shows thr
10、ough custom cell display on the UITableView. Network requests are followed in the design of the Http protocol, the realization of the network request is to use third-party libraries AFNetworking, by creating a class of object in AFNetworking, send an asynchronous request to the server, the request p
11、arse the data, the data display on the page. This paper designed an app is very broad, brings convenience to People's Daily life, through the development of this design, to realize the function, common to most app to deepen the understanding of project development and know.keyword:iOS ;Objective
12、-C;GoodLife App;iphone- 1 -铜陵学院毕业论文(设计)第1章 绪论1.1选题背景随着社会的发展,时代的进步,智能手机为人们的生活带来了许多的便利之处,而传统的键盘式手机逐渐被智能手机所取代,智能手机像个人电脑一样,它拥有的操作系统是单独的,拥有的运行空间同样是单独的,因为它可以自定义的安装第三方软件,所以智能手机相对与老式手机来说有着强大的扩展功能,用户可以自行的安装或卸载其需要的app。随着智能手机越来越广泛的使用,用户越发依赖手机软件,而网络购物也越来越流行,因此像购物类的这种app 的市场需求和发展前景也越来越焕发。好生活app充分利用市场的需求,将手机app和网
13、络购物合为一体,让人们更加方便的利用手机进行购物,手机购物也成为了人们主要购买商品的途径之一,有了好生活这款app就不需要去实体店铺,也不用坐在电脑前,一部手机就能完成在电脑上想要完成的操作,中国的未来的手机购物将有一个快速的发展期,用户可以通过手机查询商品信息并在线支付购买商品。相关的数据调查说明了,大约46.00%的手机玩家以前有过用手机进行购物,21.50%的手机玩家声明想要尝试在手机上进行购买商品,此调查显示手机购物在我国拥有十分广阔的前景。随着苹果手机在中国的日益发展,iOS一系列的技术也越来越被开发者应用,所以编写iOS操作系统应用程序和Mac OS X操作系统应用程序的Objec
14、tive-C语言也被开发者熟知及应用。OC语言是C语言的一个超集,在C语言的基础上加了面向对象的特性,OC与Java语言相同,都是单继承,这一点与C+语言不同,OC不支持命名空间机制,取而代之的是在类名之前添加前缀,以此来区分,Objective-C是动态定型,所以它的类库比C+要容易操作,OC语言在运行的时侯能够允许通过字符串名字来对方法和类进行交互,并且能够动态连接和添加类,这就是OC 语言的多态特性。综上所述,Objective-C有着非常巨大的空间进行发展。iOS里面只支持MAC和ARC的开发,ARC是Automatic Reference Counting的简称,我们也可叫它自动引用
15、计数,是在iOS5.0之后推出的内存管理的新特性。本质上还是使用引用计数来管理对象,只是程序在编译时,会在合适的地方添加release或者autorelease,不需要手动向对象发送release或者autorelease方法,ARC比GC性能好。1.2研究的意义手机购物在当今社会已是非常普遍了,大多数人都已了解并熟练的利用手机在网上进行购物了,此款app是利用公司给员工发放的点数进行购买商品的,和Q币的功能类似,用户可以利用点数换取其想要获得的商品或其他种类的消费。本人从去年开始接触OC语言,在经过一段时间的学习后,对iOS的开发有一定的了解和认识,此项目便是在公司实习期间所接触到的,项目具
16、有一定的复杂性,用到了不同的设计模式和第三方的类库,通过对项目的开发,巩固了自己iOS水平和独立解决问题的能力。第2章 总体开发环境2.1 开发环境与开发工具2.1.1 Objective-C 语言概述Objective-C是对C语言的扩充,而且在此基础上增加了面向对象,它是由Brad Cox在1980年代初发明的,大部分是用在与Mac OS X和GNUstep这两个使用OpenStep标准的系统,不过在NeXTSTEP和OpenStep中它是更基本的语言,Objective-C不仅可以在上述的系统中使用,而且能够在其它的系统上进行编写和编译,例如:GCC、Clang等。目前,Objectiv
17、e-C的主要用途则是编写iOS操作系统应用程序和Mac OS X操作系统应用程序,所以说它是一种实用的开发语言。Objective-C具有单继承的语言特点,不能进行多重继承,cocoa中NSObject是所有类的父类,多重继承虽然不能在此实现,不过可以用protocl委托代理来进行实现,面向对象语言大部分都是单继承的,如java等。OC语言在C的基础之上多了其自己的特性,即封装、多态、继承,OC语言不支持命名空间机制,不过它要在类名之前添加上前缀,来区分不同的类之间的不同,不支持运算符重载,而它支持C语言、OC与C+可以混编。和其他的所有面向对象语言类似,Objective-C也是用类来封装数
18、据,对数据进行一系列的操作,对象就是类的实例化,它包含了类声明的实例变量将自己的内存地址复制,以及类成员的指针,NSObject是顶级父类,即所有的类都是NSObject的字类。 OC中的类可以声明两种类型的方法,即加号方法(类方法)和减号方法(实例方法),加号方法是由类进行调用的,而减号方法不同,必须创建类的对象,由对象调用减号方法,这两种类型的方法都可携带参数和返回值,方法的声明格式是:或(返回值类型)方法名:(参数类型)参数名。如果方法中无参数,可以省略方法名后的冒号。2.1.2 Xcode开发工具Xcode是一款用来编程的软件,是由苹果公司独立开发的,它向开发人员提供了需要开发所涉及的
19、环境,它提供了项目管理、代码编辑、编译可执行文件、源代码调试、代码库管理和性能优化等的工具,Xcode不是唯一使用的开发工具,目前开发所用到的是Xcode6.3版本。首先要关注的是Xcode应用程序,它提供了开发iPhone应用项目的全部代码的建立和使用、编译代码为可执行文件、运行调试OC或者swift代码,还包括在iPhone模拟器上运行或者是直接在设备上运行等。开发者可以在Xcode中创建新项目,开始新的iPhone应用程序。一个项目控制着应用程序全部的信息,包含源代码、编译设置和把所有文件整合到一起的编译规则。Xcode项目的中心思想就是是项目的各个不同的窗口,开发者可以通过该窗口迅速的
20、找到应用程序的全部有用的元素。组和文件列表管理项目文件,包含了源代码文件和编译结束的目标文件。工具栏提供了常用的工具和命令,详细资料面板用来设置项目的工作区域,项目窗口的其他部分可以提供更多的项目信息。Xcode中有一些常用快捷键,方便开发者对程序进行操作,如commandr:程序运行 commandb:程序编译 commandc:复制commandv:粘贴 command方向键:光标快速移动 commandshiftk:清理等。 2.1.3 开发环境(1)开发环境Mac OS X Version 10.9.2(2)运行环境iPhone模拟器或者真机调试2.2内存管理 从iOS5.0之后,苹果
21、官方推出了ARC技术,即是内存管理的新特性,ARC是Automatic Reference Counting的简称,自动引用计数,在此之前,苹果一直用的是MRC管理内存,即手动管理引用计数,遵循“谁创建,谁释放,谁引用,谁管理”的规则,当创建对象时,我们会调用alloc或new方法,或者向对象发送copy,retian消息时,会使对象的引用计数加一,我们就有义务向它发送release或者autorelease消息,使其引用计数减一,当对象的引用计数为零时,系统就会自动释放该对象。 ARC则不需要我们手动的向对象发送release或者autorelease消息,它是编译时特性,即程序在编译的时候
22、会在合适的地方为我们自动添加release或者autorelease,本质上还是用引用计数来管理内存,ARC使代码简洁,防止内存泄漏,提高零效率。第3章 IOS技术与app功能框架3.1不同版本iphone适配分析在实际开发的过程中,首先遇到的问题就是屏幕适配,可以说做好屏幕适配是开发的基础,提到适配,第一要了解的就是不同版本iphone的屏幕大小,如图3-1所示:图3-1 不同版本iphone的分辨率我们根据屏幕的不同及分辨率的不同对iphone进行适配。苹果官方非常重视适配问题,适配是开发程序的基本条件,官方推荐采用autolayout添加约束和sizeclass调节屏幕尺寸对屏幕进行适配
23、,即是抛弃以前的用坐标写死视图的位置和大小,只是对控件间的相对距离进行约束,让控件自动适配屏幕。下面用一个简单易懂的例子来说明autolayout的部分使用技巧和方法,等宽子视图的布局,所谓等宽子视图,说的简单了也就是对一个有多个子视图的父视图来说,不管父视图的宽度是如何的变化,所有子视图的宽度都是相等的,如图3-2所示:图3-2适配效果图分析一下这种情况的视图约束的规则,4个不同颜色的子视图具有相同的宽度,子视图之间的距离固定为10,最左边和最右边距屏幕边缘的距离为10,子视图的高度随着屏幕的比例进行变大或变小,接下来就是将图中的约束全部实现,其中最关键的约束是等宽约束,子试图之间的固定距离
24、的约束。对于所有的约束条件如图3-3所示;图3-3autolaryout约束条件在实际的开发过程中,会遇到各种各样的屏幕适配,这就需要我们对aotolayout非常了解,对约束条件非常清晰,autolayout的出现让苹果适配问题变得简单,不在需要纯代码适配,给发开者节省了时间,增加了效率,从图中可以看出各个约束的效果和不同。3.2 MVC设计模式MVC是一种架构设计,M表示数据模型(model),V表示视图(view),C表示控制器(controller)。数据模型:负责存储、定义、操作数据,例如,模型对象可能是表示展示视图中的一条数据,用户在视图层中所进行的创建或者修改数据的操作,通过控制
25、器对象传达出去。模型对象在改变的时侯,就会通知试图控制器的对象,控制器对象发送相应的消息来更新我们需要改变的试图对象。视图是用来展示数据给用户,和用户进行操作交互,视图通过显示的形式,把信息转达给用户。不同视图显示着不同的内容,表达了模型的数据变化和状态变化的消息。每个视图对象都会有一个更新的作用,它可被变化-传播机制所激活。当让试图对象更新时,视图获取到模型带来的数据值,并用这些数据来更新显示出来。控制器是M与V的协调者,控制器获取数据,将数据交给视图去展示。MVC的优点表现在以下几个方面:(1) 能够将一个模型在运行时一起创建和利用许多个不同的视图。变化-传播机制能够保证一切有关的视图很迅
26、速的得到模型数据变化,然后将全部关联的视图和控制器之间行为和数据同步。(2) 视图与控制器的可接插性,可以变换视图和控制器不同的对象,而且可以根据不同的要求多态的打开或关闭,有时候还可以在运行的中间进行对象替换更新。(3) 模型的可移植性。因为模型和试图是相对独立的,所以能够将一个模型单独地放到其它的平台进行工作。不过要做的是在新平台上对视图和控制器进行新的修改。3.3 好生活的功能框架3.3.1 引导页 引导页向用户展示了好生活公司的一些图片,让员工对好生活公司有更深的了解,让员工对此app一目了然,好生活是企业给员工的福利,让员工喜欢上此app。主要功能框架如图3-4所示:不同功能设置福利
27、展示滑动区信息详情页分类区我的设置首页登陆界面引导页图3-4功能框架3.3.2 登陆界面 通过点击引导页的最后一个图片进入到登陆界面,在此界面用户可以输入用户名和密码进行登陆,当密码忘记时可以点击找回密码进行找回操作,也可注册用户,本界面和QQ的登陆界面具有类似功能。3.3.3 首页 用户登陆成功,会跳到此界面,用户在此界面能看到一些展示的不同种类的商品,具体包括广告、分类、福利几个模块。广告主要是展示一些广告图片,减价商品,最新商品等,可以自动滑动,用户也可手动滑动,通过点击不同的图片可以跳转到下一个界面,下一界面是对此图片的详细信息的描述。 在广告下面紧接着就是分类模块,在此模块中主要有八
28、种不同的分类,运动健身、文艺欣赏、健康体检、休假疗养、集中采购、业余培训、户外运动、生日慰问。通过点击不同的分类,找到用户需要的种类和商品,这种设计是非常具有人性化的,可以根据不同的用户展示不同的数据。 福利模块分为最新和最热两部分,但是不同的两部分都是以同一种格式显示的,向用户展示了商品图片,商品名称,商品价格和商品购买的数量,通过展示的部分,让用户胸有成竹,一目了然。3.3.4 个人界面 该页面是个人信息界面,在此页面中可以看到用户名、真实姓名、头像、我的订单、福利账单、用户地址、密码管理等功能。 通过点击个人信息可以设置头像,头像可以根据相册选择,也可拍照上传,我的订单就是历史订单,可以
29、看到以前购买商品的历史,密码管理能够实现更改密码的功能,跟平常所见到的更改密码功能一致,意见反馈就是提交自己的意见,给公司提供建议的功能。最新消息可以查看消息,点击这个按钮是通过加载网页的形势展示数据的 。3.3.5 设置界面 设置界面相对其他的界面就显得比较简单了,该界面可以检查更新,退出登陆以及设置在2G/3G/4G下能否显示图片的功能,点击此按钮,可以控制是否加载图片,该功能是对于用流量的用户量身定做的,通过此按钮的开关,控制流量的多少,非常人性化的设计。退出登陆按钮就是退出登陆,回到登陆界面,通这个按钮可以切换不同的用户。第4章 好生活客户端设计与实现4.1 项目概述项目名称:好生活a
30、pp项目需求:通过手机客户端实现网上在线购物的功能,可以在手机上进行物品的选择、浏览、支付等操作。项目优化:加强用户体验,不同屏幕手机进行适配,使外观整体,减少资源的消耗,防止内存泄漏,加强内存的管理,滚动视图滚动显示更加流畅、清晰、自然。4.2 好生活详细设计4.2.1 引导页界面 引导页是放置不同的图片到UISsrollView上面,滑动到最后一张图片,通过touch事件处理,跳转到登陆页面,其中主要代码为:_scrollView=UIScrollView allocinitWithFrame:UIScreen mainScreen.bounds; for (int i=0; i<4
31、; i+) LaunchImageView *imageView=LaunchImageView allocinitWithFrame:CGRectMake(VIEWWIDTH*i, 0, VIEWWIDTH, VIEWHEIGHT); imageView.image=UIImage imageNamed:NSString stringWithFormat:"1-%d.jpg",i+1; imageView.tag=i+1; imageView.delegate=self; _scrollView addSubview:imageView _scrollView.conte
32、ntSize = CGSizeMake(VIEWWIDTH*4, 0); _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.pagingEnabled = YES; _scrollView.bounces = NO;self.view addSubview:_scrollView;引导页图如图4-1所示:图4-1 引导页图4.2.2 登陆页面 该界面的登陆图如图4-2所示,登陆页面则是由最基本的一些控件组成的,其中分别有UITextField,UIButton,UILabel等控件,通过获取UITextField上的用户名
33、和密码,在UIButton的点击事件里面进行一系列的判断和发送网络请求,通过AFNetworking这个第三方的库,向服务器发送请求,并得到服务器返回的数据,将数据进行解析,判断是否登陆成功。如果登录成功就会跳转到下一个界面,反之,会弹出一个警告框告诉用户登录失败的原因。此界面是很容易实现的,复杂的部分主要是对返回数据的解析和判断,下面是对登陆判断的主要代码: self.view endEditing:YES; NSString *nameString=_tfUserName.text stringByReplacingOccurrencesOfString:" " wit
34、hString:"" NSString *pwdString=_tfUserPwd.text stringByReplacingOccurrencesOfString:" " withString:"" if (nameString=nil|nameString.length<6|pwdString=nil|pwdString.length=0) NSLog("请填写正确的用户名或密码"); else sender setTitle:"登录中." forState:UIControlSta
35、teNormal; HttpEngine shareHttpEngineloginWithName:_tfUserName.text password:_tfUserPwd.text extMsg:nil complete:(id json, NSString *jsession) if (jsession) /有cookies,登录成功 NSLog("=%",json); sender setTitle:"登录" forState:UIControlStateNormal; self goToTabBarController; else /登录失败 N
36、SLog("%",json); sender setTitle:"登录" forState:UIControlStateNormal; ; 图4-2 登陆图4.2.3 首页 登陆成功后,会跳转到首页,首页及其他的几个界面都是放到UITabBarController上 面的,UITabBarController是多视图控制器,可以在一个界面上展示不同的界面,由于设计的合理性和用户的良好体验,所需要的UITabBarController是可以左右滑动的,而系统给我们提供的远远不能达到要求,这时,就用到了自定义UITabBarController,我创建了一个
37、类继承于UIViewController,在此类中,添加一系列的属性和方法,其中大量用到了代理的设计模式,完成了可以左右滑动的自定义UITabBarController。下面两个方法是自定义的方法,需要实现:- (void)tabBar:(GLTabBar *)tabBar didSelectedButton:(NSUInteger)from to:(NSUInteger)to;- (void)addTabBarWithIcon:(NSString *)icon selIcon:(NSString *)selIcon labelText:(NSString *)labelText 当然,在实际
38、的生活中,我们需要隐藏TabBar为了达到美观的效果,此时因为自定义UITabBarController,所以系统给我们提供的隐藏TabBar方法已经不能用了,就需要自己手写方法来进行隐藏,下面是关于隐藏TabBar的方法:-(void)settingTabBarWhenPushed; /隐藏tabbar且设置scrollview可滑动性 if (!_hideTabBar) _tabBarView.hidden=YES; _mainView.frame=CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); _mainView.scrollEnabled=
39、NO; _hideTabBar=YES; return; /显示tabbar且设置scrollview可滑动性 if (_hideTabBar) _tabBarView.hidden=NO; _mainView.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - TAB_TAB_HEIGHT); _mainView.scrollEnabled=YES; _hideTabBar=NO; 此页面整体是一个UITableView,通过自定义单元格的方式在该页面中展示不同的效果,最上面的单元格上放的是UIScrollView,通过网络请求,得到
40、不同的图片放置到UIScrollView上,通过开启定时器,让该控件自动滑动来改变所展示的图片,这里就要用到UIScrollView的一个属性contentoffert偏移量,由偏移量来决定展示的是哪一张图片。 中间是在自定义的单元格上放置8个大小相同的button,这里的核心就是autolayout的适配,通过此方法让8个button间距相同,大小随屏幕适配。点击不同的按钮会跳转到下一个界面,由于该界面用到的非常多,样式相同,只不过改变展示的内容,所以对此页面进行封装,通过传递参数的不同,来改变该界面显示的数据。点击该界面同样会跳转到另外一个新界面,同理,由于新界面也是用到很多次,所以也对此
41、进行封装,新界面要实现的跟淘宝详情非常相似,可以上拉刷新数据,下面的数据是用HTML5的方法来展示的。 最下面就相对简单一点了,跟福利界面大致相似,可通过重用福利的页面来实现,如图4-3所示:图4-3首页展示4.2.4 福利页面 福利主要是向服务器发送数据,解析数据并展示数据,其中是将数据在UITableView上显示,这时由于展示数据的美观和要求,就需要自定义单元格,不同的数据显示在不同的单元格上面,UITableView具有重用单元格的特性,如果屏幕上能显示10个单元格,则UITableView只会创建11个单元格,也就是n+1个,当滑动到第12个单元格时就会复用第一个单元格对象。UITa
42、bleView中有个单元格池这么一个概念,UITableView调用协议方法获取单元格时,先从池子中查找是否有可复用的单元格,如果有则复用,如果没有则创建一个单元格对象。下面时UITableView的一些协议方法,必须实现,如果不实现,程序就会Crash:#pragma mark-UITableView协议方法-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section return self.dataArray.count;-(UITableViewCell *)tableVie
43、w:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath WelfareDataCell *cell=tableView dequeueReusableCellWithIdentifier:"welfareDataCell" if (!cell) cell=NSBundle mainBundleloadNibNamed:"WelfareDataCell" owner:nil options:nilfirstObject; GLWelfare *welfare=sel
44、f.dataArrayindexPath.row; Label.text=; cell.headerImage sd_setImageWithURL:NSURL URLWithString:welfare.index_img; cell.priceLabel.text=NSString stringWithFormat:"%",welfare.price; cell.numberLabel.text=NSString stringWithFormat:"累计订购:%",welfare.order_num; ret
45、urn cell;4.2.5 个人和设置 个人和设置也是通过UITableView实现的,在不同的行数显示不同的内容,同样用到UITableView的重用机制,设置界面里面用到的是KVO,KVO是键值观察,是一种能使得对象获取到其他对象属性变化的通知机制,用于1对多情况下通信,且通信对象之间不需要建立关系。第5章 测试 在模拟器中可以测试应用程序的基本操作,但如果要上传到AppStore,还是需要在连接到Mac电脑上的真机上进行测试的。由于真机提供的测试环境就是用户手中的设备,所以应用程序在真机中的表现,如果设备和版本号一致的话,两者应该是一致的。所以说真机调试是必须的。因为iOS simul
46、ator只是模拟器,并不能完美模拟真实的情况。理想情况下,应该在所有要支持的设备和iOS版本上,进行应用程序的测试。一个应用或多或少都有些bug,一个应用程序要想没有bug,必须经过测试和修改。在测试过程中,需要多方面,多角度的进行测试,力求解决所有的bug,为用户增加更舒适的体验。5.1 真机调试的前提要在真机上进行测试,首先要加入iOS Developer Program,这样就可以使用Xcode在设备上调试了。必须从apple获得开发证书,才能在设备上运行应用程序。证书作为签名之用,而应用程序必须经过加密签名,才能在设备上运行。可通过Xcode管理器窗口获得此证书。因为苹果官方对安全性的
47、重视,所以真机调试相对于模拟器调试来说是非常麻烦的,首先需要钥匙串访问,选择证书助理,点击为其他人创建证书,根据提示继续操作,会在桌面上生成CertificateSigningRequest.certSigningRequest公钥文件,然后到证书配置页面添加证书,选择刚刚在桌面上钥匙串申请的certSigningRequest,点击继续。将配置好的证书下载安装,下面要选择需要调试的iphone设备,将设备名和id按要求输入,然后创建appid。配置概要文件,是应用在设备上编译时使用的,在此有两个选项,分别是发布用和调试用,我们再次选择all,然后点击下载配置概要文件到本地即可,下载完成后有2
48、个文件双击并安装,接下来,我们需要将配置概要文件导入到XCode中,双击下载的配置概要文件就可以将文件导入XCode,然后可以通过XCode的菜单Window->Organizer管理。完成了需要真机调试的前提条件,我们就可以在真机上进行调试了,真机调试具有许多模拟器不能完成的功能,例如定位、打电话、发信息、拍照等,当我们需要调试这些功能时就必须要用到真机,这就是模拟器的局限性。为了产品能够顺利上架,通过AppStore的检测,就必须要进行真机调试,真机调试能够更方便,更顺利的找到问题,为我们解决问题提供参照。 5.2 调试过程 在对此app开发完成时,并不意味着真正的结束,还需要对此a
49、pp进行多次不同的测试,首先,要根据不同情况具体对待,对引导页来说,因为引导页是不同的图片放到scrollview上的,所以要多次多方向的滑动该页面,并保持速度的变化,看程序是否crash。 登陆界面的测试工作是非常重要的,在登陆界面很容易出现bug,可能因为代码的判断不准确导致登陆的异常,所以要进行空白输入测试,错误用户名测试,错误密码测试,以及在有无网络的情况下进行测试等,这些都是测试的重点,而且在网路请求的时候对屏幕进行点击,测试有无bug的出现。如图5-1 测试图所示,根据条件的不同弹出的警告框会出现不同的字符串。 首页、我的页面及设置页面的测试跟引导页相似,也需要多次滑动和点击页面,观察程序是否会crash,因为数据请求的时候会用到MBProgressHUD,所以要对试图进行测试,判断是否将MBProgressHUD结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理部工作计划汇编
- 小学一年级下学期工作计划
- 区2025年度计划生育工作计划2
- 分厂第十六个百日安全无事故活动计划
- 《外科常见急腹症》课件
- 《水暖理论知识培训》课件
- 《氨基酸之亮氨酸》课件
- 合同 第三方费用 报销条款
- 铁路培训合同
- 2025年阿克苏货运从业资格证模拟考试题目
- 宜昌市建设工程文件归档内容及排列顺序
- 项目全周期现金流管理培训
- 生物化学实验智慧树知到答案章节测试2023年浙江大学
- 少儿美术教案课件-《美丽的枫叶》
- 中国传统文化剪纸PPT模板
- 高中家长给孩子寄语
- 药物警戒体系主文件(根据指南撰写)
- 2022重症医学科优质护理工作计划
- 系列压路机xmr30s40s操作保养手册
- 广州教科版六年级英语上册M1-6复习练习题(含答案)
- GB/T 24159-2022焊接绝热气瓶
评论
0/150
提交评论