基于iOS系统的好生活手机APP设计.docx

上传人:b****4 文档编号:4679045 上传时间:2022-12-07 格式:DOCX 页数:19 大小:424.68KB
下载 相关 举报
基于iOS系统的好生活手机APP设计.docx_第1页
第1页 / 共19页
基于iOS系统的好生活手机APP设计.docx_第2页
第2页 / 共19页
基于iOS系统的好生活手机APP设计.docx_第3页
第3页 / 共19页
基于iOS系统的好生活手机APP设计.docx_第4页
第4页 / 共19页
基于iOS系统的好生活手机APP设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

基于iOS系统的好生活手机APP设计.docx

《基于iOS系统的好生活手机APP设计.docx》由会员分享,可在线阅读,更多相关《基于iOS系统的好生活手机APP设计.docx(19页珍藏版)》请在冰豆网上搜索。

基于iOS系统的好生活手机APP设计.docx

基于iOS系统的好生活手机APP设计

 

毕业论文(设计)

 

课题基于IOS平台好生活APP的设计与开发

学生姓名

院部电气工程学院

专业班级

指导教师

二○一六年六月

3.2MVC设计模式-5-

基于iOS系统的好生活手机APP设计

摘要

随着智能手机的不断更新和发展,逐渐替代了传统的手机,而人们对智能手机的应用的需求也越来越广泛,已经不在是以前打电话、发短信的简单要求,手机游戏、手机导航、手机购物等应用已经非常流行了。

同时,伴随着iPhone进入中国市场,Objective-C和Swift逐渐成为开发者最常用的语言,本设计利用苹果提供的语言进行苹果手机Application的开发,该软件是公司向员工发放福利,利用福利点数进行购物的一款app,它具有界面美观,操作简单,实用性广的优点。

本论文设计的实现,关键的开发程序是用MVC设计模式、代理模式以及单利模式的设计。

对于此设计中各个界面的设计和布局,是解析相应的网络请求数据并用不同的控件展示的,而面对不同版本的iPhone,可以利用代码或者官方提供的Autolayout设置约束和Sizeclass设置屏幕尺寸等对其进行适配。

本设计利用自定义可以左右滑动的tabbar,将不同页面放置到tabbar上面,实现系统不能左右滑动的效果,不同页面的展示通过自定义的单元格显示在UITableView上。

本设计中的网络请求都遵循Http协议,网络请求的实现是利用第三方的类库AFNetworking,通过创建AFNetworking中类的对象,向服务器发送异步请求,请求解析得到的数据,将数据展示在页面上。

本文设计的app应用非常广泛,给人们的日常生活带来了便利,通过对本设计的开发,实现了许多app共有的功能,加深对项目开发的理解和认识。

关键字:

iOS;Objective-C;好生活App;iphone

 

GoodlifebasedoniOSmobileAPPdesign

Abstract

alongwiththecontinuousrenewalofsmartphonesandthedevelopment,graduallyreplacedtheoldmobilephone,andpeople'sdemandfortheapplicationofsmartphonesisbecomingmoreandmorewidely,isnolongersimplerequirementsbeforemakingphonecalls,textmessaging,mobilegames,mobilephonesnavigation,shoppingandsoonapplicationshasbeenverypopular.

Atthesametime,alongwiththeiPhonetoentertheChinesemarket,Objective-CandSwiftgraduallybecomeoneofthemostcommonlanguageofdevelopers,thisdesignlanguagefromapplefortheapplemobilephoneApplicationdevelopment,thesoftwareistogivebenefitstoemployees,thecompanytheuseofwelfarepointsforshoppingapp,ithasbeautifulinterface,easyoperation,theadvantagesofwidepracticability.ThispaperdesigntheimplementationofthekeydevelopmentprogramistousetheMVCdesignpattern,thepatterndesignoftheproxypatternandsimpleinterest.Forthedesignoftheinterfacedesignandlayout,toparsethecorrespondingnetworkrequestdatausingdifferentcontrolsdisplay,withadifferentversionoftheiPhone,canusethecodeorofficialAutolayoutsetconstraintsandSizeclassSettingsscreensizetofit.ThisdesignUSESthecustomcanslidearoundtabbar,placedifferentpagestotabbar,implementsystemcannotcontroltheeffectofthesliding,differentpagesshowsthroughcustomcelldisplayontheUITableView.NetworkrequestsarefollowedinthedesignoftheHttpprotocol,therealizationofthenetworkrequestistousethird-partylibrariesAFNetworking,bycreatingaclassofobjectinAFNetworking,sendanasynchronousrequesttotheserver,therequestparsethedata,thedatadisplayonthepage.

