《爱限免手机app框架设计开发.doc》由会员分享,可在线阅读,更多相关《爱限免手机app框架设计开发.doc(49页珍藏版)》请在三一文库上搜索。
1、河南理工大学毕业设计(论文)说明书 摘 要随着计算机网络通信技术和Internet的飞速发展,基于因特网的手机移动应用已经开始成为一种全新的功能需求,并且越来越受到人们的关注。由于移动应用具有简单性,随时随地性等诸多特点,因此它有着传统计算机所无法比拟的优点。这样一来,手机移动应用的开发工作就显得尤为重要,开发出一个集合手机应用的“商店”极为重要,近年来iphone手机在中的发展趋势日趋上升,iphone手机保密性很强,很多东西都不对外开放,爱限免手机app就是针对iphone手机而开发的一款手机应用,日趋扩大的市场也使得应用于iphone手机的app开发日趋紧迫,可以说爱限免的开发不仅是客户
2、的需求更是市场的需求。爱限免项目的开发使用了iphone自己研发的开发软件xcode6.0,主要有UIkit框架和Foundation框架组成。爱限免的项目开发,对数据进行展示主要应用列表控制器UIableview,在使用UItableview是对cell的复用是此技术的难点,主要避免在cell复用是出现内存泄露状况而导致的程序崩溃,数据的获取应用了AFHttpNetWork第三方库,对网络数据进行get获取,把获取的数据用数据模型接收,这样有利于降低耦合性,是程序更顺畅。在对数据保存时用到了FMDB第三方数据库,此数据库的底层也是对squlite的封装,是开发者应用起来更顺手简介,提高效率,
3、界面之间的数据传输难点blcok的应用,这点要求开发者对block有比较深刻的理解,以及应用熟练度。关键词:ios,squlite,block,应用,控件IAbstract With the rapid development of computer network communication technology and the Internet, based on Internet mobile phone application has begun to become a kind of new functional requirements, and people have paid
4、more and more attention. Because of its simplicity, anytime, anywhere, etc., it has the advantages that the traditional computer cant match. In this way, the mobile application development work is particularly important, the development of a collection of mobile application store is very important,
5、in recent years the iPhone in the development trend is rising day by day, iPhone mobile phone security is very strong, a lot of things are not open to the public, love limit free mobile app is for the iPhone and the development of a mobile application, widening the market also make the application t
6、o iPhone app development is becoming more and more urgent, you can love limit free development is not only the needs of customers is the demand of the market The development of love limited free project use of iPhone own R & D software xcode6.0, mainly UIkit framework and Foundation framework. Love
7、free for a limited time of project development, the data for display of the main application list controller UIableview, in the use of UItableview is reuse of the cell is the difficulty of this technology, mainly to avoid memory leak condition, which leads to the program crashes in the cell multiple
8、xing and data acquisition application the AFHttpNetWork third-party libraries, the network data to get access to, to get the data model data receiving, which help to reduce coupling is process smoother. In to save the data used in the FMDB database of the third party, the bottom of this database is
9、to squlite package is more comfortable profile application developers, improve efficiency, application of interface between data transmission difficulties blcok, this requires developers to more profound understanding of block, as well as the application of proficiencyKeywords: IOS, squlite, block,
10、application, controlII目 录摘 要I第一章 前 言11.1 课题开发背景11.2 爱限免手机app框架设计开发的现实意义21.3 国内外研究状况21.4 论文内容和结构3第2章 爱限免手机应用开发技术简介52.1 Objective-c简介52.1.1 ios系统框架62.1.2核心操作系统层和核心服务层62.1.3应用程序框架72.2 SQLite数据库介绍82.3 XCode8第3章 爱限免手机应用app需求分析103.1 爱限免手机应用app的可行性分析103.2 爱限免手机应用app功能需求分析123.2.1 功能需求13第4章 爱限免手机应用app设计144.1
11、 模块功能设计144.1.1 限免模块144.2.1 免费模块194.2.2 专题模块244.2.3 分享功能模块284.2.4 收藏功能模块304.2.5 搜索功能模块34第5章 系统测试365.1 功能模块测试365.2 功能整体测试37总结与展望38总结38展望39参考文献41谢 辞42IV第一章 前 言1.1 课题开发背景如今移动开发产业让人眼花缭乱,主要的开饭平台有:iOS(iPhoneOS)、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、Flash/Flash Lite、mobile web(WAP/XHTML/CSS
12、/Javascript)。Android以其开放性,多任务,大功能,画面流畅,硬件设备优良多样等各种优点,占智能机一大部分;然而它也存在着很明显的不足,如:兼容性差,各种机型的配置不一样,以至于开发的时候出现各种版本。有些产品华而不实,用户体验差。Symbian主要基于C语言的应用开发,支持多线程运行模式,但是开发代码量过大给开发人员造成很大的不便,另外塞班版本之间兼容性差也是SymbianOS需要改进的一个地方。就目前而言,三大平台(Android、Symbian、BlackBerry)的市场占有率也在逐渐下降,iOS呈现平稳上升趋势。1. App Store的支付模式成熟App Store
13、的成熟不仅仅是商业模式的创新,更重要的是无法模仿,经过长时间的运营,App Store已经形成完备的支付模式,被大部分用户接受。2. iOS是用Objective-C开发从全球的编程语言排行榜来看,虽然,Objective-C只有苹果公司一家使用,但是已经排名第4,可见iOS开发的普及性和受欢迎程度,另外,objective-c是对c语言的封装,既没有了c语言写程序的繁琐复杂性,又兼顾了c语言的高效率,这也使得objective-c语言在编程语言中的地位以及受欢迎度日益上升的一个因素。3. Iphone性能优越苹果iPhone以及所有苹果的硬件软件策略和控制让苹果在用户体验和控制产品质量方面占
14、尽先机,大部分iOS用户能够同时对他们手中的设备进行更新,这会吸引更多用户。4. iPhone在中国极受欢迎中国的各大移动运营商都积极地与苹果公司合作,各自推出适合中国人使用的手机套餐和应用,比如中国联通,中国电信等等,社会各界也对iPhone有很好的评价,还有很多知名手机应用软件,如qq微信等也加入了app store。5. iOS在各国开发者中有很好的学习氛围如facebook的three 20 iOS开源代码库,都是良好的学习资源,还有一些前辈大牛发表的博客如博客园就是一个ios开发者很好的交流网站,还有一些如cocoachina里边集合了很多开发者的心得及项目,国内外的开发大牛都有在上
15、边发表自己的心得。也是ios开发者良好的学习资源。1.2 爱限免手机app框架设计开发的现实意义随着科技的发展技术的进步,手机的功能也出现了翻天覆地的变化,由原来只是打电话发短信的基本功能,转变为现在的全功能智能手机,人们对手机的要求也越来越高。1. iphone手机中国市场无限扩大Iphone手机的性能优越已经不言而喻,不用就释放也使得iphone手机避免了安卓手机卡机现象,然而iphone手机并不对外开源,是的其核心技术只被苹果公司垄断,关于iphone手机的手机应用也是少之又少,毕竟开发者有限。因此iphone手机的app开发也是迫切的。2. 开发框架完善Iphone应用的开发主要平台式
16、有iphone公司自己研发的开发平台xcode,是由苹果公司的先辈大牛写出来的,主要用于ios开发者开发软件,集合objective-c,性能比较完善。3. 满足市场Iphone主要软件获取是从appStore中买或者是免费下载,爱限免主要实现对iphone手机应用的时时推荐,把app进行条理分类,便于用户根据个人需求获取自己想要得到的app。1.3 国内外研究状况1.国外第一代iPhone在2007年诞生虽然现在也许很难想象,但是当第一代iPhone发布的时候,它相对来说落后的特性和功能是不足以让它直接在纸面的参数对比上胜过竞争对手的。当时的WindowsMobile, Palm OS, S
17、ymbian,甚至是BlackBerry都是2007年间相对成熟的系统了,都拥有广泛而又深厚的特性积累。相比之下,iPhone不支持3G网络,不支持多任务操作,也不支持第三方应用。你没有办法去复制/粘贴文本,你没有办法在想要发送的电子邮件中添加附件。就连彩信iPhone也没有办法提供支持。其他方面的特性缺失还包括:Exchange邮件推送、可自定义的主屏幕、tethering、可见的全局文件管理器、Office文件编辑、语音拨号、以及对黑客和开发者所理应由的开放性,iphone发布三个月之后就迎来了第一次升级,引入了iTunes Wi-Fi MusicStore。它允许用户直接在iPhone上
18、面购买音乐,它或许是许许多多iPhone新特性中因为运营商网络压力或者运营利益而遭到压制的例子中的第一个,在随之而来的ios2解决了手机应用问题加入了appstore,App Store同时存在于手机(AppStore应用)和PC(iTunes)两个地方,用户选择任意一种途径都可以自由地浏览和安装应用程序。这对于过去分散性极高的移动应用(大部分通过web直接下载,有些应用存在于第三方应用商店,整体和OS的整合度较差)来说是一个巨大的变化。另外重要的是,AppStore和iTunesMusic使用一个账号,用户无需再次输入自己的信用卡账号密码。这意味着查找和安装应用程序将前所未有的容易,这大大提
19、高了用户冲动消费的可能性,在之后的升级中也加入了自己原创的地图的一些高级功能。2.国内随着智能手机的大众化,越来越多的人应用智能手机。相对的对手机软件的需求也就越来越多。当今时代手机不再只是用来打电话、发短信的工具,反而对手机的娱乐功能要求越来越高。手机新闻也成为了人们的主要获取信息途径之一。目前中国新闻行业已经具备了相当的规模,并在国际市场上已有一定的竞争力。苹果手机作为当今中国智能手机市场上不可或缺的一个品牌,基于iOS的手机软件需求量也就相应的越来越强。市场上的新闻品牌繁多,定位不一,基本满足了各层次消费者的需求,例如:腾讯新闻、搜狐新闻、网易新闻、新浪新闻等等这些大家所熟知的新闻已经在
20、苹果软件中占据了一定的地位。智能手机的普及使得移动信息平台成为了主流。伴随着苹果手机进入中国市场,相应的iOS技术逐渐流行起来。而对于开发苹果应用的语言Objective-C,也成为当今社会最流行的开发语言,并且保持着强劲的上升趋势,隐隐有超过C语言的现象。对于其他的开发语言,例如java、javascripe,Object-C以其强大的优势遥遥领先于这些其他的编程语言。本人根据当前的形式,决定引用这种这种技术来开发手机应用。1.4 论文内容和结构本论文主要写的是一个ios项目-爱限免的实现过程,以及一些在实现过程中遇到的难题,解决方法,自己在解决问题中的体悟和感受,以及对以后项目的完善的展望
21、,本文把实现项目过程中的核心代码张是给读者看,让读者对我的项目有初步的了解,也对关键代码附有文字说明以及代码运行后的图片展示。具体章节内容如下简介讲述:第1章 ,介绍了课题的开发背景、课题开发的现实意义、国内外研究综述、论文内容及结构。第2章 ,概略地介绍了开发爱限免手机应用多用到的各种技术,比如新技术Objective-c,SQLite数据库,开源框架的json解析等。第3章 ,对爱限免系统结构设计、系统结构功能、运行环境等概要分析设计阶段做工了大体介绍即需求分析。第四章,对系统总体流程设计、系统整体框架、后台逻辑处理功能设计和数据库设计作了简要说明具体介绍了系统各功能实现过程,如分享、收藏
22、等。第五章,大体介绍了对本系统的测试工作,涵盖了测试计划、测试结果以及测试分析这三个方面的内容。第2章 爱限免手机应用开发技术简介该部分主要包括对iOS系统架构的分析、核心操作系统的分析、应用程序框架的分析、内核的分析、开发环境的配置信息、选用数据库描述信息等,具体如下:2.1 Objective-c简介Objective-C是非常“实际”的语言。它使用一个用C写成、很吊的运行库,只会令应用程序的占得内存增加很小。OC写成的程序通常不会比其源代码大很多。而其函数库(通常附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。Objective-C的最初版本并不支持垃
23、圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“死亡时间”,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些第三方版本已经加入这个功能(尤其是GNUstep),再起Mac OS X 10.3中仍未引入这个功能。不过令人欣慰的是在Apple发布的XCode4中已经支持自动释放,我不敢冒昧的说那是垃圾回收,因为两者机制不同,在xCode4中的自动释放,也就是ARC(Automatic Reference Counting)机制,是不需要用户手动去Release一个对象,而是在编译期间,编译器会自动帮你添加那些以前你经常写NSObjec
24、t release。另一个问题是OC不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在Cocoa编程环境中,所有Mac OS X类别和函式均有“NS”作为前缀,例如NSobject或NSButton来清楚分别它们属于Mac OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发时定下。虽然Objective-C是C的母集,但它也不是C的基本型别为第一级的对象。和C+不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C+不同,但和Java相同,Objective-C
25、只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。由于OC使用动态运行时类型,而且所有的方法都是函数调用(有时甚至连系统调用(syscalls)也如此),很多常见的编译时性能优化方法都不能应用于OC(例如:内联函数、常数传播、交互式优化、纯量取代与聚集等)。这使得OC性能劣于类似的对象抽象语言(如C+)。不过OC拥护者认为既然OC运行时消耗较大,OC本来就不应应用于C+或Java常见的底层抽象2.1.1 ios系统Cisco的网际操作系统(IOS)是一个为网际互连优化的操作系统-
26、类似一个局域操作系统(NOS)、如Novell的 NetWare,为LANs而进行优化。IOS为长时间有效地维护一个互联网络提供了统一的规则。简而言之,它是一个与硬件分离的软件体系结构,随网络技术的不断发展,可动态地升级以适应不断变化的技术IOS可以被视作一个网际互连中枢。一个高度智能的管理员,负责管理、控制复杂的分布式网络资源。其早期版本是一个单独系统,基本上以路由器为中心。它被排列成一个过程(Procedure)集,允许任何过程之间相互呼叫。这种单一的结构使数据的隐蔽性和独立性不强。它的大多数操作代码拥有结构和操作的相关性iPHONE是Mac出的封闭手机系统,iPhone相对要稳定,不开放
27、源代码的,扩展相对不足,移植性很好!iPhone开发用的是Objective-C(一种C语言的第三方拓展版),从众面小,不能定制UI(界面),只能进行功能解锁 比如:越狱.iPhone定位于高端手机市场,走的是个性化路线,主要优势是AppStore(移动网上商店),Mac拥有全球最大最成熟的移动网上商店1. 模块性IOS是Cisco路由软件的初始品牌名称。随着Cisco技术的发展,IOS不断扩展,成为Cisco Central ENgineering(中央工程部门)所称之为的“一系列紧密连接的网际互连软件产品”。尽管在其品牌名识别中,IOS可能仍然等同于路由软件,但是它的持续发展发已使之过渡到
28、支持局域网和ATM交换机,并为网络管理应用提供重要的代理功能。必须强调的是,IOS是Cisco开发的技术:一项企业资产。它给公司提供独特的市场竞争优势。许多竞争者许可IOS在其集线器和中由模块内运行,IOS已尼广泛成为网际互连软件事实上的工业标准。2. 灵活性基于Cisco产品的工程开发以用户可以获得适应变化的灵活性。IOS软件提供一个可扩展的平台,Cisco会随着需求和技术的发展集成新的功能。Cisco可以更快地将新产品投向市场,我们的客户可以享用这种优势。3. 可伸缩性IOS遍布网际互连市场;广泛的Cisco使用伙伴及竞争者在他们的产品上支持IOS.IOS软件体系结构还允许其集成构造企业互
29、联网络的所有部分。Cisco已经定义了4个:核心/中枢:网络中枢和WAN服务,包括大型骨干网络路由器和ATM交换机。工作组:从共享型局域网移植到局域网交换(VLANs)提供更优的网络分段和性能。)远程访问:远程局域网连接解决方案;边际路由器、调制解调器等。IBM网际互连:SNA和LAN并行集成,从SNA转换到IP.Cisco的IOS扩展了所有这些领域,提供了支持端到端网际互连的稳健性。4. 可操作性IOS提供最广泛的基于标准的物理和逻辑协议接口超过业界任何其他供应商:从双绞线到光纤,从局域网到园区网到广域网,Novell NetWare,UNIX,SNA以及其他许多接口。即是说,一个围绕IOS
30、建立的网络将支持非常广泛的应用。2.1.2核心操作系统层和核心服务层位于iOS系统架构最下面的一层是核心操作层,它包括内存管理,文件管理,电源管理以及一些其他的操作系统业务,它可以直接和硬件设备交互。核心操作系统层包括以下这些组件:OS X Kernel,Mach 3.0,BSD,Sockets,Power Mgmt,File System Keychain,Certificates,Security,Bonjour等开发人员也可以完全访问核心服务层来方问iOS的一些服务,包括数据库连接,URL学习等等,它主要包括以下这些组件:Collections,Address Book,Networki
31、ng,File Access,SQLite,Core Location,Net Services,Threading,Preferences,URL Utilities等。SQLite是嵌入式的和轻量级的sql数据库,广泛用于iOS应用。iOS系统内置SQLite数据库减小了开发人员的负担,是系统的一部分。Net Servicer主要负责网络服务,在开发过程中,承担应用程序与服务器之间连接的角色,有很强的交互性。媒体层,通过它可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。它包括以下这些组件:Core Audio,OpenGL,Audo Mixing
32、,AudioRecording,VideoPlayback,JPG,PBG,TIFF,PDF,Quartz,CoreAnimation,OpenGL ES。最上面一层是可触摸层,这一层为应用开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。它包括以下这些组件:Multi-Touch Events,Core Motion,Camera,View Hierarchy,Localization,Alerts,Web Views,Image Picker,Multi-Touch Controls。在Cocoa Touch层中的很多技术都是基于Obje
33、ctive-C语言的。Objective-C语言为iOS提供了相机集合,文件管理,网络操作等支持。例如UIKit框架,它为应用程序提供了各种可视化组件,窗口(window),视图(view)和按钮组件(UIButton)。Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架,获取照片信息功能的框架,负责加速感应器和三维陀螺仪等硬件支持的框架等等。2.1.3应用程序框架编写应用程序项目,都是从CocoaTouch层开始的,具体来说是从UIKit Framework开始的。iOS常用的SDK框架如下:AddressBook.framework
34、提供访问存储核心数据库中用户联系人信息的功能。AddressBook.framework提供一个用户界面,用于显示存储在地址薄中的联系人详情。AudioUnit.framework提供一个接口,让我们的应用程序可以对音频进行处理。AudioToolbox.framework和AVFoundation.framework提供音频录制和回放的底层API,同时也负责管理音频硬件。CFNetwork.framework访问和配置网络,像HTTP,FTP和Bonjour Services等。CoreFoundation.framework提供抽象的常用数据类型,如Unicode、strings、XML、
35、URL等。CoreGraphics.framework提供2D绘制的基于C的API。Foundation.framework提供Object-C的基础类(像NSObject)、基本数据类型和操作系统服务等。GameKit.framework为游戏提供网络功能,点对点互联和游戏中的语音交流。MapKit.framework为应用程序提供内嵌地图的接口。MediaPlayer.framework提供视频播放和音频的功能。MessageUI.framework提供视图控制接口用以处理E-mail和短信。OpenGLES.framework提供简洁而高效的绘制2D和3D图形的OpenGL API。Qu
36、artzCore.framework提供动画特效以及通过硬件进行渲染的能力。StoreKit.framework为应用程序提供在程序运行中消费的支持。SystemConfiguration.framework检测当前网络是否可用和硬件设备状态的能力。2.2 SQLite数据库介绍SQLite是一个轻量级、跨平台的关系型数据库。既然号称关系型数据库,支持SQL92标准中常用的事务(比如视图、事务、触发器等)就是理所当然的了,具体特色有以下几点:1. 轻量级先说它的第一个特色:轻量级。想必SQLite的创建者很看重这个特性,连它的Logo都是用的“羽毛”,来显摆它的轻飘飘。SQLite和C/S模式
37、的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态 库,就可以享受它的全部功能。而且那个动态库的尺寸也挺小,以版本3.6.11为例,Windows下487KB、Linux下347KB等。2. 绿色软件SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。3. 单一文件所谓的“单一文件”,就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。4. 跨平台/可移植性如果光支持主流操作系统
38、,那就没啥好吹嘘的了。除了主流操作系统,SQLite还支持了很多冷门的操作系统。我个人比较感兴趣的是它对很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。5. 内存数据库(in-memory database)SQLite的API不区分当前操作的数据库是在内存还是在文件(对于存储介质是透明的)。所以如果你觉得磁盘I/O有可能成为瓶颈的话,可以考虑切换为内存方式。切换的时候,操作SQLite的代码基本不用大改,只要在开始时把文件Load到内存,结束时把内存的数据库Dump回文件就OK了。2.3 XCodeXcode2.0是开发人员
39、建立Mac OS X应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径。Xcode2.0将Mac OSX的轻松使用,UNIX 能量以及高性能的开发技术集合在一起。不管你用C、C+、Objective-C或 Java编写程序,在AppleScript里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现Xcode编译速度极快。每次操作都很快速和轻松。Xcode4的虚拟模型和设计功能让你可以更轻松的开发和维护应用程序。只需选择应用程序中想要编写的部分,然后模型和设计系统将自动创建分类图表,不仅可以显示编码,还可以让你进行浏览。Mac OS X Core Data API 帮你的应
40、用程序创建数据结构。更棒的是,它还自动提供撤消、重做和保存功能,无需编写任何编码。Xcode整合的 Apple Reference Library为所有的Apple开发者文件提供一个单独的搜索和显示界面,这些文件包括来自苹果电脑公司网站的在线文件,以及存放在你电脑上的文件。新的参考资料库甚至可以帮你将定期更新资料下载到你的电脑,保持文件的最新状态。Xcode 将帮你快速找到最新的答案。Xcode4的核心部分是苹果电脑公司下一代业界标准的gcc编译器gcc4.0。新的编译器利用许多先进的最优化技术帮你从现存编码中获得更多性能。从超级计算世界借鉴来的自动向量化(Auto-vectorization
41、)技术可以帮助你释放每台 Intel 系统中速度引擎的能量,而不需要编写向量化编码。其他的最优化工具则支持反馈定向的最优化,以及隐藏模块分析。Xcode 将赋予你创建诸如计算和渲染引擎应用程序的能力,这些应用程序使用64位内存定址。这非常适合数据集中的应用程序,其通过访问内存中的数据运行速度更快,远胜于磁盘访问。Xcode将为你提供工具来建立并调试适合 IntelCore i5, i7 和Mac OSX Lion的32或64位应用程序,还可以让你创建包含32位和64位执行能力的 Fat Binaries。众所周知,在构建中引进多重处理器可以提高速度,Xcode 能帮你实现这个明显的结论。利用支
42、持 Rendezvous 的分布式构建功能,可以轻易地把编译工作量分散到闲置的电脑上来寄放构建,或者更好是在单独的电脑上开发一个专门的 Xserve 构建寄放区,快速处理那些耗时的任务。第3章 爱限免手机应用app需求分析根据第一章所定义的课题研究方向及目标,本章将对系统功能进行具体的需求分析,具体分析爱限免app所要实现的功能以及欲达到的效果,具体内容如下章节:3.1 爱限免手机应用app的可行性分析1. 使用objective-c编程技术Objective-c是非常实际的语言,他是一个用c写成、很小的运行库,只会令程序的尺寸增加很小,和大部分oo系统使用极大的vm执行时间会取代整个系统运作
43、相反,Objective-c写的程序通常不会比起原始代码大很多,而其函数库亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反,因objective-c它完全兼容标准c语言,c语言具有的高效性也被objective-c继承,但是我们用的objective-c并不像c语言用起来那么的复杂,因为它是对c的封装,把复杂高效的语言变得简单高效,这样更利于ios开发者使用,也为iOS开发者带来了便捷。(1) 动态绑定函数和消息的最根本不同是:函数和它的参数是在编译的时候已经确定下来,但是消息和接收对象知道程序已经在运行,消息在传递时才能确定下来。确切的消息方法实现依赖于消息的接收者,不同的
44、接收者可能有相同的方法名不同的方法实现,只有在消息接收时才能确定(动态类型),通过源代码的类型定义并不能完全确认接收者的类型。运行时消息例程查找接收者和消息方法,找到消息方法实现的机器码,呼叫这个方法,传递给它消息实例变量指针(2) 多态性在Objective-c中消息的调用看上去和标准C中的函数调用相似,但因为方法属于一个对象,消息的行为与函数调用还是不同。在一些情况下,一些对象仅能对针对它涉及的方法起作用,不能被其他类的方法使用,即使这些类有同样名称的方法。这意味着两个对象对同样的消息有着不同的响应,即多态性。Objective-c中多态性和动态绑定配合使用,可以使代码提供给任意数量不同类
45、型的对象使用,这些对象不需要再写代码的时候就已经定义好,它们可以是以后开发的对象,也可以是其他项目的对象。(3) 面向对象面向对象程序构建在多种对象之上,基于Cocoa框架的程序可能使用NSMatrix对象、NSWindow对象、NSDirectonary对象、NSFont对象以及许多其它对象。在Objective-c中通过定义类来定义对象。面向对象让开发者更容易开发应用程序软件,以及更加规范化(4) 继承性类的定义是累进的,任一个新类都是在另一个类的基础上定义的,新类继承了它的方法和实例变量。继承使所有的类构成一颗树形的结构,在Objective-c中使用类一般要继承或间接继承于基类:NSO
46、bject,因为NSObject提供了大量的有用特性。比如,一些图形类,需要继承于Shape类,而Shape是Graphic类的子类,Graphic又继承于NSObject类,因此,还是间接继承于NSObject类。类的继承关系图3-1所示:图3-1 Objective-C类继承图在项目中NSObject集合了所有类的基本方法,所有的=类都继承或者间接继承NSObject。2. 社会市场因素可行性如今社会发展迅速,手机行业更是赤手可热,手机应用的开发也是更新换代比较频繁,一款好的手机软件商店,不仅能适应市场的发展方向,更是为广大用户带来福利以及便捷。按照目前市场情形,越来越多的移动开发者涌进i
47、OS开发领域。iOS平台上应用软件,App Store的支付模式更为成熟而且有监管,另外iOS的兼容性问题小,开发人员不用考虑太多的配置兼容问题,美观大方的外形,更是吸引了大量的用户。而且其良好的用户体验,都为iOS的发展奠定了良好的基础。3. 硬件工具可行性使用工具方面,开发工具ios xcode6.0版本,要求mac10.8操作系统,一台已经安装有所有必备的软件及相应软件设备的计算机;内存要求大于或等于2G。3.2 爱限免手机应用app功能需求分析爱限免手机应用app,设计5个模块,每个模块各司其职,在整个工程中又到了MVC模式,单例模式,block模式,是每个功能模块化各模块之间的联系降
48、到最低,使得每个模块都类似一个小型的家庭,每个成员各司其职,这样就降低了程序的耦合性有利于后期代码的维护,模块化的设计也使得你的app看起来更有你条理性,下边就是对模块化的图文解释,具体如图3-2-1:图3-2-1 模块展示此图清晰的展示了app的5个功能模块,首相是上边的5个大模块,由一个分栏控制器UITablebarController控制,把这5各模块放到分栏控制器数组中进行控制,如图3-2-1设一个搜索控制器和一个详情控制器,通过正反向传值把5大功能模块的信息传到这两个控制器上边进行显示,其中在详情页面还有收藏分享工能,收藏使用了一个数据库进行装载数据,分享实在MOb注册了开发者根据官方文档进行了qq空间分享(需要有qq空间客户端才行)。3.2.1 功能需求1App应用的查看功能需求此项目分别有5各视图控制器viewcontroller分别有系统的分栏控制器tabbaicontroller控制,可以根据下标来回相互切换,每个视图控制器上边都有一个表格控制器UITableview来进行展示数据内容,由于数据的内容各不相同,表格控制器还需要适应每个数据的变