欢迎来到人人文库网! | 帮助中心 人人文档renrendoc.com美如初恋!
人人文库网
全部分类
  • 图纸下载>
  • 教育资料>
  • 专业文献>
  • 应用文书>
  • 行业资料>
  • 生活休闲>
  • 办公材料>
  • 毕业设计>
  • ImageVerifierCode 换一换
    首页 人人文库网 > 资源分类 > DOCX文档下载  

    计本iPhone手机应用开发设计(爱炒股)

    • 资源ID:7718776       资源大小:7.99MB        全文页数:54页
    • 资源格式: DOCX        下载积分:5积分
    扫码快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
    二维码
    微信扫一扫登录

    手机扫码下载

    请使用微信 或支付宝 扫码支付

    • 扫码支付后即可登录下载文档,同时代表您同意《人人文库网用户协议》

    • 扫码过程中请勿刷新、关闭本页面,否则会导致文档资源下载失败

    • 支付成功后,可再次使用当前微信或支付宝扫码免费下载本资源,无需再次付费

    账号:
    密码:
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源(1积分=1元)下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计本iPhone手机应用开发设计(爱炒股)

    1IPHONE手机应用开发设计(爱炒股)数学与计算机科学学院计算机科学与技术专业105032011126张民鹏指导教师黄欣沂【摘要】在如今一个经济正高速发展的社会里,越来越多的人开始将投资的目光移向金融市场。在懵懂与实战之间,爱炒股(ISTOCK)软件应运而生。爱炒股手机软件的设计是集股票信息、资讯、模拟炒股于一体的基于IOS操作系统的一款手机应用软件。运用异步加载、单例、通知、MVC等当前热门技术实现。它给予更多人一次真实的体验,买入、卖出、撤单,让极佳的体验效果带你玩转股市。投资决策、投资组合,为了实战而奠定基础。微博登陆、微信朋友圈分享,让更多的人来关注这场智者的游戏、勇者的战争。在设置栏,你可以更加个性化。因远程推送,让你不是一个人在战斗,随时关注市场的变动。【关键词】爱炒股;手机应用;软件;IOS2目录1引言411课题开发背景412软件系统开发的现实意义42系统开发环境521开发工具522开发语言523数据库工具524第三方框架53爱炒股软件数据接口介绍631数据类型介绍632数据接口介绍74爱炒股软件需求分析741爱炒股软件系统的可行性分析742爱炒股软件系统功能需求分析75爱炒股软件系统设计951爱炒股软件系统总体架构设计952自选股模块953大盘指数模块1054我的账户模块1255模拟委托交易模块1356决策模块1357股市资讯模块1458设置模块156爱炒股软件系统实现1661数据的抓取与解析16611数据的抓取16612数据解析1762数据的请求及刷新24621数据的请求243622NSTIMER定时刷新2463数据库26631数据库表26632数据库的单例实现2864数据的存储28641图片的缓存处理28642用户信息的缓存28643交易数据的存储2965数据安全29651MD5加密实现29652指纹识别3066通知31661本地通知31662远程推送通知3267模拟交易实现过程34671买入35672卖出37673撤单3768资产组合风险计算38681相关参数38682实现算法39683关于该算法的实际不确定性417系统测试4371兼容性测试4372性能测试4373稳定性测试448总结45参考文献45附录一数据接口47附录二图标50附录三版本控制5141引言11课题开发背景根据TIOBE最新发布2014年10月的编程语言排行榜中,可以看到C、JAVA、OBJECTIVEC依旧处于榜单前三。另外,APPLE公司在9月份正式发布的SWIFT新的编程语言已悄然进入排行前二十的榜单中。从这些数据中可以看到IOS系统逐渐在扩大市场规模。图11TIOBE编程语言排行榜【数据来源HTTP/WWWTIOBECOM】不论是IPHONE的用户体验,还是硬件方面,都是目前极受广大消费者的喜爱。基于IOS开发的手机应用产品,在市场中得覆盖率也是逐步在提高。12爱炒股软件系统框架设计开发的现实意义对于那些刚开始准备步入股市的哪些人来说,爱炒股这款软件是极其合适不过的了。爱炒股手机软件的设计是集股票信息、资讯、模拟炒股于一体的基于IOS操作系统的一款手机应用软件。当下,模拟炒股功能大部分是出现在PC端,而在移动端出现的是较少的。刚进入股市,必然有种胆战心惊,确实是这样,股市每天千变万化,所以,用爱炒股来先练练手也是不错的。除了模拟交易的功能外,爱炒股中得股票资讯也是非常丰富的,整合各大财经门户网站的信息,如同花顺、和讯、腾讯股票等,同时也包含有各大机构的调研报告供参考投资。513爱炒股软件系统设计预达到的目标该系统沿着移动端开发趋势,运用OBJECTIVEC开发语言,实现基于IOS系统平台的集股票资讯、投资参考、模拟炒股于一体的IPHONE手机应用软件。2爱炒股软件开发环境21开发工具该应用软件使用的开发工具为XCODE51。目前XCODE已更新到61版本,在该应用中主要使用XCODE51进行开发,在后续的更新和维护中采用的是XCODE61。22开发语言目前该软件使用的开发语言为OBJECTIVEC。当下市场上比较流行于IOS应用开发的语言是OC和SWIFT,但是由于SWIFT还不是太稳定,有很多语言规范还在不断的完善中,所以ISTOCK应用主要采用OBJECTIVEC语言进行编码开发。23数据抓包工具该软件使用的抓包工具为PAROS。24第三方框架该应用中主要使用了以下几种第三方框架表21第三方框架框架说明AFNETWORKING一个轻量级的网络请求API类库COREPLOT开源矢量图形库GDATAXMLNODE解析XML数据的类库MJREFRESH数据刷新和加载SDWEBIMAGE提供图片异步缓存的机制SHARESDK新浪微博登录、分享XCMULTISORTTABLEVIEW多级表格XGSDK腾讯信鸽远程推送63爱炒股软件数据接口介绍31数据类型介绍在爱炒股软件中通过请求数据后返回的数据类型主要有字符串、XML和JSON三种。1、字符串类型例如,通过GET请求后,返回的数据为以下结果VARHQ_STR_SH601688“华泰证券,1393,1266,1393,1393,1393,1393,000,2877472,40083185,62863728,1393,184800,1392,51600,1391,43900,1390,15000,1389,0,000,0,000,0,000,0,000,0,000,20141126,150305,00“对于字符串类型的数据来说,缺点之处在于没有明显的数据结构,不方便解析。2、XML类型在获取大部分的股票资讯类的接口时,返回的都是XML类型的数据5686547403、JSON类型对于返回数据类型如下的格式7“CODE“0,“DATA“01/AVERATIO/0“BD_CODE“PT013300“,“BD_NAME“保险“,“BD_ZD“1926“,“BD_ZDF“693“,“BD_ZXJ“29706“,“NZG_CODE“SH601336“,“NZG_NAME“新华保险“,“NZG_ZD“350“,“NZG_ZDF“999“,“NZG_ZXJ“3853“,32数据接口介绍数据接口主要从新浪股票、腾讯股票、同花顺、和讯股票接口获取,数据类型有STRING、JSON、XML三种。具体数据接口详见附录一。4爱炒股软件需求分析41爱炒股软件系统的可行性分析ISTOCK主要面向的群体是想体验炒股并且毫无经验的人群,该软件正是为他们提供了他们的所需。模拟炒股,较为真实的模拟显示股票交易动作,模拟炒股中提供了买、卖、撤单三个模块,进行仿真模拟交易,让用户较为真实的感受股票交易的过程,以及学习和分析如何进行择股、投资组合等。42爱炒股软件系统功能需求分析根据系统功能划分,ISTOCK应用详细需求描述如下1、自选股功能需求该功能为一个基本功能,上海证券交易所和深圳证券交易所的两市股票超过三千只,用户可以根据自己的选择偏好来添加关注的股票,查看自选股相关信息,同时根据关注度的不同调整对自选股的排序等。82、大盘指数功能需求大盘指数是对股票交易的一个参考,在选择选择股票交易时,可以关注该股所在行业或者板块的涨跌幅。同时,对于偏好交易涨停股或者跌停股的用户,可以随时关注其中涨停榜和跌停榜股票,以及能够在涨停分析中查看涨停原因及相关概念,以便用户能够在相关概念中发掘低价股,逢低买进。3、我的账户功能需求在模拟交易中,我的账户占有很重要的作用。用户所有的交易信息均能在我的账户中查看到,并且用户能够很清晰明了的看到当前持仓的盈亏。同时,用户能够查看当前资产的构成情况等。4、模拟交易功能需求模拟交易模块为该应用的主要模块,用户通过该模块进行模拟买卖交易,以及撤单。同时,可以查看当日交割单等信息。5、决策模块需求该功能通过筛选各大机构的分析报告,给予用户更多投资信息,一边用户能够清晰的了解当前投资机构的动向,以及把握市场的热门股。6、股市资讯功能需求该模块有新闻和直播两大类,用户通过该模块能够获得第一手股市讯息,实时关注股市动态,把握出手时机。7、设置功能需求用户根据自身行为偏好、相关网络环境的变化等进行个性化设置,包行情刷新频率、涨跌颜色、主题等等。95爱炒股软件系统设计爱炒股手机软件的设计是集股票信息、资讯、模拟炒股于一体的基于IOS操作系统的一款手机应用软件。51爱炒股软件系统总体架构设计图51ISTOCK系统功能架构52自选股模块自选股模块,用户可以自定义添加关注的股票,并查看该所的相关信息。(1)添加、删除自选股;(2)按当前价格、涨跌幅排序;(3)查看该股详细信息,包括基本信息和详细信息,基本信息有股票当前价格、涨跌幅度、涨跌幅百分比、今开、最高、最低、成交量、交易五档;详细信息有今开、昨收、涨停、跌停、最高、最低、外盘、内盘、换手率、市盈率、振幅、市净率、成交量、成交额、流通值、总市值;(4)快速下单交易快买、快卖、快撤;(5)论股实时更新该股最新帖子数据;(6)公告企业相关公告及业绩报告;(7)F10包含该股公司的基本资料,财务数据,股东情况、财务评估;(8)分享功能支持新浪微博、微信好友、微信朋友圈、短信等平台分享;10(9)查看该股日K、周K、月K线图;(10)查看该股的个股新闻和该股所属的行业新闻。图52自选股界面图53自选股详情界面图54K线图图55个股新闻53大盘指数模块大盘指数模块,提供市场主要指数信息,以及热门板块等。(1)查看各个市场的主要指数,包括上证指数、深证指数、道琼斯指数、纳斯达克、恒生指数、11日经指数、台湾加权、新加坡等主要指数;(2)排行榜;应用中每个榜单中对前十条数据进行显示,点击更多按钮可获得更多排名;(3)涨停分析;位于涨停榜中,分析涨停榜中股票涨停原因,以及分析该股所属板块或者相关概念;(4)热门板块;提供当前走势最好的几大板块,点击更多板块即可查看更多板块相关指数;(5)股指欧美指数、亚太指数、大宗商品、外汇市场、人民币牌价等。图56沪深指数及排行榜图57ISTOCK系统功能架构图58其他指数图59涨停分析1254我的账户模块(1)我的账户查看当前资产状况;(2)我的持仓查看当前购买股票市值;(3)投资收益查看账户盈亏情况,以及当前购买股票盈亏;(4)交易记录用户可通过时间段来进行查询交易记录。图510个人中心图511我的持仓图512投资盈亏图513资金明细1355模拟委托交易模块模拟市场进行交易,可以进行买入、卖出、撤单,以及查看我的持仓、当日委托、当日成交、查询资金、资金明细、股东资料等;(1)买入当输入购买股票代码时,自动填充该股所有信息,并结合模拟账户计算出可委托数量;(2)卖出结合模拟账户,自动填充可卖数量;(3)撤单当买进股票时,竞卖价大于委托价格时,可撤单,即取消买进;当卖出股票时,竞买价小于委托价格时,可撤单;(4)我的持仓用户可查看当前账户买进的所有股票的余额、可用余额、冻结数量、市价、成本、盈亏值、盈亏比例、市值、股票代码、市场类别等信息;(5)当日委托查看当日委托单;(6)当日成交查看当日所有成交单;(7)查询资金快捷查询账户的币种类别、余额、可用、冻结、股票、资产等信息;(8)资金明细查询所有交易中资金的动向;(9)登录和退出最初进入该模拟交易时,需进行登录,无账号可注册后登录。图514模拟交易界面图515买入操作界面1456决策模块(1)个股报告提供机构对某些个股的评级分析和投资指导意见等;(2)行业报告提供机构对行业的评测分析报告;(3)机构晨报投资机构每日推荐个股;(4)策略报告投资机构投资策略建议。图516个股报告图517策略报告57股市资讯模块该模块通过以下6个小部分来呈现股市重要信息(1)股市要闻(2)滚动新闻(3)投资机会(4)自选股新闻(5)更多(6)股市直播15图518股票资讯界面一图519股票资讯界面二58设置模块(1)行情刷新频率设置用户可分别设置在2G/3G/4G和WIFI下数据刷新的频率。设置可选项非WIFI网络环境(不刷新、5秒、15秒、30秒和60秒)、WIFI网络环境(不刷新、5秒),默认均为不刷新;(2)显示设置用户可根据自身喜好及习惯,进行显示设置,设置选项有红涨绿跌、绿涨红跌。默认为红涨绿跌;(3)清楚缓存缓存中的数据来源主要是走势图、K线图及微博登陆;(4)切换主题主题主要是对NAVIGATIONBAR的颜色设置,设置选项有红色、蓝色,默认为红色;(5)夜间模式提供用户在夜间使用习惯,降低亮度;(6)开启指纹支付交易该功能仅支持IPHONE6、6PLUS机型,当开启该功能后,在进行交易时,对交易信息的确定通过指纹来确定;(7)版本版本号。16图520设置界面图521行情刷新平率设置界面6爱炒股软件系统实现ISTOCK应用104版本已成功上线至苹果APPSTORE应用商店,通过搜索关键词“ISTOCK”、“模拟炒股”即可搜索到。关于该应用的具体详细上线信息及下载地址详见附录二。61数据的抓取与解析611数据的抓取应用中的数据主要来源于同花顺、新浪股票、和讯股票、自选股(腾讯)、雅虎等。这些数据来源所返回的数据类型、格式也截然不同。应用中数据的抓包在MAC环境下所使用的工具是PAROS。(1)使移动端和电脑在同一个网段;(2)在移动端上设置HTTP代理,如图61;(3)启动PAROS,设置LOCALPROXY中的ADRESS和PORT,如图62;(4)然后运行移动端上程序即可看到数据包。17图61数据抓取设置操作一图62数据抓取设置操作二612数据解析(1)返回类型为字符串格式以请求自选股模块中的数据为例,该接口来自于新浪股票,请求格式为HTTP/HQSINAJSCN/LIST市场股票代码,市场股票代码,例如HTTP/HQSINAJSCN/LISTSZ000001,SH601688,返回数据如下VARHQ_STR_SZ000001“平安银行,1388,1383,1391,1397,1375,1391,1392,26392797,365850445,12000,1391,87282,1390,18800,1389,77245,1388,44377,1387,94400,1392,134301,1393,248200,1394,1051131,1395,106360,1396,20150121,100540,00“VARHQ_STR_SH601688“华泰证券,2199,2121,2204,2211,2158,2204,2206,84642718,1853499325,1100,2204,30598,2203,38600,2202,81800,2201,340147,2200,500,2206,78954,2207,209000,2208,152106,2209,145240,2210,20150121,100537,00“有效数据为双引号中得内容,不同含义的数据用逗号隔开了。以平安银行(000001)为例18表61请求返回数据示例序号内容含义备注0平安银行股票名称11388今日开盘价21383昨日收盘价31391当前最新价41397今日最高价51375今日最低价61391竞买价“买一”报价71392竞卖价“卖一”报价826392797成交数量单位股(使用时以手为单位)9365850445成交金额单位元(使用时以万元为单位)1012000买一申股单位股(下同)111391买一报价1844377买五申股191387买五报价2094400卖一申股211392卖一报价28106360卖五申股291396卖五报价3020150121日期31100540时间解析思路(1)将返回的数据进行编码转换,否则会出现乱码的情况;(2)通过分号“;”判断请求股票的个数,并通过分号将其隔开;(3)去掉多余的返回数据“VARHQ_STR_”;(4)将等号“”转换成逗号“,”,并通过逗号再次将个股中得数据分割;(5)最后将分割号的数据逐个存到模型中。关键代码如下19VOIDDATAPARAINGNSMUTABLEDATADATA/编码的转换NSSTRINGENCODINGENCCFSTRINGCONVERTENCODINGTONSSTRINGENCODINGKCFSTRINGENCODINGGB_18030_2000/创建文字对象,定义为网站的回复内容NSSTRINGRETSTRNSSTRINGALLOCINITWITHDATADATAENCODINGENC/判断自选股的个数NSSTRINGREGEXSTR“NSSTRINGSTRINGFORSEARCHRETSTRNSERRORERRORNULLNSREGULAREXPRESSIONREGEXNSREGULAREXPRESSIONREGULAREXPRESSIONWITHPATTERNREGEXSTROPTIONSNSREGULAREXPRESSIONCASEINSENSITIVEERRORNSUINTEGERNUMBEROFMATCHESREGEXNUMBEROFMATCHESINSTRINGSTRINGFORSEARCHOPTIONS0RANGENSMAKERANGE0,STRINGFORSEARCHLENGTHNSARRAYRETSTRARRAYRETSTRCOMPONENTSSEPARATEDBYSTRING“FORINTI0I10161569968214关键代码如下23VOIDLOADDATANSSTRINGURL/所有的请求都需要AFHTTPREQUESTOPERATIONMANAGER发送请求AFHTTPREQUESTOPERATIONMANAGERMANAGERAFHTTPREQUESTOPERATIONMANAGERMANAGER/返回数据类型为二进制MANAGERRESPONSESERIALIZERAFHTTPRESPONSESERIALIZERSERIALIZER/GET请求MANAGERGETURLPARAMETERSNILSUCCESSAFHTTPREQUESTOPERATIONOPERATION,IDRESPONSEOBJECTSELFHEADERENDREFRESHINGSELFFOOTERENDREFRESHINGIFFLAG_DATAARRAYREMOVEALLOBJECTSGDATAXMLDOCUMENTXMLGDATAXMLDOCUMENTALLOCINITWITHDATARESPONSEOBJECTOPTIONS0ERRORNILNSARRAYNEWSXMLNODESFORXPATH“/XMLCOLUMN/PAGEITEMS/ITEM“ERRORNIL/NSLOG“,NEWSINTI0FORGDATAXMLELEMENTELEMENTINNEWSNSARRAYTITLEELEMENTNODESFORXPATH“/TITLE“ERRORNILNSARRAYTIMEELEMENTNODESFORXPATH“/CTIME“ERRORNILNSARRAYIMGURLELEMENTNODESFORXPATH“/IMGURL“ERRORNILNSARRAYURLELEMENTNODESFORXPATH“/URL“ERRORNILZMPIMPORTANTNEWSTABLEVIEWCELLNEWSNEWSZMPIMPORTANTNEWSTABLEVIEWCELLNEWSALLOCINITNEWSNEWSIMAGEURLIMGURL0STRINGVALUENEWSNEWSTITLETITLE0STRINGVALUENEWSNEWSTIMETIME0STRINGVALUENEWSNEWSURLURL0STRINGVALUEIFI0_DATAARRAYADDOBJECTNEWSI_IMPORTANTNEWSTABLEVIEWRELOADDATAFAILUREAFHTTPREQUESTOPERATIONOPERATION,NSERRORERRORNSLOG“请求失败“,ERROR2462数据的请求及刷新621数据的请求在ISTOCK应用中,数据的请求操作是通过GET请求完成,即通过URL的方式请求获取相关数据。为了用户有着良好的体验效果,主要通过异步请求的方式。关键代码NSSTRINGURLSTRNSSTRINGSTRINGWITHFORMAT“HTTP/HQSINAJSCN/LIST“,TEMPSTR/请求对象NSURLREQUESTREQUESTNSURLREQUESTREQUESTWITHURLNSURLURLWITHSTRINGURLSTRNSURLCONNECTIONCONNECTIONWITHREQUESTREQUESTDELEGATESELF通过NSURLCONNECTION类来实现数据的异步加载操作,获取的数据需要在代理的方法中进行实现。另外,为了增强用户的体验性,需要对加载做一个时间设定,通过REQUEST的一个属性TIMEOUTINTERVAL来实现,例如REQUESTTIMEOUTINTERVAL150/请求时间限制在设置后,如果请求数据超过该设定时间,程序就会进入到CONNECTIONNSURLCONNECTIONCONNECTIONDIDFAILWITHERRORNSERRORERROR这个方法中。关键代码VOIDCONNECTIONNSURLCONNECTIONCONNECTIONDIDRECEIVERESPONSENSURLRESPONSERESPONSE_DATALENGTH0VOIDCONNECTIONNSURLCONNECTIONCONNECTIONDIDRECEIVEDATANSDATADATA_DATAAPPENDDATADATAVOIDCONNECTIONDIDFINISHLOADINGNSURLCONNECTIONCONNECTIONSELFDATAPARAING_DATAVOIDCONNECTIONNSURLCONNECTIONCONNECTIONDIDFAILWITHERRORNSERRORERRORKVNPROGRESSSHOWERRORWITHSTATUS“请求数据失败“622NSTIMER定时刷新NSTIMER主要用在自选股数据的刷新,通过设置刷新频率来控制其请求数据的次数。考虑到在2G网的状态下,网络请求数据相对较慢,会对用户的体验造成一定的影响,所以默认刷新频率设置为不刷新。当设置其刷新频率为5S、15S、30S、60S时,通过全局变量REFERSHFREQUENCYWITHOUTWIFI和REFERSHFREQUENCYWITHWIFI进行控制。25/2G/3G/4G网下得刷新频率/PROPERTYNONATOMIC,ASSIGNINTREFERSHFREQUENCYWITHOUTWIFI/在WIFI下得刷新频率/PROPERTYNONATOMIC,ASSIGNINTREFERSHFREQUENCYWITHWIFI当改变其刷新频率时,不能只是简单地进行赋值操作,而是首先判断是否有计时器TIMER在线程中,如果在那么需要将其置为NIL后,才能进行赋值操作。关键代码/先用ISVALID先判断是否还在线程中IFTIMERISVALIDYESTIMERINVALIDATETIMERNIL/刷新频率等于0,表示不刷新IFAPPREFERSHFREQUENCYWITHOUTWIFI0/定时刷新TIMERNSTIMERSCHEDULEDTIMERWITHTIMEINTERVALAPPREFERSHFREQUENCYWITHOUTWIFITARGETSELFSELECTORSELECTORLOADDATAUSERINFONILREPEATSYESELSETIMERINVALIDATETIMERNILNSLOG“停止刷新“当然,如果当前页面消失后,NSTIMER依然存留在线程中,这固然是不好的,所以当页面消失时将NSTIMER进行暂停或者关闭,当页面即将出现时,再将其开启,这也对线程的一种优化,提升应用的运行效率。关键代码VOIDVIEWDIDDISAPPEARBOOLANIMATEDSUPERVIEWDIDDISAPPEARANIMATEDTIMERSETFIREDATENSDATEDISTANTFUTUREVOIDVIEWWILLAPPEARBOOLANIMATEDSUPERVIEWWILLAPPEARANIMATEDTIMERSETFIREDATENSDATEDISTANTPAST_TABLEVIEWRELOADDATA2663数据库631数据库表1、ASTOCKLIST表62股票表属性类型说明IDINTEGER股票IDCODETEXT股票代码NAMETEXT股票名称PINYINTEXT股票拼音MARKETTEXT市场2、TRADINGACCOUNT表63账户表属性类型说明ACCOUNTNUMBERTEXT用户名PASSWORDTEXT登陆密码INITIALMONEYFLOAT初始金额YUEMONEYFLOAT剩余金额KEYONGMONEYFLOAT可用资金DONGJIEMONEYFLOAT冻结资金GUPIAOMONEYFLOAT股票资产ZICHANMONEYFLOAT总资产BUNDLEPHONENUMBERTEXT绑定号码3、CHICANGTABLE表64持仓表属性类型说明STOCKNAMETEXT股票名称STOCKCODETEXT股票代码YUEAMOUNTINTEGER余额KEYONGAMOUNTINTEGER可用数量DONGJIEAMOUNTINTEGER冻结数量MARKETPRICEFLOAT市场价格COSTFLOAT成本价格27PROFITANDLOSSFLOAT盈亏PROFITANDLOSSPRECENTFLOAT盈亏比MARKETVALUEFLOAT市场价值GUDONGNUMBERTEXT股东账号MARKETSEGMENTTEXT市场DEALTIMETEXT交易时间4、HISTROYSEARCH表65持仓表属性类型说明CODETEXT股票代码NAMETEXT股票名称PINYINTEXT股票拼音MARKETTEXT市场5、OPTIONALSTOCK表66自选股表属性类型说明STOCKCODETEXT股票代码STOCKNAMETEXT股票名称STOCKPLATETEXT市场6、TRADINGRECORDTABLE表67交易记录表属性类型说明TRADINGTIMETEXT成交时间TRADINGSUMMARYTEXT成交内容TRADINGMONEYFLOAT成交金额TOTALMONEYFLOAT总资产TRADINGACCOUNTTEXT交易账户7、WEITUOTABLE表68委托表属性类型说明ISCANCELBOOL是否可撤WAYTEXT委托方式(买/卖)PRICEFLOAT委托价格28AMOUNTINTEGER委托数量MONEYFLOAT委托金额STOCKNAMETEXT股票名称STOCKCODETEXT股票代码GUDONGNUMBERTEXT股东账户MARKETSEGMENTTEXT市场STATUSTEXT成交状态TIMETEXT委托时间632数据库的单例实现在对数据库中的数据中进行操作时必须保证每次操作完成后才能进行下一次的操作,所以该类只能有一个实例,所以需要使用单例,通过它封装一个共享的资源,提供一个固定的实例创建方法及一些实例访问的接口。关键代码如下ZMPDATABASESHAREINSTANCESYNCHRONIZED_ZMPDATABASEIF_ZMPDATABASE_ZMPDATABASEZMPDATABASEALLOCINITRETURN_ZMPDATABASE64数据的存储641图片的缓存处理ISTOCK应用中有大量的图片数据,这些都是比较耗流量的,因此为了用户着想必须对图片进行缓存处理。通过SDWEBIMAGE第三方库来处理图片缓存。SDWEBIMAGE首先会更根据URL在本地缓存中查找图片,如果该图片存在就通过回调机制来显示图片;如果该图片不存在,那么它将会根据URL地址进行下载,由NSURLCONNECTION来做异步下载,实现相关的DELEGATE代理方法来判断图片下载中、下载完成和下载失败所处状态。在CONNECTIONDIDRECEIVEDATA该方法中利用IMAGEIO可以实现图片加载效果之类的特效。在CONNECTIONDIDFINISHLOADING该代理方法中判断图片数据全部下载完成之后交给SDWEBIMAGEDECODER进行图片的解码处理。图片解码处理在一个NSOPERATIONQUEUE完成,并不会影响主线程UI,而造成的卡顿现象1。642用户信息的缓存用户登录有两种方式,一是通过本地注册后登录;二是直接通过微博账号登录。用户通过本地注29册的方式进行登录时,通过USERDEFAULT来对用户的信息进行存储。用户通过第二种方式登录时,使用PARSE第三方库自动对用户的信息进行一段时间的缓存。/将登录用户信息存储到本地NSUSERDEFAULTSUDNSUSERDEFAULTSSTANDARDUSERDEFAULTSUDSETOBJECTAPPUSERUSERNAMEFORKEY“USERNAME“UDSYNCHRONIZE/读取用户信息NSUSERDEFAULTSUDNSUSERDEFAULTSSTANDARDUSERDEFAULTSZMPUSERUSERZMPUSERALLOCINITUSERUSERNAMEUDOBJECTFORKEY“USERNAME“643交易数据的存储当用户进行模拟交易时会产生大量数据,例如交易股票价格、数量、成交时间等等,该类数据主要以数据库的存储方式进行存储。通过第三方框架FMDB对数据库进行读写操作,并封装成方法(插入、删除、修改、读取等),主要有以下几类操作方法SIMPLEDATABASESHAREDINSTANCEBOOLINSERTINTODATABASENEWSMODELMODELBOOLDELETEFROMDATABASEINTNEWSIDBOOLUPDATEDATABASENEWSMODELMODELNSMUTABLEARRAYSELECTFROMDATABASEVOIDCLOSEDATABASE65数据安全651MD5加密实现在IOS开发过程中,为了保证数据的安全,通常会进行一些加密操作,比如DES加密、MD5加密等。DES加密是可逆的,MD5加密目前来说一般是不可逆的。MD5即MESSAGEDIGESTALGORITHM5(信息摘要算法5),用于确保信息传输完整一致3,是计算机广泛使用的杂凑算法之一。在ISTOCK应用中,对用户的信息进行加密后存储。MD5加密算法最终产生128BIT固定长度,而在实际的应用开发中,通常是以16进制输出的,即产生32位16进制的字符。在随机产生的字符中大小写混杂在一起,之后可对其进行二次处理来产生32位大写或者小写字符串。关键代码如下;30NSSTRINGMD5HEXDIGESTNSSTRINGPASSWORDCONSTCHARORIGINAL_STRPASSWORDUTF8STRINGUNSIGNEDCHARRESULTCC_MD5_DIGEST_LENGTHCC_MD5ORIGINAL_STR,STRLENORIGINAL_STR,RESULTNSMUTABLESTRINGHASHNSMUTABLESTRINGSTRINGFORINTI0IVMMINVMINDEXNSSTRINGSTRINGWITHFORMAT“D,D,D“,I,J,K437系统测试71兼容性测试该应用需要IOS71或更高版本。与IPHONE、IPAD。IPODTOUCH兼容,已针对IPHONE5、IPHONE6和IPHONE6PLUS优化。表71兼容性测试IOS60IOS70IOS80IPHONE4SIPHONE5IPHONE5SIPHONE6IPHONE6PLUS72性能测试对爱炒股软件的性能测试,主要对其做了快速启动测试和ACTIVITYMONITOR测试。1、快速启动测试(网络稳定的情况)快速启动测试主要是以使用INSTRUMENTS中的TIMEPROFILE来分析软件启动时的CPU消耗,并且以消耗CPU的数据为依据进行优化。从下图中,可以看到按炒股软件在整个启动过程中总共耗时5370毫秒,其中最主要的耗时部分为BOOLAPPLICATIONUIAPPLICATIONAPPLICATIONDIDFINISHLAUNCHINGWITHOPTIONSNSDICTIONARYLAUNCHOPTIONS该函数。在该方法中,生成当前UI以及对系统进行相关的全局设置等操作。图71快速启动测试结果442、ACTIVITYMONITOR测试ACTIVITYMONITOR会监控测试对象的运行环境,记录CPU、内存和I/O的一些指标,用于对比分析。在监控运行中可以得到当前时刻的CPU占用率、实际内训和虚拟内存等信息。同时使用ACTIVITYMONITOR可以进行多次运行结果对比,以此来对比当前运行结果和之前运行结果的差异。将爱炒股软件移植到手机,连接手机至MAC上,通过ACTIVITYMONITOR测试爱炒股APP,测试结果如下图在1分20的测试时间内,其CPU暂用率为15,占用时长为1分06秒。图72CPU和内存使用率概要图73稳定性测试稳定性测试涉及硬件平台、软件系统和具体的应用程序。在IOS测试领域中,猴子测试被作为稳定性测试的主要手段。该测试所使用的测试脚本来源于HTTPS/GITHUBCOM/DOUBAN/YNM3K/BLOB/MASTER/ROBOT4IOS/UTIL/IOSMONKEY2JS。猴子测试即像猴子一样随意的没有规律的操作应用程序,其在每个操作后都做了截图保存,并且输出了被操作空间所有的父空间,因此,可以根据截图和空间之间的关系,很快的定位到问题。正因为猴子测试是随意没有规律的操作应用程序,那么该测试花费的时间也较长,以下为爱炒股软件经过稳定性测试后的结果,尚未出现崩溃的情况。45图73猴子测试结果8总结该应用包含自选股、大盘指数、我的帐户、模拟委托交易、决策、股票资讯和设置七大模块,基本实现模拟交易功能,具有新浪微博、微信好友、微信朋友圈等社交平台的分享功能,能够实现远程推送通知,同时实现资产组合最小马科维茨方差算法。应用中使用XIB和代码混合的方式设计UI界面,运用MVC模型视图控制器设计模式,使用通知、代理、单例等传值方式,通过数据库、NSUSERDEFAULT进行数据的存储,以异步数据加载和多线程的编程方式提升应用的运行效率和用户的使用体验。开发过程中对应用版本控制做了良好的记录,详情可见附录三。ISTOCK104版已成功上线至苹果APPSTORE应用商店,该应用需要IOS71或更高版本。与IPHONE、IPAD、IPODTOUCH兼容,已针对IPHONE5、IPHONE6和IPHONE6PLUS优化。ISTOCK应用针对的用户群体为刚接触股市或者准备接触股市的特定群体,ISTOCK的模拟炒股和资产组合分析计算能够有效的帮助该群体迅速了解真实股票交易流程以及增加选股交易的经验。在后续的迭代开发中,将进一步完善模拟交易的功能,使之与真实交易更加吻合,以及不断验证马科维茨资产组合模型在实际运用中的正确性,并不断地优化算法。参考文献1ZHUN36SDWEBIMAGE缓存图片的机制EB/OLHTTP/BLOGCSDNNET/ZHUN36/ARTICLE/DETAILS/8900327,2013/5/8462IOSDEVELOPERLIBRARYAPPLEPUSHNOTIFICATIONSERVICEJ/OLHTTPS/DEVELOPERAPPLECOM/LIBRARY/IOS/DOCUMENTATION/NETWORKINGINTERNET/CONCEPTUAL/REMOTENOTIFICATIONSPG/CHAPTERS/APPLEPUSHSERVICEHTML/APPLE_REF/DOC/UID/TP40008194CH100SW9,2015/3/93XN4545945MD5加密与网络数据安全EB/OLHTTP/BLOGCSDNNET/XN4545945/ARTICLE/DETAILS/36755117,2014/7/44万楚军论股票投资组合的风险收益及组合策略J长江大学学报,200595975吴晓求证券投资学M北京中国人民大学出版社,20083503706甄伟丽,何琪股票投资组合案例分析J当代经理人,2006154315447ACTIVITYMONITORFORIOSUSINGINSTRUMENTSINXCODEJ/OLHTTP/WWWPODFEETCOM/BLOG/TUTORIALS5/ACTIVITYMONITORFORIOSUSINGINSTRUMENTSINXCODE/8芈军IOS测试指南M北京电子工业出版社20149王浩IOS应用开发最佳实践M北京电子工业出版社201347THEDEVELOPMENTOFAPPLICATIONBASEDONIOSPLATFORMISTOCKZHANGMINPENG105032011126ADVISORHUANGXINYIMAJORINCOMPUTERSCIENCEANDTECHNOLOGYCOLLEGEOFMATHEMATICSANDCOMPUTERSCIENCE【ABSTRACT】NOWINANECONOMYISTHERAPIDDEVELOPMENTOFSOCIETY,MOREANDMOREPEOPLEBEGANTOINVESTTOTHEFINANCIALMARKETBETWEENTHEIGNORANTANDREAL,ISTOCKAPPLICATIONSOFTWAREHASBEENCOMETHISAPPISIOSOPERATINGSYSTEMOFAMOBILEPHONEAPPLICATIONSOFTWAREBASEDONTHESETOFSTOCKINFORMATION,STOCKMARKETSIMULATIONINONEUSINGOFASYNCHRONOUSLOADING,SINGLECASE,NOTICE,SUCHASTHECURRENTPOPULARTECHNOLOGYOFMVCANDSOONITGIVESPEOPLEAMOREAUTHENTICEXPERIENCE,LETYOUGETALONGWELLWITHTHESTOCKMARKETITINCLUDEDINVESTMENTDECISION,PORTFOLIO,INORDERTOLAYTHEFOUNDATIONFORCOMBATINGANDITALSOINCLUDEDWEIBOLOGIN,ANDITCANUSEWECHATCIRCLEOFFRIENDSTOSHARE,LETMOREPEOPLETOPAYATTENTIONTOTHISFIELDOFTHEWISE,THEBRAVEWARGAMEINSETTINGTHEBAR,YOUCOULDBEMOREPERSONALIZEDBECAUSETHEREMOTEPUSH,SOYOUARENOTAPERSONINBATTLE,WEPAYATTENTIONTOCHANGESINTHEMARKETTOGETHER【KEYWORDS】ISTOCKAPPLICATIONSOFTWAREIOS48附录一数据接口1、单个股票HTTP/HQSINAJSCN/LISTSH601688(来自新浪)2、多个股票HTTP/HQSINAJSCN/LISTSH601003,SH601001(来自新浪)3、大盘指数查询接口(1)上证指数HTTP/HQSINAJSCN/LISTS_SH000001(2)深证指数HTTP/HQSINAJSCN/LISTS_SZ399001(3)道琼斯HTTP/HQSINAJSCN/LISTINT_DJI(4)纳斯达克HTTP/HQSINAJSCN/LISTINT_NASDAQ(5)恒生HTTP/HQSINAJSCN/LISTINT_HANGSENG(6)日经指数HTTP/HQSINAJSCN/LISTINT_NIKKEI(7)台湾加权HTTP/HQSINAJSCN/LISTB_TWSE(8)新加坡HTTP/HQSINAJSCN/LISTB_FSSTI4、股票详细数据接口HTTP/QTGTIMGCN/QSZ000001(来自腾讯)5、股票走势图数据接口(1)分时走势图HTTP/IMAGESINAJSCN/NEWCHART/MIN/N/SH000001GIF(2)日K线走势图HTTP/IMAGESINAJSCN/NEWCHART/DAILY/N/SH000001GIF(3)周K线走势图HTTP/IMAGESINAJSCN/NEWCHART/WEEKLY/N/SH000001GIF(4)月K线走势图HTTP/IMAGESINAJSCN/NEWCHART/MONTHLY/N/SH000001GIF6、个股新闻数据接口HTTP/NEWS10JQKACOMCN/STOCK_MLIST/SZ000001_1_1_1_1/7、行业新闻数据接口HTTP/NEWS10JQKACOMCN/STOCK_MLIST/SZ000001_1_1_1_1/8、论股数据接口(1)最新HTTP/T10JQKACOMCN/APIPHPMETHODGROUPGETLATESTPOSTCODE601688LIMIT20RETURNJSONPIDALLOWHTML0(来自同花顺)(2)最热HTTP/T10JQKACOMCN/APIPHPMETHODGROUPGETSORTPOSTCODE601688LIMIT20PAGE0RETURNJSONALLOWHTML09、诊股数据接口(1)个股公告HTTP/WIAPIHEXUNCOM/SEARCH/STOCKNOTICEPHPCODE000001P1C20(来自和讯)HTTP/INFOWIAPIHEXUNCOM/MOBILE/000001/BULLETIN_LISTXHTMLV1(2)个股研报HTTP/WIAPIHEXUNCOM/SEARCH/STOCKREPORTPHPCODE000001P1C20(3)个股新闻HTTP/WIAPIHEXUNCOM/SEARCH/STOCKNEWSPHPCODE000001P1C2010、板块接口(1)热门板块49HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK251SORT15TYPE1START0END30HTTP/IFZQGTIMGCN/APPSTOCK/APP/MKTHS/RANKL100P1T01/AVERATIO来自腾讯HTTP/IFZQGTIMGCN/APPSTOCK/APP/MKTHS/INDUSTRYTPT010100(2)地域板块HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK250SORT15TYPE1START0END30(3)证监会行业板块HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK417SORT15TYPE1START0END30(4)ICB板块HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK249SORT15TYPE1START0END30(5)成分股HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK3438SORT15TYPE1START0END3011、股市资讯数据接口(1)要闻HTTP/NEWS10JQKACOMCN/HEADLINE_MLIST/1_0_1_1/(2)滚动HTTP/NEWS10JQKACOMCN/GUNDONG_MLIST/1_0_1_1/(3)机会HTTP/NEWS10JQKACOMCN/TZJH_MLIST/1_0_1_1/(4)自选股新闻HTTP/NEWS10JQKACOMCN/STOCK_MLIST/601519,002557,000100,600600,002024,600000,600015,600980,601998,600036_1_1_1_1/(5)更多HTTP/NEWS10JQKACOMCN/EQ_MLIST/1/12、股市直播数据接口HTTP/T10JQKACOMCN/CIRCLE/MOBILE/BROADINDEXJS13、决策数据接口(1)行业报告HTTP/WIAPIHEXUNCOM/NEWS/REPORTLISTPHPRT2P1C20(2)个股报告HTTP/WIAPIHEXUNCOM/NEWS/REPORTLISTPHPRT1P1C20(3)机构晨报HTTP/WIAPIHEXUNCOM/NEWS/REPORTLISTPHPRT3P1C20(4)策略报告HTTP/WIAPIHEXUNCOM/NEWS/REPORTLISTPHPRT4P1C20详细数据HTTP/WIAPIHEXUNCOM/NEWS/GETREPORTPHPID54750414、F10数据接口(1)基本资料HTTP/INFOWIAPIHEXUNCOM/MOBILE/601688/BASEXHTMLV1(2)财务数据HTTP/INFOWIAPIHEXUNCOM/NEW/000001/STOCK_FINANCE_LXHTML(3)股东情况HTTP/INFOWIAPIHEXUNCOM/MOBILE/000001/STOCK_HOLDERXHTMLV1(4)财务评估HTTP/INFOWIAPIHEXUNCOM/MOBILE/000001/STOCK_STARXHTMLV115、排行榜数据接口(1)涨幅榜HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK252START0END30TYPE1SORT1550(2)跌幅榜HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK252START0END30TYPE0SORT15(3)换手率榜HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK252START0END30TYPE1SORT25(4)成交量榜HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK252START0END30TYPE1SORT5(5)量比HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK252START0END30TYPE1SORT21(6)涨速HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK252START0END30TYPE1SORT16(7)振幅HTTP/QUOTEWIAPIHEXUNCOM/V3/RISEFALLBLOCK252START0END30TYPE1SORT1751附录二图标1、ISTOCK下载地址HTTPS/ITUNESAPPLECOM/CN/APP/ISTOCK/ID963625494LENMT82、ISTOCK项目图标图81图标3、ISTOCK首次启动图图82启动图一图83启动图二52附录三版本控制日期版本说明自选股模块实现自选股的添加和删除,查询自选股详情、K线图、个股及行业新闻,快速下单交易,论股,公告,F10,以及微博分享功能;大盘指数模块实现查看市场主要指数、涨幅榜、跌幅榜、换手率榜、振幅榜,板块个股,其他股指等功能;模拟交易模块实现模拟买入、卖出、撤单,查看当日委托、当日成交、资金明细、股东资料等功能;决策模块实现查看个股报告、行业报告、机构晨报、策略报告功能;股票资讯模块实现查看要闻、滚动、机会、自选股、更多、股市直播等功能;2014/11/5000设置模块实现夜间模式功能。修改股票停牌时的UI显示;2014/11/6

    注意事项

    本文(计本iPhone手机应用开发设计(爱炒股))为本站会员(今天)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    网站客服QQ:2881952447     

    copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

    备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!