Thispaperdesignedanappisverybroad,bringsconveniencetoPeople'sDailylife,throughthedevelopmentofthisdesign,torealizethefunction,commontomostapptodeepentheunderstandingofprojectdevelopmentandknow.

keyword:

iOS;Objective-C;GoodLifeApp;iphone

 

第1章绪论

1.1选题背景

随着社会的发展,时代的进步,智能手机为人们的生活带来了许多的便利之处,而传统的键盘式手机逐渐被智能手机所取代,智能手机像个人电脑一样,它拥有的操作系统是单独的,拥有的运行空间同样是单独的,因为它可以自定义的安装第三方软件,所以智能手机相对与老式手机来说有着强大的扩展功能,用户可以自行的安装或卸载其需要的app。

随着智能手机越来越广泛的使用,用户越发依赖手机软件,而网络购物也越来越流行,因此像购物类的这种app的市场需求和发展前景也越来越焕发。

好生活app充分利用市场的需求,将手机app和网络购物合为一体,让人们更加方便的利用手机进行购物,手机购物也成为了人们主要购买商品的途径之一,有了好生活这款app就不需要去实体店铺,也不用坐在电脑前,一部手机就能完成在电脑上想要完成的操作,中国的未来的手机购物将有一个快速的发展期,用户可以通过手机查询商品信息并在线支付购买商品。

相关的数据调查说明了,大约46.00%的手机玩家以前有过用手机进行购物,21.50%的手机玩家声明想要尝试在手机上进行购买商品,此调查显示手机购物在我国拥有十分广阔的前景。

随着苹果手机在中国的日益发展,iOS一系列的技术也越来越被开发者应用,所以编写iOS操作系统应用程序和MacOSX操作系统应用程序的Objective-C语言也被开发者熟知及应用。

OC语言是C语言的一个超集,在C语言的基础上加了面向对象的特性,OC与Java语言相同,都是单继承,这一点与C++语言不同,OC不支持命名空间机制,取而代之的是在类名之前添加前缀,以此来区分,Objective-C是动态定型,所以它的类库比C++要容易操作,OC语言在运行的时侯能够允许通过字符串名字来对方法和类进行交互,并且能够动态连接和添加类,这就是OC语言的多态特性。

综上所述,Objective-C有着非常巨大的空间进行发展。

iOS里面只支持MAC和ARC的开发,ARC是AutomaticReferenceCounting的简称,我们也可叫它自动引用计数,是在iOS5.0之后推出的内存管理的新特性。

本质上还是使用引用计数来管理对象,只是程序在编译时,会在合适的地方添加release或者autorelease,不需要手动向对象发送release或者autorelease方法,ARC比GC性能好。

1.2研究的意义

手机购物在当今社会已是非常普遍了,大多数人都已了解并熟练的利用手机在网上进行购物了,此款app是利用公司给员工发放的点数进行购买商品的,和Q币的功能类似,用户可以利用点数换取其想要获得的商品或其他种类的消费。

本人从去年开始接触OC语言,在经过一段时间的学习后,对iOS的开发有一定的了解和认识,此项目便是在公司实习期间所接触到的,项目具有一定的复杂性,用到了不同的设计模式和第三方的类库,通过对项目的开发,巩固了自己iOS水平和独立解决问题的能力。

 

第2章总体开发环境

2.1开发环境与开发工具

2.1.1Objective-C语言概述

Objective-C是对C语言的扩充,而且在此基础上增加了面向对象,它是由BradCox在1980年代初发明的,大部分是用在与MacOSX和GNUstep这两个使用OpenStep标准的系统,不过在NeXTSTEP和OpenStep中它是更基本的语言,Objective-C不仅可以在上述的系统中使用,而且能够在其它的系统上进行编写和编译,例如:

