基于苹果系统的掌上购物APP开发资料Word下载.docx
《基于苹果系统的掌上购物APP开发资料Word下载.docx》由会员分享,可在线阅读,更多相关《基于苹果系统的掌上购物APP开发资料Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
1.2购物APP架设计开发的现实意义1
1.3国内外研究状况2
第2章购物APP开发技术简介4
2.1Object-C简介4
2.2iOS系统简介4
2.3应用程序框架简介5
2.4开发工具简介6
2.5项目可行性分析6
第3章购物APP详细模块设计8
3.1发现页8
3.2品牌页15
3.3品牌馆18
总结22
致谢23
参考文献24
摘要
项目的实现用到的工具是Xcode,用到的语言是Object-C语言,项目中使用的控件是UI控件。
项目实现过程需要网络数据的抓包,数据单例的封装,数据链接的整合分类以及整个实现页面的框架搭建。
项目的具体实现是发现页、品牌页、品牌馆三个主页面的展示,我们通过设置UITabBar的item来确定这些主页面。
之后就是每个页面的图片展示,我们用UItableView和UICollectionView来实现表格式图和集合视图的图片布局,布局中用到xib的定制,完成页面的展示之后,给每个图片添加点击事件和tag值的标记,并用bloc回调的方式获取传来的数据并推出另一个视图控制器就可以实现图片点击的详情页面。
整个项目基本实现后,我还需加强对表格视图和集合视图控件的熟练运用,因为cell的复用还是一个容易出错的地方,其次,获取数据block回调过程中要测试下回调的值是否存在。
最后,要想做出更出色的项目还需要多加学习和借鉴他人的思想。
关键词:
购物,UITableView,UICollectionView
Abstract
ThetoolsusedtoachievetheprojectisXcode,usedlanguageisObject-Clanguage,thecontrolsusedintheprojectistheUIcontrols.
Projectimplementationprocessrequirescapturenetworkdataframepackages,datalinkdataclassificationandintegrationofasingleexampleofrealizationoftheentirepagestructures.
Implementationoftheprojectistofindpages,brandpages,brandPavilionthreemainpage,wedeterminedthemainpagebysettingUITabBartheitem.Aftereachpageisapictureshow,andweUItableViewUICollectionViewtoachieveimagetabularviewandalayoutviewofthecollection,aftercustomlayoutusedxibcompletedisplayofthepage,addaclickeventtoeachpictureandtagvaluesmark,andtoobtaindatafromtheblocwiththecallbackmodeandlaunchedanotherviewcontrollercanachievethepictureclickonthedetailspage.
Afterthebasicrealizationofthewholeproject,Ineedtostrengthenthetableviewandtheviewofthecollectioncontrolsproficient,becausecellmultiplexingoraplacepronetoerror,andsecondly,toobtaindatablockcallbackproceduretobetestedunderthecallbackvalueexists.Finally,inordertomakeabetterprojectalsoneedtopaymoretolearnfromotherpeople'
sthinking.
Keywords:
shopping,UITableView,UICollectionView
第1章前言
1.1苹果手机在中国的发展历史
在2007年1月份在美国诞生了第一台iPhone手机,当时的售价在五百美元,虽然iPhone刚刚出世,但以它独有的简约风格任然吸引了不少的消费者前来购买,可谓当时的iPhone是供不应求,人们宁愿多排队你分钟也要购买一来iPhone手机。
在iPhone手机刚出来的时候也就是美国的人民热血比较高涨,因为在这个时候像中国的其他国家并没有将苹果手机大量引入中国市场,虽然有一部分,但是相对其他中国用户用的安卓手机相比价格还是昂贵了些。
在2008年6月份,苹果公司又发布了第二代的苹果手机也就是iPhone3G,这一年的发售并没有包括中国市场。
当然第二代苹果的出现也并不是那么完美,它仍然存在这性能的缺陷,但尽管如此还是有很多人热爱这款手机,它的销量也是在三天时间就突破八万,所以能够看出,苹果手机还的出现还是值得我们去关注的。
在2008年10月份,第二代苹果手机iPhone3G还是在中国问世了,当然了,价格方面还是一个非常让人头疼的问题,但是在中国买一部苹果二代就要花掉人民币五千,可以说不是想买就舍得买的。
在2010年6月份,苹果公司又发布了iPhone4的诞生。
相对于前两代苹果相比,iPhone4的出现可谓是震惊世界,iPhone4不同于前两代的苹果,它在设计方面和功能方面有了质的飞跃。
在我们印象中,拿到的手机及时是一款只能手机也有很多的按键,但iPhone4只提供了一个Home键及侧边音量键,而且机身非常简约,看起来就很有美感。
在iPhone4诞生三天的时间销量就突破170万。
随着苹果手机的热销,慢慢的就开始进入了中国市场,在同年九月份,苹果手机在中国内地正是发售,当时发售的只有16G和32G的裸机,并且售价为4999和5999人民币。
在2011年10月4号,也就是乔布斯逝世的前一天,苹果公司发布了新一代苹果-iPhone4s。
在2012年9月份,苹果公司正式发布其新一代产品iPhone5。
并将尺寸变为4.5英寸。
在2013年9月份,苹果发布了另外两种iPhone手机,分别是iPhone5C和iPhone5S,因为在之前,苹果发布手机都是在内地和其他国家进行销售,而中国并未考虑在内,但iPhone5s的出现,苹果公司将市场也指向了中国,并且在一周内销量达到九百万台,可以看的出在中国市场给苹果带来了足够的销量。
2014年第三财季显示,iPhone在中国市场的销量增长48%。
在2015到2016年间,iPhone6、iPhone6s以及iPhone6Plus等相继出现,更是引领了中国手机的潮流。
我们可以发现,从之前山寨机到安卓机的现状到每人用来一台苹果手机已经渐渐成为了苹果在中国市场的发展趋势[1]。
1.2购物APP架设计开发的现实意义
社会的进步自然促进了人们生活水平的提高,人们不再只是满足以往的温饱问题,如何享受并让自己的日子过得不同寻常或更加惬意也是他们一直追随的。
当然享受生活的方式有很多,比如购物。
信息时代,网购发展可谓是愈加愈快。
之所以现在的网购能够发展如此之快也是因为它和传统的购物有的非常大的区别和优势。
比如说,我们需要买一件自己的生活用品,要是以往肯定是去各大商场或者店铺去挑选,然后网购就不一样了,我们可以不用出门只需要一台电脑或者手机就可以在网上挑选我们需要的各种商品,因而极大地节省了购物时间。
不仅如此,对于那些上班族,他们的时间非常紧迫,因为大部分的时间都是在工作,真正的娱乐时间却很少,那么,网购就是他们的福音,他们完全可以利用闲暇的那么一点时间就可以购买一些自己需要的商品,而不需要过多的去花时间。
既然如此,为这些广大消费者们提供一款掌上购物APP还是非常必要的。
我的这个设计是购物中的一部分,是一款提供女性服装的APP,这对于那些“剁手党”的女性又提供了方便。
就现阶段的分析,不管怎么说,拥有一款属于自己的购物APP还是很不错的。
1.3国内外研究状况
1.3.1国外研究状况
iPhone最开始的诞生是在2007年,那个时候的苹果只是一个起步阶段,因为相对其它的一些系统比如Windows、Symbian等来说各个方面都是不足的,特性不是很好功能不是很强,可以说刚开始的苹果完全不足以和其它已经拥有成熟的系统龙头先比。
苹果刚出来的时候没有3G网络的支持,没有多任务操作的支持也没有第三方应用的支持,所以在上面能够操纵的东西是非常有限的,你不能复制粘贴文本,不能发送电子邮件甚至不能发送彩信等。
不仅如此,在其他特性方面比如屏幕自定义,文件管理器的全局课可见,语音的拨号,office的文件编辑等等。
但是在iPhone发布三个月之后就迎来来一次非常大的升级,苹果添加了MusicStore,它允许用户直接在iPhone上面购买音乐,它或许是许许多多iPhone新特性中因为运营商网络压力后者运营利益遭到压制的例子中的第一个。
随之而来,苹果二代的出现可谓是功能质的飞跃,它在手机应用中添加了APPStore,APPStore同时存在于手机(AppStore)和PC(iTunes)两个地方,用户选择任意一种途径都可以自由地浏览和安装应用程序,相对之前的购买系统来说更加的一体化。
因为在苹果一代的时候,用户购买商品往往是通过web的链接去下载的,而APPStore的出现可以让消费者们有个统一的地方,不仅提供了丰富了商品更使得购买变得方便和快捷。
另外重要的是,AppStore和iTunesMusic使用一个账号,用户无需再次输入自己的信用卡账号密码,这意味着查找和安装应用程序将前所未有的容易,又一次为广大消费者提供了方便,在之后的升级中也加入了自己原创的地图的一些高级功能[2]。
苹果能从开始的不具备竞争的能力和到现在的走在世界的前端,说明它还是具备足够的能力。
1.3.2国内研究状况
现在手机用户越来越多,拥有一款智能手机也是必不可少的。
那么,手机的大众化必然相对的对手机软件的需求也越来越多。
这个信息时代肯定不像以往的那样只是用手机接打电话发送短信就行,人们现在更注重的是娱乐性的多少。
现在的网络购物已经很是普遍,网络购物能够给广大的消费者提供非常大的方便。
苹果手机作为当今中国智能手机市场上不可或缺的一个品牌,那么相应的需求量也是在不断的增加。
伴随着手机智能化的普及和信息移动化以及苹果市场的炽热话,不难想象iOS开发技术的流行日趋繁多。
而OC作为苹果独自开发的一门语言已经成为最流行开发语言之一并有和C语言相媲美的趋势。
从近年来苹果在中国市场的销量和影响我们不难看出,苹果已经做得非常成功了。
第2章购物APP开发技术简介
2.1Object-C简介
软件的开发要有语言的支持。
我们开发的是苹果系统的软件,用到的核心语言是object-c语言也简称OC。
在苹果机还没在中国市场流行开来的时候,大家用的的最多的就是安卓机了,应该说用到的基本都是安卓机。
安卓系统的手机软件用到Java,虽然用的比较广泛,但并不是它是非常完美的。
语言的切合行和封装性不是很好,而且不同的机型还要进行适配等繁琐的工作,但OC就不一样,之所以苹果机近几年能够风靡国内市场那是有原因的。
语言特点:
OC用起来比较方便。
因为苹果将它进行C的封装,由于C语言是比较底层的语言,它有着执行速度快、内存占有量小等优点。
OC对C语言进行封装后在编写代码的时候不会出现用C语言编程的复杂和臃肿,OC专门提供了供我们使用的各种接口,我们只需要调用相应的借口就能实现我们的功能而我们并不需要知道它内部的操作问题,这样一来就大大的减少了开发者的时间并提高开发效率[3]。
OC的方法调用不仅好用而且非常直白,虽然看上去方法或者变量比较长,但我们就凭字面的意思就可以知道该方法的作用,非常的简单快捷。
那么有人可能会问到,每一个方法看起来都这么长能切非常多,我们是不是记不住而影响开发。
我要告诉大家的是,完全没问题,因为我们根本就不需要去记住这些方法的所有部分,苹果在xcode的工具上给我们提供了一种联想机制,只要我们记住某个方法的一部分就可以联想所有和这个方法相关的剩下部分,可以说苹果这方面做的还是相当不错的。
Objective-C和C++不同,没有子重载,但在和Java上有着相似,虽然不想Java有着多继承,但是我们可以用协议来实现多继承,这是毫无影响的。
除此之外,由于OC是动态定型,它的库操作起来要比C++更加方便。
当然OC在其他地方也有着它们不可比拟的优势,这里我们就不在一一列举。
2.2iOS系统简介
iOS也就是苹果系统的意思,比如说我们用的iPad和iPhone都是iOS来支持的,像我们用苹果手机浏览应用或者听音乐看视频等都是iOS来提供这些基本的技术支持[4]。
当然iOS也是有分工的,它会根据不同的设备和应用程序提供不同的服务层来解决。
维持苹果操作系统的这些服务层可以分为四层,如图2.1所示。
上面我们可以看到这四个层次的相互作用就是我们来实现iOS的所有操作和实现效果。
当然每个层次有每个层次的不同作用。
下面就是这四个层的基本介绍。
CocoaTouch层,它是我们开发的必备层,我们用来展示的用户界面,比如用到的UI控件的实现和其它一些功能的实现包括用户的可交互等等都是这一层来实现的。
Media层,也就是媒体层他会对像CocoaTouch这样的底层层进行描绘并给他们提供一些接口实现媒体的播放功能。
CoreServices层,从字面上我们就能知道它是提供服务,为我们应用的程序提供基础的系统服务,当然不是所以的应用都要用到它,但是这些应用都是以该层为构建基础的。
CoreOS层,它的主要作用是给其它层的实现提供构建的基础,一般情况下,这些功能并不会在其它层中直接应用而是应用在它们的框架上。
图2.1iOS层
2.3应用程序框架简介
程序的开发可定少不了框架的支持,在iOS开发中我们需要用的到的框架有两种分别是Fondation框架和UIKit框架,因为我们在开发软件过程中需要用到系统库,而系统库就是苹果公司封装好的类方法,它是防止源代码的暴露,并依赖于这两种框架中[5]。
这两种框架都是实现着自己不同的作用,像Foundation主要作用就是为我们的应用程序提供一些基本的服务功能,而UIKit和其它框架都是建立在它上面。
Foundation框架里有很多的特性封装,使用它我们可以管理和创建一些集合比如NSArray和NSDictionary等,我们我可用它来访问内存资源创建通知操作数据接口和实现代码的异步操作等。
所以框架还是非常重要的,在该项目中同样的也用到了Foundation的框架,我们在使用的时候可以在.h或者是.m文件中导入对应的头文件就可以了。
UIKit框架主要作用就是给用户交互提供服务的,比如我们点击某个应用的触摸事件或者是拖动事件都是要用到该框架的处理,因为项目的实现都是和用户直接关联的,像图片的展示等这些都是UIKit框架的支持来实现的。
如图2.2就是怎样添加自己需要的框架截图。
图2.2添加其它框架
2.4开发工具简介
该项目的开发工具是Xcode,Xcode是苹果公司开发并运行在MacOSX操作系统上的集成开发工具,我们可以用该工具开发我们想要的APP,图2.3就是xcode图标。
图2.3xocde图标
Xcode版本最开始是3.1,我用的现在版本7.1来实现的开发。
Xcode是跟苹果系统进行版本同步的,比如苹果系统有iOS9.1、iOS9.2等都有对应的版本为Xcode7.1和Xcode7.2。
当然了,这里不只是让他们想对应而已,每一次的版本都有相应的改动和性能的提升。
我们可以在苹果的官网上下载该开发工具也可以在xcode工具内下载,当然,如果你有自己的开发这账号,官网会有最新版本的更新,每当版本有更新之后,并会提醒开发者。
Xcode运行于苹果公司的Mac操作系统下,是苹果公司向开发人员提供的集成开发环境(非开源),用于开发MacOSX,iOS的应用程序[6]。
2.5项目可行性分析
2.5.1编程可行性
Object-C是对C语言的封装。
我们都知道,C语言是比较底层的语言,在程序执行方面运行速度非常快,OC就是苹果根据C这一特性将它进行一次封装,这样我们就可以直接调用相应的接口而不用考虑实现过程就可以完成我们的开发,这样一来不仅没有了以往C语言编程的大量代码出现也使得开发者能够用OC快速实现开发,C语言具有高效性也被object-c继承,但是我们用的object-c并不像C语言用起来那么的复杂,它把复杂高效的语言变得简单高效,这样更利于iOS开发者的使用,也为iOS开发者带来了便捷。
而且OC同样具备着多态性和面向对象。
我们可以让类方法提供给其他类使用也可以是其它项目中的对象。
还有,子类如果继承与父类,那么子类就可以使用父类中的所有方法和变量也可以对父类中的方法和变量进行重写,这样一来,开发中的功能就会变得更加灵活性[7]。
2.5.2市场因素可行性
信息时代的快速发展,手机行业更是炙手可热,手机应用的开发也是更新还贷比较频繁,一款好的手机软件,不仅能适应市场的发展方向,更是位广大用户带来福利以及便捷。
根据当前的市场走势分析,更多的开发者都向着iOS区域的开发方向进行着,由于苹果的软件商城的支付模式越来越成熟而且它的兼容性问题很小吸引了很多的开发者,因为它值得让其他开发者们试一试,由此而来就为iOS的发展奠定了很好的基础[8]。
2.5.3硬件工具可行性
使用工具方面,开发工具iOSxcode7.1及以上版本,要求mac10.10.5及以上操作系统,机器装有相应的软件并可运行,内存在2G即可。
第3章购物APP详细模块设计
3.1发现页
在实现之前需要获取数据我将请求网络的数据进行UISession的单利封装
实现代码。
在.h文件中定义
+(SessionFetch*)defaultSession;
-(void)accessNetWithUrlstring:
(NSString*)urlStrbackRequest:
(requestResult)handler;
在.m文件中实现
@interfaceSessionFetch()
{
NSURLSession*_session;
}
@end
@implementationSessionFetch
-(instancetype)init{
if(self=[superinit]){
NSURLSessionConfiguration*configuration=[NSURLSessionConfigurationdefaultSessionConfiguration];
_session=[NSURLSessionsessionWithConfiguration:
configuration];
}
returnself;
+(SessionFetch*)defaultSession{
staticdispatch_once_tonce;
staticSessionFetch*session=nil;
dispatch_once(&
once,^{
session=[selfnew];
});
returnsession;
(NSString*)urlStrbackRequest:
(requestResult)handler{}
3.1.1图片的展示
这里我们需要定制两种类型的xib,分别是大图片居中靠左(图4.1)和居中靠右(图4.2),定制完之后创建tableView的对象,设置它的代理并实现代理方法,那么这两种xib就充当tableView的两种cell,根据拿来的数据就能将上面的imageView进行赋值然后实现图片的展示[9]。
两种类型的xib定制如图4.1和图4.2,实现后的效果图如图4.3。
图4.1xib1的创建图4.2xib2的创建
图4.3两种xib展示的效果图
从xib定制到图片的显示过程的代码如下。
-(UITableViewCell*)tableView:
(UITableView*)tableViewcellForRowAtIndexPath:
(NSIndexPath*)indexPath{
#pragmamark--------------------单数cell显示第一种cell的类型---------------
if(indexPath.row%2==1){
[_tableViewregisterNib:
[UINibnibWithNibName:
@"
FindTableViewCell"
bundle:
nil]forCellReuseIdentifier:
findCellId"
];
FindTableViewCell*cell=[tableViewdequeueReusableCellWithIdentifier:
forIndexPath:
indexPath];
NSArray*array=@[cell.imageV0,cell.imageV1,cell.imageV2,cell.imageV3,cell.imageV4,cell.imageV5,cell.imageV6,cell.imageV7,cell.imageV8];
_array1.array=array;
NSIntegercount1=_array1.count;
for(inti=0;
i<
count1;
i++){
UIImageView*imageView=_array1[i];
NSIntegertag=imageView.tag;
NSLog(@"
1-----%ld"
imageView.tag);
if(imageView.tag>
=100000){
NSIntegerindex=tag-100000+(indexPath.row-1)*9;
再将图片的tag设置为index对应
imageView.tag=index;
NSURL*imageUrl=[NSURLURLWithString:
_data