【优秀硕士博士论文】基于ios平台的有道口语大师的设计与实现_第1页
【优秀硕士博士论文】基于ios平台的有道口语大师的设计与实现_第2页
【优秀硕士博士论文】基于ios平台的有道口语大师的设计与实现_第3页
【优秀硕士博士论文】基于ios平台的有道口语大师的设计与实现_第4页
【优秀硕士博士论文】基于ios平台的有道口语大师的设计与实现_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士专业学位论文基于IOS平台的有道口语大师的设计与实现DESIGNANDIMPLEMENTOFYOUDAOBIGBANGENGLISHBASEDONIOSPLATFORM摘要有道口语大师(英文名BIGBANGENGLISH)源自作者的实习项目,是网易有道公司在线教育产品线推出的第一款移动平台英语口语学习工具,旨在通过游戏化的学习体验帮助用户提升口语水平。在线教育是指基于网络的一种学习行为。随着移动智能设备性能和移动网络速度的大大提升,可以在移动智能设备上实现的功能越来越多,体验越来越好。对于学习欲望强烈而学习时间又少的现代人,手机作为教学平台,可以很好的将碎片化时间利用起来,用户可以随时获取到网络上的教学资源进行学习。本文以口语大师为例,对如何打造一款成功的移动教育类应用进行了探讨。记录并分析了此类应用开发过程中遇到的常见问题,提供了切实可行的解决方案。对往后的移动教类育应用开发有着重要的指导意义。口语大师项目于2014年4月份启动,分为IOS和ANDROID两个版本,作者完整的参与了IOS版本的设计与开发。由于英语口语学习资料更新非常快且移动应用面临的网络环境较为复杂,口语大师在设计上需要保证内容的实时性,功能的可靠性,同时也要节省流量。本文基于以上这些要求,对项目进行了详细的需求分析,包含功能点划分和非功能性需求;在此基础上,从技术架构角度对项目进行了概要设计,合理分解了项目的功能模块。然后针对各个功能模块进行详细设计对其中重要的模块做了流程说明和类设计,通过时序图明确了各个功能点在实现中的方法调用关系。考虑到客户端要随时和服务端进行交互以获取最新的课程资料,选择了JSONJAVASCRIPTOBJECTNOTATION,一种轻量级数据格式作为教学内容的存储和传输格式,图片和音频等媒体资料作为压缩包通过HTTP协议下载到客户端。口语大师IOS客户端采用了经典的MVC框架结构,使用OBJECTIVEC(IOS系统开发语言,简称OC)语言进行开发,根据项目需求,对OC的基类加入了JSON支持。为了解决移动端网络状况不稳定的问题,设计了教学资料提前下载和网络状况变更提醒等功能。特别针对应用中的口语评分模块,通过在线和离线评分相结合的方式,解决了用户在断网情况无法使用的问题。作者在项目开发过程中完成的主要工作包括项目架构的设计,课程资源模块、关卡模版和个人中心等核心模块的功能设计与实现,以及项目中一些公共服务的设计、开发和性能优化等。从口语大师立项至今,项目采用敏捷开发的方式,已经开发并上线了5个版本,本文中涉及到的所有功能均已上线,运行情况稳定良好。在这5个版本中除了问题的修复,应用性能也在不断提升,最新版本目前已良好运行4个月,能顺利支持60万人同时在线学习,应用崩溃率低于1。本文论述了一套完整的移动教育类应用开发的解决方案,经过口语大师在线上运行情况的验证,这套方案能切实可行的解决教育类应用开发中的常见问题,提升开发效率,降低由于技术问题导致项目失败的风险。关键词在线教育;口语学习工具;移动开发;敏捷开发;OBJECTIVECABSTRACTBIGBANGENGLISHISTHEAUTHORSINTERNSHIPPROGRAMINNETEASEYOUDAOCOMPANYBIGBANGENGLISHISTHEFIRSTORALENGLISHLEARNINGTOOLONMOBILEPLATFORMOFONLINEEDUCATIONPRODUCTLINEOFNETEASEYOUDAOCOMPANY,THROUGHTHEGAMINGLEARNINGEXPERIENCETOHELPUSERSIMPROVETHEIRORALENGLISHONLINEEDUCATIONREFERSTOAKINDOFONLINELEARNINGBEHAVIORASMOBILESMARTDEVICESPERFORMANCEANDMOBILENETWORKSPEEDHASGREATLYIMPROVED,WECANDOMORETHINGSONMOBILEDEVICESWITHGOODUSEREXPERIENCEFORTHOSEPEOPLE,WHOHAVESTRONGLEARNINGDESIREANDLESSLEARNINGTIME,USEMOBILEPHONEASTEACHINGPLATFORMCANMAKEFULLUSEOFTHEIRFRAGMENTEDTIMEPEOPLECANACCESSTEACHINGRESOURCESONMOBILEPHONEATANYTIMEHOWTOBUILDASUCCESSFULMOBILEEDUCATIONAPPLICATIONISDISCUSSEDINTHISTHESISRECORDSANDANALYZESTHECOMMONPROBLEMSOCCURREDINTHEDEVELOPMENTPROCESSOFMOBILEAPPLICATION,PROVIDESAFEASIBLESOLUTIONTHETHESISCANHELPTOBUILDABETTERMOBILEEDUCATIONAPPLICATIONBIGBANGENGLISHPROJECTBEGANINAPRIL2014,DIVIDEDINTOIOSVERSIONANDANDROIDVERSION,ANDTHEAUTHORHADPARTICIPATEDINTHEWHOLEPROCESSOFIOSVERSIONSDEVELOPMENTANDDESIGNDUETOORALENGLISHLEARNINGRESOURCESUPDATEISVERYFREQUENTANDMOBILEAPPLICATIONSINCOMPLEXNETWORKENVIRONMENT,BIGBANGENGLISHNEEDSTOMAKESURETHATTHELEARNINGRESOURCESALWAYSBEUPDATED,RELIABILITYOFFUNCTION,ANDSAVETHENETWORKFLOWWITHTHATFOUNDATION,THEREQUIREMENTSOFBIGBANGENGLISHISDETAILED,INCLUDINGTHEFUNCTIONALREQUIREMENTSANDNONFUNCTIONALREQUIREMENTSTHEPRELIMINARYDESIGNISFINISHEDBYDESIGNINGTHETECHNICALARCHITECTURE,ANDDECOMPOSINGTHEFUNCTIONMODULEINTHISPROJECTTHEDETAILDESIGNINCLUDINGEACHFUNCTIONMODULE,INTRODUCESTHECLASSDESIGNANDPROCESSDESIGNOFSOMEIMPORTANTMODULES,ANDTHROUGHTHETIMESEQUENCEDIAGRAMSFIGUREOUTTHECLEARLYMETHODINVOCATIONRELATIONSHIPCONSIDERINGTHATCLIENTNEEDTOUPDATETHELEARNINGRESOURCEFROMSERVER,USEJSONJAVASCRIPTOBJECTNOTATION,ALIGHTWEIGHTDATAFORMATTOSTORAGEDATA,ANDTRANSMITDATA,MEDIARESOURCESUCHASIMAGEANDAUDIODATADOWNLOADASZIPTHROUGHHTTPPROTOCOLTOTHECLIENTBIGBANGENGLISHCLIENTDEVELOPMENTUSETHECLASSICMVCARCHITECTURE,DEVELOPMENTLANGUAGEISOBJECTIVECIOSDEVELOPMENTLANGUAGE,OCFORSHORTACCORDINGTOTHEPROJECTREQUIREMENTS,ADDTHEJSONSUPPORTTOBASECLASSESINOCINORDERTOSOLVETHENETWORKPROBLEMOFMOBILESMARTDEVICE,DESIGNSOMEFUNCTIONS,INCLUDINGTHETEACHINGRESOURCEPREDOWNLOADANDNOTIFICATIONOFNETWORKSTATUSCHANGEDESPECIALLYFORSPEECHENGINEINAPPLICATION,THROUGHTHECOMBINATIONOFONLINEANDOFFLINEENGINE,SOLVEDABIGPROBLEMTHATSPEECHFUNCTIONCANNOTBEUSEDWITHOUTNETWORKINTHEWHOLEPROCESSOFPROJECTDEVELOPMENT,THEAUTHORSMAINWORKINCLUDESDESIGNTHEPROJECTSSTRUCTURE,DESIGNANDIMPLEMENTOFLEARNINGRESOURCESMANAGEMENTMODULE,MISSIONTEMPLATEANDPERSONALCENTERMODULE,DESIGNSOMEPUBLICSERVICESINTHEPROJECT,ANDPERFORMANCEOPTIMIZATION,ETCSINCEBIGBANGENGLISHPROJECTBEGAN,THEPROJECTWITHAGILEDEVELOPMENT,HASDEVELOPEDANDLAUNCHEDFIVEVERSIONS,ALLFUNCTIONSINVOLVEDINTHISTHESISHAVEBEENLAUNCHEDONLINEWITHGOODSTABILITYWITHTHEINCREASEOFVERSION,INADDITIONTOBUGFIX,APPLICATIONPERFORMANCEALSOINASCENSIONTHELATESTVERSIONISNOWRUNNINGFORFOURMONTHS,TOSUPPORT600THOUSANDSPEOPLELEARNINGATTHESAMETIME,ANDTHECRASHRATEOFAPPLICATIONISLOWERTHAN1THISTHESISDISCUSSESACOMPLETELYSOLUTIONOFMOBILEEDUCATIONAPPLICATIONDEVELOPMENTTHROUGHTHEVERIFICATIONOFBIGBANGENGLISH,THISSOLUTIONCANSOLVETHECOMMONPROBLEMOCCURREDINTHEDEVELOPMENT,IMPROVETHEDEVELOPMENTEFFICIENCY,ANDREDUCETHERISKOFPROJECTFAILUREDUETOTECHNICALPROBLEMKEYWORDSONLINEEDUCATIONORALENGLISHLEARNINGTOOLMOBILEDEVELOPMENTAGILEDEVELOPMENTOBJECTIVEC序言本文通过论述有道口语大师的设计与开发,为移动教育类APP(移动应用被称为APP)的开发提出一套完整的解决方案。能切实有效的达到教育目的,并给予用户良好的学习体验。现在移动教育市场如火如荼,很多初创公司与上市公司都加入到移动教育市场。手机由于其随身性与普及性,成为了新的合适的教育平台。怎样在这个新平台上通过技术手段达到预设的教育目成为了很多公司正面临的问题。作者在网易有道公司实习过程中,通过学习和调研慢慢了解了这个过程。现在很多公司在尝试构建移动教育软件,市场上已有的包括英语流利说,多邻国,怪兽学院等。由于教育类市场用户的多样性,在没有技术积累的情况下,很难预见性的编程。移动教育软件的开发过程都是出现了问题才开始修补,也就是软件工程中所说的烟囱系统。从技术角度还会出现很多安全方面的遗留问题,长此以往导致教育类APP项目的失败,或者错误上线给用户留下不良体验,导致项目的最终失败。本文针对教育类APP的一些常见问题给出了解决方案,记录了项目开发过程中一些设计上的优化方案。在本文写作之时,口语大师这款APP已经在APPSTORE上架,并累积了250W的用户量,本文中给出的解决和优化方案都是经过市场和用户验证为可行的。作者还通过项目开发过程累积了一套移动教育类APP开发中可复用的底层框架,具有稳定,可拓展,少配置的优良特性。本文通过论述口语大师项目的完整开发流程,给出了一个移动教育类APP开发的解决方案,包含需求分析,概要设计,详细设计,与上线测试等几大章节。作者希望通过本文能为教育类APP的生产开发起到指导作用,让后来的开发者和初创企业能规避这些常见的错误,集中精力优化产品流程与教育内容质量。目录摘要IIIABSTRACTV序言VII1引言111项目背景112项目来源313研究目标和内容414论文组织结构52关键技术概述621COCOAMVC622网络通信框架AFNETWORKING723IOS依赖库管理技术COCOAPODS824IOS内存管理ARC925APNS推送机制926本章小结93有道口语大师需求分析1031口语大师总体业务分析1032口语大师业务流程设计1333口语大师功能需求14331课程资源展示模块16332关卡模版17333个人信息模块21334成就馆模块24335社会化模块2534口语大师非功能性需求2735开发可行性2836本章小结284有道口语大师设计与实现2941口语大师整体技术框架2942口语大师功能详细设计32421课程资源模块33422关卡模版35423个人中心模块39424成就馆模块41425社会化模块4443口语大师基础服务设计46431PUSH系统46432日志系统49433BASE库50434打分引擎服务5144口语大师本地数据库设计5245口语大师部分动画及代码展示5446本章小结555质量保证与上线5651SVN版本管理5652测试项目5753本章小结586总结与展望59参考文献60附录A62作者简历及攻读硕士/博士学位期间取得的研究成果63独创性声明64学位论文数据集651引言引言部分主要介绍项目来源,业务背景,文章的研究目的以及论文的主要结构。包括的内容有移动教育市场的行业现状与整体趋势,有道口语大师的同行竞品,口语大师的基本功能架构。11项目背景移动教育最近突然火了起来,迅速以各种方式出现在人们眼前。国内的有MOOC,可汗学院等,国外的有COUSERA这种老牌在线学院1。据GSV全球教育行业报告预测,2017年全球移动教育市场规模预计增至2555亿美元,保持23的年复合增长率。随着世界各国对移动教育重要性的认识逐渐提升,全球各国移动教育市场规模将实现快速增长2。如图11所示。图11全球教育产业规模FIGURE11GLOBALEDUCATIONINDUSTRY2012年全球教育产业规模为45万亿美元,2017年预计将达到63万亿美元,行业实现年7的稳定增长。2012年全球教育产业规模为45万亿美元,按照受众群体对教育行业拆分,K12(基础教育)规模为22万亿美元,占整体规模的50;高等教育规模为15万亿美元,占整体规模的34;学前教育和培训辅导占比较小,但未来相对行业整体具有较快增长。按照渠道拆分,线上教育增长速度远高于传统线下教育,未来五年线上教育年复合增长率为23,行业规模将由2012年的900亿美元迅速提升至2017年的2600亿美元。中国市场上,由于国家十二五规划对信息教育产业的大力支持,国内教育行业也是早已起步,前景大好,正在迈向成熟阶段。计世资讯发布了2015年中国教育行业信息化建设与IT应用趋势研究报告,据报告数据显示,中国教育信息化建设十二五规划开始进入收官阶段,2014年中国移动教育市场规模达到8249亿元人民币,预计2015年将达到9652亿元人民币3。如图12所示。图1220132015年中国教育行业信息化投资规模FIGURE12CHINASEDUCATIONINDUSTRYINFORMATIZATIONINVESTMENTSCALEIN20132015在线教育是互联网技术与传统教育的结合,相比传统教育。在线教育具有如下三方面优势突破时空限制,知识获取方式更为灵活。碎片化学习,课程的时间一般控制在30分钟以内。内容更丰富,除了基础教育之外,移动教育在兴趣教育、职业教育等细分领域为用户提供更多有价值的内容4。我国教育行业投入与GDP的比值仅为36,是发达国家的一半左右,与印度、泰国等发展中国家相比仍有较大差距。以美国为例,美国教育支出占GDP整体的9左右,是仅次于医疗的第二大支出组成。中国教育行业支出占GDP整体的36,仅为美国的40,考虑到中国经济的极大体量,考虑到美国教育体系比较成熟,我们与金砖四国的其他三个国家教育支出占GDP的比例进行比较,同时考虑到未来我国GDP的快速增长,2017年时我国教育整体支出至少还有一倍的发展空间。如下图13所示。图13各国教育支出/GDP比值FIGURE13NATIONALEDUCATIONEXPENDITURE/GDPRATIO我国在线教育行业整体规模较小。据GSV报告和2012移动教育白皮书估算,我国在线教育行业规模在1000亿人民币左右,仅为美国的1/5。细分行业市场结构差别比较大。我国在线教育中占比最大的为培训教育(530),其次为基础教育(3594)。而美国在线教育中基础教育比例接近50,线上培训业务反而仅为8。美国移动端在线教育使用比例更高。中国在线教育用户更偏向于使用在线教育平台(614),其次是网校(370),APP使用比例仍比较低。美国APP端使用比例远高于中国,同时网校比例是国内的一半左右。可以看到,国内教育产业已经开始萌芽,正在发力中,而移动教育类APP这块市场,却还有很大的潜力。很多创业公司正在慢慢加入到这片广阔的市场里来5。本文对移动教育类APP的开发给出了很好的实例与实施的具体方案。下文中说所的应用,若无特别说明都是指IOS移动应用APP。12项目来源有道口语大师源于作者实习项目,有道公司通过有道词典多年在英语教育市场积累了大量宝贵的英语学习忠实用户,怎么把这些用户的价值变现,为公司找到下一个亿元级利润的项目就是口语大师肩负的使命。对于在线教育这片巨大的市场,基于有道公司已有的资源积累,选择口语教育这个切入点,从细分市场做起,深耕细作。有道公司已经累积了大量的用户和优秀的英语学习资料,怎么利用这些天生优势,打造一款用户易于使用和接受的英语学习工具。市场上已经有了口语教育APP的一些竞品。国内市场已有的口语教育软件,主要是两款英语流利说,怪兽学院。(1)英语流利说专注于口语打分,语音识别精准,依靠口语评分功能累积了大量忠实用户,在国内教育类应用用户量上目前排名第一,但功能单一,缺乏系统化的内容和情景化的口语练习环境,很容易让用户感到枯燥乏味,用户粘性不强。(2)怪兽学院内容太过简单,游戏化元素过重,易分散用户的注意力,导致无法达到练习的效果,市场反馈较差。国外市场公认的教育类第一名应用多邻国多邻国内容循序渐进,安排合理,交互方式简单易于理解,用户学习成本低,但是缺少语音识别机制。基于市场基本情况设计出了有道口语大师这样一款产品。13研究目标和内容移动应用是口语教育的重要平台与内容载体,应用的稳定与优良的体验对于教学目的的达成至关重要。移动应用中常见疑难问题的处理,应用要面临的复杂的网络状况和移动端各式各样的硬件资源环境等等都是应用实现过程中要面临和解决的重大难题。本文需要解决的问题1用户对教育类应用的需求有多大2移动平台适合作为教育类产品的平台吗3如何利用移动平台有限的硬件资源来提供更好的用户体验4用户在移动平台使用教育类产品可能会面临的问题与困难本文拟达到的目标1通过本文论述给出移动教育类应用开发的完整解决方案。2发现移动教育类应用在开发或使用过程中会遇到的一些问题,给出解决办法。3对如何高效的利用移动平台上的有限资源,给出合理方案。4通过本文描述,论证移动平台适合作为新的教育平台。作者完成的工作主要包括调研了市面上已有在线教育类产品,对项目进行了详细的需求分析,包含功能点划分和非功能性需求。学习了OBJECTIVEC中的常用优化技术,IOS中处理媒体资源的API,音频播放录制的实现。设计了练习关卡中的四种基本题型图片选择题,跟读题,造句题目,和问答题。编写调试了网络通讯模,确立了项目框架雏形和实现方案。对项目进行了合理的功能分解,设计并实现了这些功能模块。有道口语大师在移动平台上的成功,为教育资源提供了更广阔的应用平台,对于在线教育类具有开拓性的意义。本文总结了项目开发过程中用到的一套教育类APP开发的方法,和应对移动端多变复杂网络环境的经验和技巧,对于移动教育类应用的开发具有非常重要的现实指导意义。14论文组织结构本文共分为六章,主要内容如下第一章为引言,阐述了项目背景及来源,本文的研究目标和内容以及文章的组织结构。第二章简要介绍了项目中涉及的关键技术。第三章介绍了口语大师的整体业务架构,并进行需求分析。第四章详细阐述了口语大师的设计与实现,重点模块的详细设计实现,基本开发库的抽取,移动开发中常见问题的解决方案。第五章阐述了IOS移动应用测试和上线的完整解决方案。第六章总结了作者在口语大师项目中的工作,说明其指导意义,对教育类APP的未来发展进行展望。2关键技术概述为了帮助读者更好的理解本文中设计的技术概念,本章将重点阐述在有道口语大师的开发过程中使用到的关键技术。其中包含基本开发框架COCOAMVC,网络通信库AFNETWORKING,依赖库管理工具COCOAPODS和IOS开发中独特的内存管理机制ARC与推送机制APNS。21COCOAMVC在COCOA框架中所有的控件、窗口等都继承自UIVIEW,对应MVC中的V。UIVIEW及其子类主要负责UI的实现,而UIVIEW所产生的事件都可以采用委托的方式,交给UIVIEWCONTROLLER实现。对于不同的UIVIEW,都有相应的UIVIEWCONTROLLER对应MVC中的C6。比如在IPHONEOS上常用的UITABLEVIEW,它所对应的CONTROLLER就是UITABLEVIEWCONTROLLER。至于MVC中的M,那需要根据用户的需求来实现了。IOS开发中的MVC模式架构如图21所示。图21IOS开发中的MVC模式FIGURE21MVCMODELINIOSDEVELOPMENT基于传统MVC模式,而稍有不同。在COCOAMVC中,提供了OUTLET输出口,OUTLET可以看作是从C指向V的指针,它在C中被定义。OUTLET提供了很大的方便,在C的内部就可以向V传递消息。C可以拥有很多的OUTLET,可以不止一个,这也使它可以更高效的和V进行交流7。好的应用程序要具备与用户交互的能力。如果没有良好的交互性,程序的功能将会受到很大的限制。在MVC中,V是和用户直接接触的,用户看不到M和C,所以,程序与用户的交互必须通过V来实现。但V只是视图而已,它并不能完全处理用户的要求,这就要求V必须有某种手段来向C发送信息,移交用户的交互要求。接下来讨论V是如何向C发送信息的,V对C的交流有三种不同的方式(1)目标操作TARGETACTIONC会在内部“悬挂”一个目标TARGET,如图中的红白相间的靶子。对应的,它还会分发一个操作ACTION,如图中的黄色箭头给将要和它交流的视图对象可能是屏幕上的一个按钮。当按钮被按时,ACTION就会被发送给与之对应的TARGET,这样V就可以和C交流了。但是在这种情况下,V只是知道发送ACTION给对应的TARGET,它并不知道C中的类,也不知道它到底发送了什么。TARGETACTION是经常被使用的方法。(2)委托DELEGATE有时候,V需要和C进行同步。用户交互不仅仅是什么按按钮,划滑块,还有很多种形式。图21中的DELEGATE黄色箭头又分出了四个小箭头SHOULD,DID,WILL,还有一个没标注的。绝大部分的DELEGATE信息都是SHOULD,WILL,DID这三种形式。把C设置为V的委托DELEGATE,如果V需要获取C中的方法,C只需调用DELEGATE方法。通过接受V发过来的DELEGATE信息,C就会做出相应的协调和处理。每个V只能有一个DELEGATE。(3)数据源DATASOURCEV不能拥有它所要显示的数据。V需要数据时,它就会请求数据管理类的帮助,把需要的数据给它。看图21中的DATASOURCE箭头,和DELEGATE类似,V会发送信息给C来请求数据。M和C之间的白线,意味着M不可以直接没有限制的对C进行交流,而这个方向的交流是必要的。当M中的一些东西发生变化时,C需要了解这些变化。通知(NOTIFICATION)和KVO(KEYVALUEOBSERVING)是解决这个问题的好方法。22网络通信框架AFNETWORKINGAFNETWORKING是一个IOS开发中常用的轻量级网络通信库。封装了IOS的常用网络请求,及常见返回结果,包括XML,JSON,RAR/ZIP等。其中主要的类包括(1)AFHTTPCLIENT提供一个方便的网络交互接口,包括默认包头信息,身份验证,是否连接到网络,批量处理操作,查询字符串参数序列化等,以及多种表单请求。(2)AFHTTPREQUESTOPERATION它和它的子类可以基于HTTP状态和内容结果来区分是否成功请求了。(3)AFURLCONNECTIONOPERATION它继承于NSOPERATION,允许网络请求被取消、暂停和恢复,由NSOPERATIONQUEUE类进行管理。(4)AFURLCONNECTIONOPERATION可以让开发者轻松完成上传和下载,处理验证,监控上传和下载的进度,控制缓存。AFNETWORKING整体机制如图22所示。图22AFNETWORKING的基本结构图FIGURE22BASICSTRUCTUREOFAFNETWORKING上图中涉及到的,NS类与CF类都是IOSFOUNDATIONKIT框架中的底层队列与网络通信类8。23IOS依赖库管理技术COCOAPODS在开发IOS应用时,会经常使用到很多第三方开源类库,比如JSONKIT,AFNETWORKING等。可能某个类库又用到其他类库,要使用的话,必须得再去下载其他类库。另外一种情况是,项目中用到的类库有更新,必须得重新下载新版本,重新加入到项目。采用COCOAPODS管理项目中的第三方库,可以避免这些问题9。绝大部分的开源类库,都支持COCOAPODS。在项目的PODFILE文件中加入项目要依赖的开源库,执行PODINSTALL或PODUPDATE命令便可自动下载并配置第三方库。24IOS内存管理ARC自动计数ARCAUTOMATICREFERENCECOUNTING是一种在编译期间能够管理内存的技术,通过它,开发人员可以不需要在内存释放等方面花费精力10。ARC在编译期间为每个OBJECTIVEC指针变量添加合适的RETAIN,RELEASE,AUTORELEASE等函数,保存每个变量的生存周期控制在合理的范围内,以期实现代码上的自动内存管理。通过ARC技术,开发者可以不顾传统方式的内存管理方式,集中精力开发业务逻辑。使用ARC也并不能保证绝对的内存不泄露,深入了解传统的内存管理依然是十分有必要的11。25APNS推送机制推送通知在现代APP中必不可少,是应用召回用户,刺激使用的重要途径12。很多人对于APP的使用甚至仅限于查看推送通知。苹果官方对IOS推送机制的解释如图23所示。图23苹果官方对推送机制的解释FIGURE23PUSHMECHANISMOFAPNSPROVIDER就是应用的后台服务器,APNS是APPLEPUSHNOTIFICATIONSERVICE的缩写,也就是苹果的推送服务器。上图可以分为三个阶段(1)第一阶段应用程序的服务器端把要发送的消息、目的IPHONE的标识打包,发给APNS。(2)第二阶段APNS在已注册PUSH服务的IPHONE列表中,查找有相应标识的IPHONE,并把消息发送到IPHONE。(3)第三阶段IPHONE把发来的消息传递给相应的应用程序,并且按照设定弹出PUSH通知。口语大师后台服务器的构建流程将在后文431部分详细描述。26本章小结本章主要简单记述了口语大师开发过程中涉及到一些关键技术,包括COCOAMVC框架,AFNETWORKING网络通信库,IOS内存管理ARCAUTOMATICREFERENCECOUNTING,IOS依赖库管理工具COCOAPODS和苹果的推送服务APNS。分别对其进行了解释说明,帮助理解后面的论文。3有道口语大师需求分析口语大师是一款移动平台上的口语学习APP,其最终学习目的体现为通过坚持使用口语大师学习软件,半年到一年的学习,人人都可以达到最高BEC(BUSINESSENGLISHCERTIFICATE,商务英语考试)高级C,最低BEC中级A的水平。即口语听力能够完全满足工作需求,词汇量过7千,发音清楚准确,轻松听懂常速英文,面试,办公室用语,写作基本无碍。好的教育类APP是一定要达到一定学习目的,单纯的开发技巧与教学资料的堆积,并不能成就好的教育软件。需要通过优化的学习流程,良好亲和的使用体验,让用户对软件产生依赖,最终达成学习目的13。这种学习过程不是强制的,而是用户的自发行为。在软件设计与开发过程中一直要始终兼顾两个基本点保证教学效果,提高用户兴趣度。31口语大师总体业务分析移动教育类APP首先要解决的就是用户层次不集中,水平不均等。因为APP上架后任何人都可以使用,有手机就可以使用,为了保证大众用户的使用体验,在APP的业务设计上,采用了分级的机制,保证不同水平的用户在不同的级别得到应有的训练,低级别的用户通过训练也可以进入高级别的课程并不断升级,在升级的过程中提升口语能力,达到教学目的14。1第一阶段学习日常生活中常用情景的重点句型,达到能够进行简单会话。对不同场景进行知识点的关卡进阶,设计场景涉及的内容有难度区分,整体难度为中低难度2第二阶段语音语流,给用户全新的发音集中训练,打破听障,锻炼口腔,夯实基础。对语音语流的各个知识点进行关卡设计。3第三阶段职场口语,初级职场口语,达到工作中的常见交流无碍。对不同场景进行知识点的关卡进阶设计,场景涉及的内容有难度区分,整体难度为中。4第四阶段商务中级,基本的商业表达技能,表达思维等对不同场景进行知识点的关卡进阶设计。场景涉及的内容有难度区分,整体难度为中高难度。5第五阶段查缺补漏,口语句式的反复练习,常见大小词的用法。对不同疑难点进行知识点的关卡进阶设计。涉及的内容有难度区分,整体难度跨越较大。口语大师的整体业务逻辑设计如图31所示。教学目标阶段TOPIC关卡图31有道口语大师整体业务架构FIGURE31ARCHITECTUREOFBIGBANGENGLISHBUSINESS遵循业务架构的设计给给出了口语大师的具体业务设计。让用户基于游戏关卡式的学习体验,在闯关过程中一步步提升口语能力,最终达到教学目的。整体业务设计如图32所示。图32口语大师业务设计图FIGURE32BIGBANGENGLISHBUSINESSDESIGNDIAGRAM口语大师为了满足不同水平的用户,设计了不同的分级,针对教学中的各个阶段,在应用中体现如图33所示。图33口语大师分级图FIGURE33GRADESDIAGRAMOFBIGBANGENGLISH口语大师一共分了7个年纪,帮助用户在升级的过程中逐步提升口语能力,达到我们设计的教学目标。在学习过程中还为用户设计了激励机制,用户每做一道题都会得到明确的反馈,鼓励或者继续加油。项目中设计了积分系统,每个关卡最多获得三颗星,累计一定的星星数可以打成相应的奖励,或者解锁进入高级关卡15。为了满足不同类型的用户进阶要求,和课程的更多样组合,设计了如下几个维度控制课程的显示与关闭,如表31所示(见下页)。表31口语大师课程维度设计TABLE31BIGBANGENGLISHCOURSEDIMENSIONDESIGN进入每一个年级后,每一个关卡,也就是上文所设计的TOPIC,会看到当前课程的难度,解锁条件,课程状态等相关信息。如上图所示的几个维度都会出现在TOPIC的介绍中,用户很轻易就可以获取当前TOPIC的信息,判断这个TOPIC是否适合用户的水平,是否要进入这个关卡。32口语大师业务流程设计用户第一次打开APP可进入口语大师,先展示的是口语大师的年级分布图,见图33。2秒后用户进入当前年级,没有记录进入一年级。接下来APP展示出当前年纪的各种TOPIC,用户学习过的TOPIC的会放在前面,未学习的在下方,接下来是为解锁的TOPIC的,解锁各种TOPIC的条件见表31。用户遵循我们默认的TOPIC排布依次学习就能获得很好的学习体验,收获学习效果。有能力的用户也可以选择解锁特定条件的TOPIC来快速进入下一个年纪。注意,跨年级的学习目前是不允许的。口语大师APP的设计流程如图34所示(见下页)。课程维度类别描述产品呈现难度110分五颗星,半颗星为一个刻度解锁条件星星数本学期累计星星数星星数放在学期下面展示,每学期都有历史记录解锁条件金币数需要消费金币解锁课程金币数,不消耗的不展示金币这个特征解锁条件课程名学了某个课程后才能学习另一个课程依赖的课程名字课程标签后台编辑,一个课程可以有多个标签,包括HOT/NEW标签为的放在一个特定的区域,这个区域的内容为短平快的内容,和高成本的教学内容区分同学数标记正在学习该课的学生数暂不展示,但等用户量达到一个级别才展现口语大师APP进版页面年级静态图(展示年级之间的关系)启动当前年纪进入年纪进入TOPIC进入某个TOPIC个人页面学习线路学习目标阐述历史学习记录关卡列表解锁未解锁星星数进入关卡图34口语大师APP流程设计图FIGURE34BIGBANGENGLISHAPPPROCESSDESIGNDIAGRAM33口语大师功能需求从技术层面上为了良好的实现业务流程,从可拓展性与易维护性上面,对软件功能进行了良好的分解。按功能将其分为课程资源展示,个人信息模块,关卡模版,成就馆,社会化模块等几方面。如图35所示,下面详细分析各个模块的主要功能。口语大师课程资源展示个人信息模块打分引擎关卡模版成就馆PUSH模块LOG模块社会化模块网络模块年级展示TOPIC展示关卡展示个人信息展示反馈调研,满意度系统设置图片选择题跟读题造句题对话题新题型闯关成功,失败结果成就展示关卡跳转第三方登录第三方分享接入网易帐号服务图35口语大师功能模块FIGURE35BIGBANGENGLISHFUNCTIONMODULE课程资源展示,主要包含年级展示,进入年级后的TOPIC展示,进入TOPIC后的关卡展示。这些都是用户使用最多的基本结构。关卡模版负责根据关卡里的题目资源,生成可视化可交互的口语练习题型。已经设计好的基本体型包含图片选择题,用户在听完一段英语录音后,从给出的四张图片中选择录音中描述的图片。跟读题,给出一个英语句子,用户按住页面上的录音键,读出句子,点击录音结束,打分引擎根据用户的读音给予AE五档的评价。造句题,页面上给出一堆零散的词组,用户据此造出正确的句子,并朗读,打分引擎给出RIGHT或WRONG的评价。对话题,口语大师扮演拟人角色向用户发问,用户根据语境给予回答,可能是一次对话或多次对话,打分引擎根据用户的回答给出RIGHT或WRONG的评价。这里的对话题提供两种方式,一种是用户可见明文的对话难度较低,另一种是用户不可见的对话,难度较高。新题型,新题型专注与单词发音。每一个关卡里面都是诸多单次卡片,每弹出一张单次卡片,用户要在限定的时间内读出单词,打分引擎即时给出AE五档的评价结果,这个过程是全自动的,无需手动参与,让用户在短时间内练习大量的疑难英语单词发音,强化效果,详细打分规则见附录A。个人信息模块包含用户登录后的个人信息展示,包含昵称积分等基本信息。由于口语大师是初创产品,在个人信息页面里设置了显眼的反馈与满意度评价入口,这对初创产品的快速迭代是至关重要的。还有系统的相关设置,包含推送开关,分享按钮,产品介绍等。成就馆,口语大师在用户的做题过程中会实时的给予用户正向反馈。当用户完成一个关卡后,会给予用户精美的关卡成绩反馈页面。成功显示积极向上的效果,失败显示再接再厉的动画效果。用户完成了TOPIC后会获得当前TOPIC的勋章,每一个TOPIC我们都设计了独一无二精美的勋章。收集每一个TOPIC的勋章,对用户也是一种正向激励,从口语大师上线的情况来看,用户对勋章的刺激很积极。很多用户都在微博等社交平台上分享了获得勋章的时刻,已集在口语大师里收集的所有勋章。在成就馆里,通过点击某个勋章也可以快速进入勋章对应的TOPIC快速复习学习过的课程。社会化模块,包含用户的第三方登录,目前支持新浪,QQ与网易通行证登录。笔者在撰写论文期间,对这个模块进行了良好的封装,并在实习公司内部的其他项目里使用,反馈良好。通过第三方登录用户可以不必单独注册口语大师的账号,使用已有的社交账号进入,快捷的享受口语大师的服务16。第三方分享,用户登录之后即可分享特定的内容至社交平台,可以是勋章,口语大师里的优秀题型,也可以是某些使用心得体会,交流学习经验,社交分享在现代APP里已经是必不可少的一部分了。接入了网易账号系统,因为是网易有道公司的产品,为了对用户信息进行统一的管理,产品在用户登陆后又接入了网易的账号系统21。还有一些基础服务模块,比如支持整个答题评分的口语评分引擎,APP里的推送通知系统,产品内的LOG系统,APP去请求网络的网络模块等基础服务模块,将放在第4章有道口语大师设计与实现详述。口语大师的功能模块设计经过市场的半年检验,反应良好,是可拓展可维护的优秀设计。作者参与全部模块的构建工作,也作为口语大师的资深用户,在学习体验过程中对口语大师这款APP进行持续优化。下面将对其中的重点模块进行详细的需求分析与业务说明。331课程资源展示模块课程资源模块由年级展示,TOPIC展示,关卡展示三部分组成。用例图如图36所示。用户年级展示TOPIC展示关卡展示图36课程资源展示模块用例图FIGURE36RESOURCEMANAGERMODULEUSERCASEDIAGRAM年级展示在用户第一次进入应用或者用户点击年级视图会出现年级的静态展示页面。用例如表32所示。表32年级展示用例TABLE32GRADEPRESENTUSERCASE用例名称年级展示参与者用户描述查看课程年级的相关信息。前置条件用户第一次进入口语大师APP。后置条件无触发条件用户登录口语大师APP。表32(续表)TABLE32CONTINUEDTOPIC展示用户进入某个年级之后,展示该年级下所有TOPIC列表,按照不同TOPIC的权重和用户是否学习对其进行排序,优先显示用户正在学习且权重高的TOPIC。用例如表33所示。表33TOPIC展示用例TABLE33TOPICPRESENTUSERCASE332关卡模版用户进入关卡后,由关卡模版将该关卡的学习资料可视化成为可交互的页面供用户答题学习。该模块的用例图如图37所示(见下页)。基本流程1用户登录口语大师APP。2显示年级展示页面。3用户默认进入第一年级,展示进入第一年级动画。4用户跳转到第一年级TOPIC列表页面。替代流程1)用户已经登陆过APP。2)用户在TOPIC页面右上角点击年级按钮。3)用户进入年级选择页面。结束当用户进入某个年级TOPIC列表时,该用例结束。用例名称TOPIC展示参与者用户描述查看某年级下所有TOPIC的相关信息。前置条件用户已经登录且已经进入某个年级学习。后置条件无触发条件用户进入某个年级。基本流程1展示该年级下所有TOPIC,根据用户是否学习和每个TOPIC预设的权重值排序显示。2用户选择某个TOPIC。3进入该TOPIC下的关卡列表页。4用户选择某个关卡。5用户直接进入关卡开始答题。替代流程1)用户选择的TOPIC未解锁,显示弹窗提示用户该TOPIC解锁条件,用户点击确认后弹窗消失。2)用户选择的关卡为解锁,显示弹窗提示需要先学习以前的关卡才能解锁,用户确认后弹窗消失。3)用户选择的关卡解锁但未下载,提示用户需先下载课程资料,用户点击下载,则下载完成后进入关卡。点击取消提示消失。结束当用户进入某个关卡时,该用例结束。用户图片选择题跟读题造句题对话题新题型图37关卡模版用例图FIGURE37MISSIONTEMPLATEUSERCASEDIAGRAM图片选择题第一次进入该关卡自动播放英语录音一遍,页面上显示该录音的问题。录音播放完毕显示四张可以点击的图片,用户根据录音选择正确的图片。若是用户没有听清可再次点击页面左上的播放器图标即可再次播放录音。用例如表34所示。表34图片选择题用例TABLE34PICTURECHOOSECARDUSERCASE用例名称图片选择题参与者用户描述关卡的一种题型,根据录音选择正确的图片。前置条件用户点击进入某个关卡,且该该关卡已经被下载和解锁。后置条件无触发条件用户在关卡里答题,该题类型为图片选择题。基本流程1展示该关卡的英文题目,播放英语录音,。2录音播放完毕,在英文题目下方显示四张可点击的图片。3用户点击某张图片作为答案。4判断答案对错,右上角弹出RIGHT或WRONG的结果。5下方出现下一题按钮,用户点击下一题,该题目结束。替代流程1)录音播放完毕,用户点击左上播放器图标,再次播放英语录音。2)录音播放完毕后,用户选择答案图片。结束当用户进入下一题时,该用例结束。跟读题用户进入该题目后,显示英语句子,一般在15个单词左右。下方显示跟读按钮,用户点击跟读激活麦克风,用户读出句子,读完后点击录音完毕按钮。根据用户录音给出AE的五档评分,下方变为下一题按钮,用户点击下一题,当前用例结束。用例如表35所示。表35跟读题用例TABLE35FOLLOWSENTENCEUSERCASE造句题页面上给出一些英文词组和介词连词,一般为6个左右。用户根据给定的词组,组成正确的句子,点击下方录音按钮,读出造的句子,然后点击结束录音。根据用户造句的结果,给出RIGHT或WRONG的评价。下方按钮变成下一题,用户点击下一题,该用例结束。用例如表36所示。表36造句题用例TABLE36MAKESENTENCEUSERCASE用例名称跟读题参与者用户描述关卡的一种题型,正确的读出给的句子。前置条件用户点击进入某个关卡,且该该关卡已经被下载和解锁。后置条件无触发条件用户在关卡里答题,该题类型为跟读题。基本流程1展示给定的英文句子,长度在15个单词左右。2用户点击下方录音按钮,出现录音指示器,下方按钮变成结束录音。3用户开始朗读句子,读完后点击录音结束。4打分殷勤判断用户发音质量,给出AE的评价。5下方按钮变为下一题,用户点击下一题按钮。替代流程无结束当用户进入下一题时,该用例结束。问答题用户进入页面后,自动播放英文问句。播放完之后,下方出现录音指示与结束录音按钮,用户回答问题,回答完毕点击录音结束按钮。对话继续向下进行,可能是一次对话,也可能是多次对话。对话结束后,根据用户的回答给出AE的评价,下方变成下一题按钮,用户点击下一题,该用例结束。用例如表37

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论