GCC、Clang等。

目前,Objective-C的主要用途则是编写iOS操作系统应用程序和MacOSX操作系统应用程序,所以说它是一种实用的开发语言。

Objective-C具有单继承的语言特点,不能进行多重继承,cocoa中NSObject是所有类的父类,多重继承虽然不能在此实现,不过可以用protocl委托代理来进行实现,面向对象语言大部分都是单继承的,如java等。

OC语言在C的基础之上多了其自己的特性,即封装、多态、继承,OC语言不支持命名空间机制,不过它要在类名之前添加上前缀,来区分不同的类之间的不同,不支持运算符重载,而它支持C语言、OC与C++可以混编。

和其他的所有面向对象语言类似,Objective-C也是用类来封装数据,对数据进行一系列的操作,对象就是类的实例化,它包含了类声明的实例变量将自己的内存地址复制,以及类成员的指针,NSObject是顶级父类,即所有的类都是NSObject的字类。

OC中的类可以声明两种类型的方法,即加号方法(类方法)和减号方法(实例方法),加号方法是由类进行调用的,而减号方法不同,必须创建类的对象,由对象调用减号方法,这两种类型的方法都可携带参数和返回值,方法的声明格式是:

-或+(返回值类型)方法名:

(参数类型)参数名。

如果方法中无参数,可以省略方法名后的冒号。

2.1.2Xcode开发工具

Xcode是一款用来编程的软件,是由苹果公司独立开发的,它向开发人员提供了需要开发所涉及的环境,它提供了项目管理、代码编辑、编译可执行文件、源代码调试、代码库管理和性能优化等的工具,Xcode不是唯一使用的开发工具,目前开发所用到的是Xcode6.3版本。

首先要关注的是Xcode应用程序,它提供了开发iPhone应用项目的全部代码的建立和使用、编译代码为可执行文件、运行调试OC或者swift代码,还包括在iPhone模拟器上运行或者是直接在设备上运行等。

开发者可以在Xcode中创建新项目,开始新的iPhone应用程序。

一个项目控制着应用程序全部的信息,包含源代码、编译设置和把所有文件整合到一起的编译规则。

Xcode项目的中心思想就是是项目的各个不同的窗口,开发者可以通过该窗口迅速的找到应用程序的全部有用的元素。

组和文件列表管理项目文件,包含了源代码文件和编译结束的目标文件。

工具栏提供了常用的工具和命令,详细资料面板用来设置项目的工作区域,项目窗口的其他部分可以提供更多的项目信息。

Xcode中有一些常用快捷键,方便开发者对程序进行操作,如command+r:

程序运行command+b:

程序编译command+c:

复制command+v:

粘贴command+方向键:

光标快速移动command+shift+k:

清理等。

2.1.3开发环境

(1)开发环境

MacOSXVersion10.9.2

(2)运行环境

iPhone模拟器或者真机调试

2.2内存管理

从iOS5.0之后,苹果官方推出了ARC技术,即是内存管理的新特性,ARC是AutomaticReferenceCounting的简称,自动引用计数,在此之前,苹果一直用的是MRC管理内存,即手动管理引用计数,遵循“谁创建,谁释放,谁引用,谁管理”的规则,当创建对象时,我们会调用alloc或new方法,或者向对象发送copy,retian消息时,会使对象的引用计数加一,我们就有义务向它发送release或者autorelease消息,使其引用计数减一,当对象的引用计数为零时,系统就会自动释放该对象。

ARC则不需要我们手动的向对象发送release或者autorelease消息,它是编译时特性,即程序在编译的时候会在合适的地方为我们自动添加release或者autorelease,本质上还是用引用计数来管理内存,ARC使代码简洁,防止内存泄漏,提高零效率。

 

第3章IOS技术与app功能框架

3.1不同版本iphone适配分析

在实际开发的过程中,首先遇到的问题就是屏幕适配,可以说做好屏幕适配是开发的基础,提到适配,第一要了解的就是不同版本iphone的屏幕大小,如图3-1所示:

