盐巴
2017-04-27傅佳晨
傅佳晨
摘要:随着苹果产品的普及,越来越多的人开始使用iPhone和iPad,iOS系统下的移动软件早已走进人类的生活。该课题来源于基于考研类手机软件在移动终端便捷使用的需求。“盐巴”是基于iOS平台和SWIFT语言开发的一个考研资讯+数据挖掘应用,该课题主要完成软件的整体设计以及各个功能的基本实现。在OSX操作系统平台下,搭载Xcode开发环境,采用SWIFT语言作为主要开发语言,使用Xcode和Parse完成后台数据库代码的编写,运用多线程技术保证程序性能,结合Sketch和墨刀为界面UI美化,从而完成的一个iOS手机客户端。
关键词:SWIFT;iOS;考研;手机软件
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)29-0083-04
1概述
1.1课題研究背景
现在社会进入了E时代,移动网络给我们的生活带来了便捷和舒适。其中,以Apple公司为代表的iOS操作系统的用户体验更佳,此课题所研究的软件应用就是基于iOS平台设计的,能够实现考研资讯收集、考研能力评估、考研交流论坛、考研私人订制等功能;资源占用率小,运行效率高,操作简洁,扩展能力强。软件界面简洁,风格清新,具有很好的用户体验。此款手机软件采用基于swift语言和parse云数据库的i0S编程开发。
1.2国内研究现状
目前国内市场在考研app方面鱼龙混杂,各种考研类软件层出不穷。
据不完全统计,每年考研人数占高校应届毕业生人数的20%-30%。以下是近几年的数据:
可以说考研潮流愈发激烈。随着考研人群的不断壮大,大量准备考研的学生对于考研信息的获取以及资源的渴求也越来越多。在智能移动设备占主导的时代,考研类APP无疑占有很大的市场需求。
通过考察手机软件市场发现,目前市面上已经有不少关于考研类的APP应用,常见的APP有考研帮、口袋题库、粉笔考研以及类似百词斩这种背英语的APP应用。但是,这些APP的功能是否都能够被学生们接受并且经常使用?是否可以研发一种权威的考研类APP,集合目前市场上这种考研类APP的特点功能,还可以防范考研虚假信息等问题。
2软件设计方案
2.1需求分析
调研结果显示:
在使用考研APP的频率中,25%的被调查者经常使用考研APP,55%的被调查者偶尔使用考研APP,但还有22%的人没使用过考研APP。软件使用的男女比例相差还不大,但总数上女性偏多,由此可见考研APP目前还有较大的市场空间。
2.2功能设计
综合以上结论,设计方案拟定以资讯传播为主、能力测试为辅;以分析探讨为主,以刷题工具为辅,并且引入大数据分析和学校入驻的一款新型考研APP——盐巴。其主要功能为资讯速递、能力雷达图、智能题库、考研工具箱、盐巴论坛、个人空间。
3模型设计
3.1设计思想
1)将软件分成几个相对独立的模块。
2)分层的模块化程序设计思想,整个软件采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。
3)合理的数据流设计,在应用软件设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
根据系统需求特点采用了MVC的设计模式。
MVC(Model-View-Controllerl设计模式被广泛应用于系统开发中。Model指的是模型层,View指的是视图层,Controller指的是控制层。MVC设计模式将模型层和视图层分开,使得在软件设计过程中分工明确,降低了各个模块之间的耦合度。控制层的主要作用是保证视图层与模型层之间的更新保持同步,起到了领导作用。MVC状态转换示意图如图3所示。
此软件的设计就是使用MVC的设计思想,MVC的设计思想在iOS软件设计中也是最实用的。
3.2软件主要功能模块设计图
软件主要功能结构图:如图4所示。
3.3软件特色
1)考研资讯大数据挖掘
按科目类别分类、按关键词索引、按学校分类、按发布时间排列、按热度排序五个子功能键。可根据用户选定的专业和学校进行二次筛选。
2)能力测试评估
通过对用户每一次的测试结果进行分析和记录,并且和历史记录相对比,进行一个科学计算,让每个用户的自身变化以曲线图方式呈现出来,能够让用户更直观地了解到自身的优势科目和劣势科目,让用户更有针对性的备考。测试的数据还会录入综合数据库进行对比,呈现出所有使用盐巴APP进行测试的用户进行该科目测试的分值排名。
3)智能题库
通过对用户的个人数据收集,使用者不断在题库中答题,产生的数据被后台进行整理和统计,将易错题进行对比分析,有针对性的刷新题库内容,提高“盐巴”的个性化使用。
4)软件可扩展性
在考研工具板块可以针对不同的使用者进行小功能的添加和修改,让每个用户的“盐巴”都更符合自己下私人定制。
5)盐巴论坛
提供一个专门讨论考研相关话题的平台。
3.4开发工具和技术简介
3.4.1iOS的系统架构
iOS的系统架构分为四个层次:核心操作系统层(Core OSlayer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touchlayer)。如图5是iOS系统结构图。
3.4.2Swift
盐巴APP的框架全部使用Apple公司推出的新型编程语言Swift进行编写。
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
Swift是供iOS和OS x应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来使得编程更加简单、灵活和有趣。界面则基于广受人民群众爱戴的Cocoa和CocoaTouch框架,展示了软件开发的新方向。
3.4.3 Xcode开发工具
Xcode是苹果应用程序开发的必备开发环境,自从4.0开始,苹果系统开发人员就利用Xcode开发基于iOS的iPad、iPhone、iPad touch设备应用程序。Xcode是运行在操作系统Mac OS X上的集成开发工具(IDE),由苹果公司开发。Xcode是开发OS X和iOS应用程序的最快捷的方式。Xcode具有統一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。
3.4.4软件框架基础界面
在盐巴APP的软件基础界面上,我们采用TabBar的经典模式。TabBar是iOS上最经典的基础界面,导航结构都进行了扁平化(Flat)处理,用户可以在主界面底部通过不同的功能Tab来高效的选择他们需要的功能板块。微信、QQ、淘宝以及iOS自带的音乐APP都采用了这种方式,多个Tab在底部对功能进行了分割,使用不同的icon表示不同的板块功能,为了降低使用难度,盐巴在每个icon下面用文字标注含义,当然这种标注是可以用代码隐藏的。如图7。
4软件模块设计
4.1注册登录
为了简化注册步骤,盐巴app设计的注册仅需两步,第一步输入手机号,获取验证码;第二步填写验证码和设置密码。
4.2资讯板块
资讯板块为收集考研相关方面的资讯。旗下设立按科目类别分类、按关键词索引、按学校分类、按发布时间排列、按热度排序五个子功能键。
备考者往往要登陆各种网站查找一些信息,比如各种考研网站,在所报考院校bbs的考研版面及相关院系版面,在精华区寻找一些与该学校该专业的考试有关的情况,发文询问有关试题情况,打电话,托该校该专业的同学朋友以及考区的往届师兄师姐打听,一般来说,通过以上途径才能知道一个大概。但是,只要用户在盐巴的“我的空间”里设置所需报考的学校和专业,以上的步骤统统交给盐巴来操作,用户只要刷新一下资讯板块,想要的资讯就将呈现在眼前。
此版块主要应用到的技术为UITableView和xib,配合关键词索引UISearchBar和云数据库Bmob,后期还可以加入了授权学校的资讯接口,方便授权学校进行资讯更新和数据处理。
4.3测试板块
APP将通过每一次用户的测试结果进行采集,从而得出一份能力指数图,再次测试将与历史测试结果进行比对。此能力指数图是随着测试次数越来越精确的雷达指数图。该指数图可显示学生个人用户对研究生考试的外语、政治、专业课和综合课程的相关指数,供用户进行参考。针对考研的多科目特性,模型选用雷达图进行数值显示。雷达图常用于多项指标的全面分析,具有完整、清晰和直观的优点。使用雷达图,可对用数值无法表现的倾向性和印象性进行把握,为拟定战术是的信息分析提供良好的协助。
用户在手机端可通过雷达图非常直观地了解到自己当前的科目长处和短板,从而进行有针对性的复习,达到事半功倍的效果。此外,针对雷达图中数值较少的科目,资讯版块和题库板块会着重推送相关考试的内容和试题,达到更加到个性化和人性化的用户体验。
采用数据一图标的方式进行直观展示,针对考研的特性,盐巴APP选用雷达图进行数值显示。雷达图为UIWebView嵌入HTML雷达图,因为目前我还是没有办法只是用swift编出雷达图,所以用Web嵌入的方法来代替。点击测试出现的题库为本地数据库,swift目前还没有很好的解决云数据库的连接问题。每一道题都是手动输入,再加入switch语句进行判断。
4.4扩展板块
此版块是一个可扩充板块,目前有盐巴论坛、考试提醒功能。此版块可以添加类似考试倒计时提醒、究生考试报名时间提醒推送、考研工具书集锦等小功能,后期预计加入更多功能。“扩展板块”的存在就是为了让盐巴有无限的可扩充性,让用户只下载一款考研APP就可以享受到所有的考研APP优点。
4.5题库板块
因为仍有60%的被调查者希望有题库功能,所以盐巴APP将通过与专业的培训公司进行联合方式,打通各高校数据接口。从而可以获取全国大部分高校的研究生考试历年真题及复习题库,并对这些题目给出答案和相关思路解析。该功能的要点在于题目采集的广泛性和解题方案的专业性,为考生节省了更多的时间,并且针对不同大学不同专业有不同的侧重点,通过学校下发的模拟试题,更能确保刷题的准确和高效。
4.6我的空间
此处为个人空间板块,每一个用户都有一个独立的私人空间,可以在这里修改个人信息,子版块包括我的收藏、我的试题、我的消息、资料修改、系统设置。
5总结
“盐巴”考研应用软件在设计上采用了苹果的sdk-api和iOS设备进行交互,这样可以减少开发成本和时间。此软件是为了统合目前考研应用的优点,并在其基础上创新出新概念的一款软件。“盐巴”严格按照软件工程流畅进行软件的开发,首先对软件进行了严格准确的需求分析,确定系统的基本模块和功能,并进行了可行性研究,然后进行了详细的需求分析,将软件大致分为资讯、能力测试、考研工具、个人空间等主要模块,并确定了各个模块需要实现的功能,设计出软件结构,之后进行了软件的详细设计,确定了软件使用的数据结构、算法以及各模块的处理流程,并设计了简洁实用的用户界面。
具体完成的任务如下:
1)完成了软件生命周期各个阶段的文档。在软件开发的过程中,编写了需求分析、概要设计、详细设计、运行及测试文档。
2)按照软件生命周期进行软件的开发,并最终取得成功,基础性能稳定,达到了我预期的目标。
3)界面做到了简洁清晰、便于使用。
这次项目在暴露出我不足的同时也让我的技术有了很大提高,让我加深了对iOS开发设计基础的理解,强化了软件设计思想,增强了自己的编程的能力。同时也提升了个人的自学能力。