计本 iPhone手机应用开发设计爱炒股.docx
- 文档编号:29526537
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:68
- 大小:4.99MB
计本 iPhone手机应用开发设计爱炒股.docx
《计本 iPhone手机应用开发设计爱炒股.docx》由会员分享,可在线阅读,更多相关《计本 iPhone手机应用开发设计爱炒股.docx(68页珍藏版)》请在冰豆网上搜索。
计本iPhone手机应用开发设计爱炒股
5-2'cang﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽市动态,把握出售算'suan﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽着税基﷽﷽一个单位,为进攻性及'ji﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽iP图u﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽、图标数字等。
﷽﷽﷽﷽用程序hone手机应用开发设计(爱炒股)
数学与计算机科学学院计算机科学与技术专业
105032011126张民鹏指导教师:
黄欣沂
【摘要】在如今一个经济正高速发展的社会里,越来越多的人开始将投资的目光移向金融市场。
在懵懂与实战之间,爱炒股(iStock)软件应运而生。
爱炒股手机软件的设计是集股票信息、资讯、模拟炒股于一体的基于IOS操作系统的一款手机应用软件。
运用异步加载、单例、通知、MVC等当前热门技术实现。
它给予更多人一次真实的体验,买入、卖出、撤单,让极佳的体验效果带你玩转股市。
投资决策、投资组合,为了实战而奠定基础。
微博登陆、微信朋友圈分享,让更多的人来关注这场智者的游戏、勇者的战争。
在设置栏,你可以更加个性化。
因远程推送,让你不是一个人在战斗,随时关注市场的变动。
【关键词】爱炒股;手机应用;软件;iOS
8总结45
1引言
1.1课题开发背景
根据TIOBE最新发布2014年10月的编程语言排行榜中,可以看到C、Java、Objective-C依旧处于榜单前三。
另外,Apple公司在9月份正式发布的Swift新的编程语言已悄然进入排行前二十的榜单中。
从这些数据中可以看到iOS系统逐渐在扩大市场规模。
图1-1TIOBE编程语言排行榜
【数据来源:
】
不论是iPhone的用户体验,还是硬件方面,都是目前极受广大消费者的喜爱。
基于iOS开发的手机应用产品,在市场中得覆盖率也是逐步在提高。
1.2爱炒股软件系统框架设计开发的现实意义
对于那些刚开始准备步入股市的哪些人来说,爱炒股这款软件是极其合适不过的了。
爱炒股手机软件的设计是集股票信息、资讯、模拟炒股于一体的基于IOS操作系统的一款手机应用软件。
当下,模拟炒股功能大部分是出现在PC端,而在移动端出现的是较少的。
刚进入股市,必然有种胆战心惊,确实是这样,股市每天千变万化,所以,用爱炒股来先练练手也是不错的。
除了模拟交易的功能外,爱炒股中得股票资讯也是非常丰富的,整合各大财经门户网站的信息,如同花顺、和讯、腾讯股票等,同时也包含有各大机构的调研报告供参考投资。
1.3爱炒股软件系统设计预达到的目标
该系统沿着移动端开发趋势,运用Objective-C开发语言,实现基于iOS系统平台的集股票资讯、投资参考、模拟炒股于一体的iPhone手机应用软件。
2爱炒股软件开发环境
2.1开发工具
该应用软件使用的开发工具为Xcode5.1。
目前Xcode已更新到6.1版本,在该应用中主要使用Xcode5.1进行开发,在后续的更新和维护中采用的是Xcode6.1。
2.2开发语言
目前该软件使用的开发语言为Objective-C。
当下市场上比较流行于iOS应用开发的语言是OC和Swift,但是由于Swift还不是太稳定,有很多语言规范还在不断的完善中,所以iStock应用主要采用Objective-C语言进行编码开发。
2.3数据抓包工具
该软件使用的抓包工具为paros。
2.4第三方框架
该应用中主要使用了以下几种第三方框架:
表2-1第三方框架
框架
说明
AFNetworking
一个轻量级的网络请求api类库
CorePlot
开源矢量图形库
GDataXMLNode
解析xml数据的类库
MJRefresh
数据刷新和加载
SDWebImage
提供图片异步缓存的机制
ShareSDK
新浪微博登录、分享
XCMultiSortTableView
多级表格
XGSDK
腾讯信鸽远程推送
3爱炒股软件数据接口介绍
3.1数据类型介绍
在爱炒股软件中通过请求数据后返回的数据类型主要有字符串、xml和json三种。
1、字符串类型
例如,通过GET请求后,返回的数据为以下结果:
对于字符串类型的数据来说,缺点之处在于:
没有明显的数据结构,不方便解析。
2、xml类型
在获取大部分的股票资讯类的接口时,返回的都是xml类型的数据:
3、json类型
对于返回数据类型如下的格式:
3.2数据接口介绍
数据接口主要从新浪股票、腾讯股票、同花顺、和讯股票接口获取,数据类型有:
string、json、xml三种。
具体数据接口详见附录一。
4爱炒股软件需求分析
4.1爱炒股软件系统的可行性分析
iStock主要面向的群体是想体验炒股并且毫无经验的人群,该软件正是为他们提供了他们的所需。
模拟炒股,较为真实的模拟显示股票交易动作,模拟炒股中提供了买、卖、撤单三个模块,进行仿真模拟交易,让用户较为真实的感受股票交易的过程,以及学习和分析如何进行择股、投资组合等。
4.2爱炒股软件系统功能需求分析
根据系统功能划分,iStock应用详细需求描述如下:
1、自选股功能需求
该功能为一个基本功能,上海证券交易所和深圳证券交易所的两市股票超过三千只,用户可以根据自己的选择偏好来添加关注的股票,查看自选股相关信息,同时根据关注度的不同调整对自选股的排序等。
2、大盘指数功能需求
大盘指数是对股票交易的一个参考,在选择选择股票交易时,可以关注该股所在行业或者板块的涨跌幅。
同时,对于偏好交易涨停股或者跌停股的用户,可以随时关注其中涨停榜和跌停榜股票,以及能够在涨停分析中查看涨停原因及相关概念,以便用户能够在相关概念中发掘低价股,逢低买进。
3、我的账户功能需求
在模拟交易中,我的账户占有很重要的作用。
用户所有的交易信息均能在我的账户中查看到,并且用户能够很清晰明了的看到当前持仓的盈亏。
同时,用户能够查看当前资产的构成情况等。
4、模拟交易功能需求
模拟交易模块为该应用的主要模块,用户通过该模块进行模拟买卖交易,以及撤单。
同时,可以查看当日交割单等信息。
5、决策模块需求
该功能通过筛选各大机构的分析报告,给予用户更多投资信息,一边用户能够清晰的了解当前投资机构的动向,以及把握市场的热门股。
6、股市资讯功能需求
该模块有新闻和直播两大类,用户通过该模块能够获得第一手股市讯息,实时关注股市动态,把握出手时机。
7、设置功能需求
用户根据自身行为偏好、相关网络环境的变化等进行个性化设置,包行情刷新频率、涨跌颜色、主题等等。
5爱炒股软件系统设计
爱炒股手机软件的设计是集股票信息、资讯、模拟炒股于一体的基于IOS操作系统的一款手机应用软件。
5.1爱炒股软件系统总体架构设计
图5-1iStock系统功能架构
5.2自选股模块
自选股模块,用户可以自定义添加关注的股票,并查看该所的相关信息。
(1)添加、删除自选股;
(2)按当前价格、涨跌幅排序;
(3)查看该股详细信息,包括基本信息和详细信息,基本信息有:
股票当前价格、涨跌幅度、涨跌幅百分比、今开、最高、最低、成交量、交易五档;详细信息有:
今开、昨收、涨停、跌停、最高、最低、外盘、内盘、换手率、市盈率、振幅、市净率、成交量、成交额、流通值、总市值;
(4)快速下单交易:
快买、快卖、快撤;
(5)论股:
实时更新该股最新帖子数据;
(6)公告:
企业相关公告及业绩报告;
(7)F10:
包含该股公司的基本资料,财务数据,股东情况、财务评估;
(8)分享功能:
支持新浪微博、微信好友、微信朋友圈、短信等平台分享;
(9)查看该股日K、周K、月K线图;
(10)查看该股的个股新闻和该股所属的行业新闻。
图5-2自选股界面图5-3自选股详情界面
图5-4K线图图5-5个股新闻
5.3大盘指数模块
大盘指数模块,提供市场主要指数信息,以及热门板块等。
(1)查看各个市场的主要指数,包括:
上证指数、深证指数、道琼斯指数、纳斯达克、恒生指数、日经指数、台湾加权、新加坡等主要指数;
(2)排行榜;应用中每个榜单中对前十条数据进行显示,点击更多按钮可获得更多排名;
(3)涨停分析;位于涨停榜中,分析涨停榜中股票涨停原因,以及分析该股所属板块或者相关概念;
(4)热门板块;提供当前走势最好的几大板块,点击更多板块即可查看更多板块相关指数;
(5)股指:
欧美指数、亚太指数、大宗商品、外汇市场、人民币牌价等。
图5-6沪深指数及排行榜图5-7iStock系统功能架构
图5-8其他指数图5-9涨停分析
5.4我的账户模块
(1)我的账户:
查看当前资产状况;
(2)我的持仓:
查看当前购买股票市值;
(3)投资收益:
查看账户盈亏情况,以及当前购买股票盈亏;
(4)交易记录:
用户可通过时间段来进行查询交易记录。
图5-10个人中心图5-11我的持仓
图5-12投资盈亏图5-13资金明细
5.5模拟委托交易模块
模拟市场进行交易,可以进行买入、卖出、撤单,以及查看我的持仓、当日委托、当日成交、查询资金、资金明细、股东资料等;
(1)买入:
当输入购买股票代码时,自动填充该股所有信息,并结合模拟账户计算出可委托数量;
(2)卖出:
结合模拟账户,自动填充可卖数量;
(3)撤单:
当买进股票时,竞卖价大于委托价格时,可撤单,即取消买进;当卖出股票时,竞买价小于委托价格时,可撤单;
(4)我的持仓:
用户可查看当前账户买进的所有股票的余额、可用余额、冻结数量、市价、成本、盈亏值、盈亏比例、市值、股票代码、市场类别等信息;
(5)当日委托:
查看当日委托单;
(6)当日成交:
查看当日所有成交单;
(7)查询资金:
快捷查询账户的币种类别、余额、可用、冻结、股票、资产等信息;
(8)资金明细:
查询所有交易中资金的动向;
(9)登录和退出:
最初进入该模拟交易时,需进行登录,无账号可注册后登录。
图5-14模拟交易界面图5-15买入操作界面
5.6决策模块
(1)个股报告:
提供机构对某些个股的评级分析和投资指导意见等;
(2)行业报告:
提供机构对行业的评测分析报告;
(3)机构晨报:
投资机构每日推荐个股;
(4)策略报告:
投资机构投资策略建议。
图5-16个股报告图5-17策略报告
5.7股市资讯模块
该模块通过以下6个小部分来呈现股市重要信息:
(1)股市要闻
(2)滚动新闻
(3)投资机会
(4)自选股新闻
(5)更多
(6)股市直播
图5-18股票资讯界面一图5-19股票资讯界面二
5.8设置模块
(1)行情刷新频率设置:
用户可分别设置在2G/3G/4G和WiFi下数据刷新的频率。
设置可选项:
非WiFi网络环境(不刷新、5秒、15秒、30秒和60秒)、WiFi网络环境(不刷新、5秒),默认均为不刷新;
(2)显示设置:
用户可根据自身喜好及习惯,进行显示设置,设置选项有:
红涨绿跌、绿涨红跌。
默认为红涨绿跌;
(3)清楚缓存:
缓存中的数据来源主要是走势图、K线图及微博登陆;
(4)切换主题:
主题主要是对navigationBar的颜色设置,设置选项有:
红色、蓝色,默认为红色;
(5)夜间模式:
提供用户在夜间使用习惯,降低亮度;
(6)开启指纹支付交易:
该功能仅支持iPhone6、6Plus机型,当开启该功能后,在进行交易时,对交易信息的确定通过指纹来确定;
(7)版本:
版本号。
图5-20设置界面图5-21行情刷新平率设置界面
6爱炒股软件系统实现
iStock应用1.0.4版本已成功上线至苹果AppStore应用商店,通过搜索关键词“iStock”、“模拟炒股”即可搜索到。
关于该应用的具体详细上线信息及下载地址详见附录二。
6.1数据的抓取与解析
6.1.1数据的抓取
应用中的数据主要来源于同花顺、新浪股票、和讯股票、自选股(腾讯)、雅虎等。
这些数据来源所返回的数据类型、格式也截然不同。
应用中数据的抓包在mac环境下所使用的工具是paros。
(1)使移动端和电脑在同一个网段;
(2)在移动端上设置HTTP代理,如图6-1;
(3)启动paros,设置LocalProxy中的Adress和Port,如图6-2;
(4)然后运行移动端上程序即可看到数据包。
图6-1数据抓取设置操作一图6-2数据抓取设置操作二
6.1.2数据解析
(1)返回类型为字符串格式
以请求自选股模块中的数据为例,该接口来自于新浪股票,请求格式为:
例如:
有效数据为双引号中得内容,不同含义的数据用逗号隔开了。
以平安银行(000001)为例:
表6-1请求返回数据示例
序号
内容
含义
备注
0
平安银行
股票名称
1
13.88
今日开盘价
2
13.83
昨日收盘价
3
13.91
当前最新价
4
13.97
今日最高价
5
13.75
今日最低价
6
13.91
竞买价
“买一”报价
7
13.92
竞卖价
“卖一”报价
8
26392797
成交数量
单位:
股(使用时以手为单位)
9
365850445
成交金额
单位:
元(使用时以万元为单位)
10
12000
买一申股
单位:
股(下同)
11
13.91
买一报价
……
……
……
18
44377
买五申股
19
13.87
买五报价
20
94400
卖一申股
21
13.92
卖一报价
……
……
……
28
106360
卖五申股
29
13.96
卖五报价
30
2015-01-21
日期
31
10:
05:
40
时间
解析思路:
(1)将返回的数据进行编码转换,否则会出现乱码的情况;
(2)通过分号“;”判断请求股票的个数,并通过分号将其隔开;
(3)去掉多余的返回数据“varhq_str_”;
(4)将等号“=”转换成逗号“,”,并通过逗号再次将个股中得数据分割;
(5)最后将分割号的数据逐个存到模型中。
关键代码如下:
(2)返回类型为json格式
以请求大盘模块中排行榜中得数据为例,例如:
返回数据如下:
以上数据是通过Jsaon软件调整布局后的结果。
返回格式为json格式的数据类型都是非常规范的,所以解析起来并没有字符串的解析那样麻烦。
关键代码如下:
(3)返回类型为xml格式
在爱炒股软件中,大多数的股讯信息都是xml格式,以股讯板块中得要闻为例,请求连接为:
关键代码如下:
6.2数据的请求及刷新
6.2.1数据的请求
在iStock应用中,数据的请求操作是通过GET请求完成,即通过URL的方式请求获取相关数据。
为了用户有着良好的体验效果,主要通过异步请求的方式。
关键代码:
通过NSURLConnection类来实现数据的异步加载操作,获取的数据需要在代理的方法中进行实现。
另外,为了增强用户的体验性,需要对加载做一个时间设定,通过request的一个属性timeoutInterval来实现,例如:
在设置后,如果请求数据超过该设定时间,程序就会进入到connection:
(NSURLConnection*)connectiondidFailWithError:
(NSError*)error这个方法中。
关键代码:
6.2.2NSTimer定时刷新
NSTimer主要用在自选股数据的刷新,通过设置刷新频率来控制其请求数据的次数。
考虑到在2G网的状态下,网络请求数据相对较慢,会对用户的体验造成一定的影响,所以默认刷新频率设置为不刷新。
当设置其刷新频率为5s、15s、30s、60s时,通过全局变量refershFrequencyWithOutWifi和refershFrequencyWithWifi进行控制。
当改变其刷新频率时,不能只是简单地进行赋值操作,而是首先判断是否有计时器timer在线程中,如果在那么需要将其置为nil后,才能进行赋值操作。
关键代码:
当然,如果当前页面消失后,NSTimer依然存留在线程中,这固然是不好的,所以当页面消失时将NSTimer进行暂停或者关闭,当页面即将出现时,再将其开启,这也对线程的一种优化,提升应用的运行效率。
关键代码:
6.3数据库
6.3.1数据库表
1、AStocklist
表6-2股票表
属性
类型
说明
id
Integer
股票ID
code
Text
股票代码
name
Text
股票名称
pinyin
Text
股票拼音
market
Text
市场
2、TradingAccount
表6-3账户表
属性
类型
说明
accountNumber
Text
用户名
password
Text
登陆密码
initialMoney
Float
初始金额
yueMoney
Float
剩余金额
keyongMoney
Float
可用资金
dongjieMoney
Float
冻结资金
gupiaoMoney
Float
股票资产
zichanMoney
Float
总资产
bundlePhoneNumber
Text
绑定号码
3、ChiCangTable
表6-4持仓表
属性
类型
说明
stockName
Text
股票名称
stockCode
Text
股票代码
yueAmount
Integer
余额
keyongAmount
Integer
可用数量
dongjieAmount
Integer
冻结数量
marketPrice
Float
市场价格
cost
Float
成本价格
profitAndLoss
Float
盈亏
profitAndLossPrecent
Float
盈亏比
marketValue
Float
市场价值
gudongNumber
Text
股东账号
marketSegment
Text
市场
dealTime
Text
交易时间
4、HistroySearch
表6-5持仓表
属性
类型
说明
code
Text
股票代码
name
Text
股票名称
pinyin
Text
股票拼音
market
Text
市场
5、OptionalStock
表6-6自选股表
属性
类型
说明
stockCode
Text
股票代码
stockName
Text
股票名称
stockPlate
Text
市场
6、TradingRecordTable
表6-7交易记录表
属性
类型
说明
tradingTime
Text
成交时间
tradingSummary
Text
成交内容
tradingMoney
Float
成交金额
totalMoney
Float
总资产
tradingAccount
Text
交易账户
7、WeiTuoTable
表6-8委托表
属性
类型
说明
isCancel
Bool
是否可撤
way
Text
委托方式(买/卖)
price
Float
委托价格
amount
Integer
委托数量
money
Float
委托金额
stockName
Text
股票名称
stockCode
Text
股票代码
gudongNumber
Text
股东账户
marketSegment
Text
市场
status
Text
成交状态
time
Text
委托时间
6.3.2数据库的单例实现
在对数据库中的数据中进行操作时必须保证每次操作完成后才能进行下一次的操作,所以该类只能有一个实例,所以需要使用单例,通过它封装一个共享的资源,提供一个固定的实例创建方法及一些实例访问的接口。
关键代码如下:
6.4数据的存储
6.4.1图片的缓存处理
iStock应用中有大量的图片数据,这些都是比较耗流量的,因此为了用户着想必须对图片进行缓存处理。
通过SDWebImage第三方库来处理图片缓存。
SDWebImage首先会更根据URL在本地缓存中查找图片,如果该图片存在就通过回调机制来显示图片;如果该图片不存在,那么它将会根据URL地址进行下载,由NSURLConnection来做异步下载,实现相关的delegate代理方法来判断图片下载中、下载完成和下载失败所处状态。
在connection:
didReceiveData:
该方法中利用ImageIO可以实现图片加载效果之类的特效。
在connectionDidFinishLoading:
该代理方法中判断图片数据全部下载完成之后交给SDWebImageDecoder进行图片的解码处理。
图片解码处理在一个NSOperationQueue完成,并不会影响主线程UI,而造成的卡顿现象[1]。
6.4.2用户信息的缓存
用户登录有两种方式,一是通过本地注册后登录;二是直接通过微博账号登录。
用户通过本地注册的方式进行登录时,通过userDefault来对用户的信息进行存储。
用户通过第二种方式登录时,使用Parse第三方库自动对用户的信息进行一段时间的缓存。
6.4.3交易数据的存储
当用户进行模拟交易时会产生大量数据,例如交易股票价格、数量、成交时间等等,该类数据主要以数据库的存储方式进行存储。
通过第三方框架FMDB对数据库进行读写操作,并封装成方法(插入、删除、修改、读取等),主要有以下几类操作方法:
6.5数据安全
6.5.1MD5加密实现
在iOS开发过程中,为了保证数据的安全,通常会进行一些加密操作,比如DES加密、MD5加密等。
DES加密是可逆的,MD5加密目前来说一般是不可逆的。
MD5即Message-DigestAlgorithm5(信息-摘要算法5),用于确保信息传输完整一致[3],是计算机广泛使用的杂凑算法之一。
在iStock应用中,对用户的信息进行加密后存储。
MD5加密算法最终产生128bit固定长度,而在实际的应用开发中,通常是以16进制输出的,即产生32位16进制的字符。
在随机产生的字符中大小写混杂在一起,之后可对其进行二次处理来产生32位大写或者小写字符串。
关键代码如下;
6.5.2指纹识别
iStock项目中,在进行委托交易时,通过指纹来确定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计本 iPhone手机应用开发设计爱炒股 iPhone 手机 应用 开发 设计 炒股
![提示](https://static.bdocx.com/images/bang_tan.gif)