图3-1不同版本iphone的分辨率

我们根据屏幕的不同及分辨率的不同对iphone进行适配。

苹果官方非常重视适配问题,适配是开发程序的基本条件,官方推荐采用autolayout添加约束和sizeclass调节屏幕尺寸对屏幕进行适配,即是抛弃以前的用坐标写死视图的位置和大小,只是对控件间的相对距离进行约束,让控件自动适配屏幕。

下面用一个简单易懂的例子来说明autolayout的部分使用技巧和方法,等宽子视图的布局,所谓等宽子视图,说的简单了也就是对一个有多个子视图的父视图来说,不管父视图的宽度是如何的变化,所有子视图的宽度都是相等的,如图3-2所示:

 

图3-2适配效果图

分析一下这种情况的视图约束的规则,4个不同颜色的子视图具有相同的宽度,子视图之间的距离固定为10,最左边和最右边距屏幕边缘的距离为10,子视图的高度随着屏幕的比例进行变大或变小,接下来就是将图中的约束全部实现,其中最关键的约束是等宽约束,子试图之间的固定距离的约束。

对于所有的约束条件如图3-3所示;

图3-3autolaryout约束条件

在实际的开发过程中,会遇到各种各样的屏幕适配,这就需要我们对aotolayout非常了解,对约束条件非常清晰,autolayout的出现让苹果适配问题变得简单,不在需要纯代码适配,给发开者节省了时间,增加了效率,从图中可以看出各个约束的效果和不同。

3.2MVC设计模式

MVC是一种架构设计,M表示数据模型(model),V表示视图(view),C表示控制器(controller)。

数据模型:

负责存储、定义、操作数据,例如,模型对象可能是表示展示视图中的一条数据,用户在视图层中所进行的创建或者修改数据的操作,通过控制器对象传达出去。

模型对象在改变的时侯,就会通知试图控制器的对象,控制器对象发送相应的消息来更新我们需要改变的试图对象。

视图是用来展示数据给用户,和用户进行操作交互,视图通过显示的形式,把信息转达给用户。

不同视图显示着不同的内容,表达了模型的数据变化和状态变化的消息。

每个视图对象都会有一个更新的作用,它可被变化-传播机制所激活。

当让试图对象更新时,视图获取到模型带来的数据值,并用这些数据来更新显示出来。

控制器是M与V的协调者,控制器获取数据,将数据交给视图去展示。

MVC的优点表现在以下几个方面:

(1)能够将一个模型在运行时一起创建和利用许多个不同的视图。

变化-传播机制能够保证一切有关的视图很迅速的得到模型数据变化,然后将全部关联的视图和控制器之间行为和数据同步。

(2)视图与控制器的可接插性,可以变换视图和控制器不同的对象,而且可以根据不同的要求多态的打开或关闭,有时候还可以在运行的中间进行对象替换更新。

(3)模型的可移植性。

因为模型和试图是相对独立的,所以能够将一个模型单独地放到其它的平台进行工作。

不过要做的是在新平台上对视图和控制器进行新的修改。

3.3好生活的功能框架

3.3.1引导页

引导页向用户展示了好生活公司的一些图片,让员工对好生活公司有更深的了解,让员工对此app一目了然,好生活是企业给员工的福利,让员工喜欢上此app。

主要功能框架如图3-4所示:

 

图3-4功能框架

3.3.2登陆界面

通过点击引导页的最后一个图片进入到登陆界面,在此界面用户可以输入用户名和密码进行登陆,当密码忘记时可以点击找回密码进行找回操作,也可注册用户,本界面和QQ的登陆界面具有类似功能。

 

3.3.3首页

用户登陆成功,会跳到此界面,用户在此界面能看到一些展示的不同种类的商品,具体包括广告、分类、福利几个模块。

广告主要是展示一些广告图片,减价商品,最新商品等,可以自动滑动,用户也可手动滑动,通过点击不同的图片可以跳转到下一个界面,下一界面是对此图片的详细信息的描述。

在广告下面紧接着就是分类模块,在此模块中主要有八种不同的分类,运动健身、文艺欣赏、健康体检、休假疗养、集中采购、业余培训、户外运动、生日慰问。

通过点击不同的分类,找到用户需要的种类和商品,这种设计是非常具有人性化的,可以根据不同的用户展示不同的数据。

福利模块分为最新和最热两部分,但是不同的两部分都是以同一种格式显示的,向用户展示了商品图片,商品名称,商品价格和商品购买的数量,通过展示的部分,让用户胸有成竹,一目了然。

3.3.4个人界面

该页面是个人信息界面,在此页面中可以看到用户名、真实姓名、头像、我的订单、福利账单、用户地址、密码管理等功能。

通过点击个人信息可以设置头像,头像可以根据相册选择,也可拍照上传,我的订单就是历史订单,可以看到以前购买商品的历史,密码管理能够实现更改密码的功能,跟平常所见到的更改密码功能一致,意见反馈就是提交自己的意见,给公司提供建议的功能。

最新消息可以查看消息,点击这个按钮是通过加载网页的形势展示数据的。

3.3.5设置界面

设置界面相对其他的界面就显得比较简单了,该界面可以检查更新,退出登陆以及设置在2G/3G/4G下能否显示图片的功能,点击此按钮,可以控制是否加载图片,该功能是对于用流量的用户量身定做的,通过此按钮的开关,控制流量的多少,非常人性化的设计。

退出登陆按钮就是退出登陆,回到登陆界面,通这个按钮可以切换不同的用户。

 

第4章好生活客户端设计与实现

4.1项目概述

项目名称:

好生活app

项目需求:

通过手机客户端实现网上在线购物的功能,可以在手机上进行物品的选择、浏览、支付等操作。

项目优化:

加强用户体验,不同屏幕手机进行适配,使外观整体,减少资源的消耗,防止内存泄漏,加强内存的管理,滚动视图滚动显示更加流畅、清晰、自然。

4.2好生活详细设计

4.2.1引导页界面

引导页是放置不同的图片到UISsrollView上面,滑动到最后一张图片,通过touch事件处理,跳转到登陆页面,其中主要代码为:

_scrollView=[[UIScrollViewalloc]initWithFrame:

[UIScreenmainScreen].bounds];

for(inti=0;i<4;i++)

{

LaunchImageView*imageView=[[LaunchImageViewalloc]initWithFrame:

CGRectMake(VIEWWIDTH*i,0,VIEWWIDTH,VIEWHEIGHT)];

imageView.image=[UIImageimageNamed:

[NSStringstringWithFormat:

@"1-%d.jpg",i+1]];

imageView.tag=i+1;

imageView.delegate=self;

[_scrollViewaddSubview:

imageView]

}

_scrollView.contentSize=CGSizeMake(VIEWWIDTH*4,0);

_scrollView.showsHorizontalScrollIndicator=NO;

_scrollView.pagingEnabled=YES;

_scrollView.bounces=NO;

[self.viewaddSubview:

_scrollView];

引导页图如图4-1所示:

图4-1引导页图

4.2.2登陆页面

该界面的登陆图如图4-2所示,登陆页面则是由最基本的一些控件组成的,其中分别有UITextField,UIButton,UILabel等控件,通过获取UITextField上的用户名和密码,在UIButton的点击事件里面进行一系列的判断和发送网络请求,通过AFNetworking这个第三方的库,向服务器发送请求,并得到服务器返回的数据,将数据进行解析,判断是否登陆成功。

如果登录成功就会跳转到下一个界面,反之,会弹出一个警告框告诉用户登录失败的原因。

此界面是很容易实现的,复杂的部分主要是对返回数据的解析和判断,下面是对登陆判断的主要代码:

[self.viewendEditing:

YES];

NSString*nameString=[_tfUserName.textstringByReplacingOccurrencesOfString:

@""withString:

@""];

NSString*pwdString=[_tfUserPwd.textstringByReplacingOccurrencesOfString:

@""withString:

@""];

if(nameString==nil||nameString.length<6||pwdString==nil||pwdString.length==0){

NSLog(@"请填写正确的用户名或密码");

}else

{

[sendersetTitle:

@"登录中..."forState:

UIControlStateNormal];

[[HttpEngineshareHttpEngine]loginWi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1