APP下载

基于ios系统的手机App前端设计

2018-03-26

数字通信世界 2018年12期
关键词:内存计数语音

张 永

(青岛科技大学,青岛 266000)

1 引言

随着移动互联网的高速发展,手机App得到了迅速普及。手机App给用户带来了更多体验和便捷功能。根据中商情报网艾媒咨询中国手机App市场研究报告显示[1],教育学习类App只占总市场份额28.1%,而社交类App却有64.1%,可见教育学习类App还是一个亟待开发的市场。

本设计的开发初衷就是抓住青岛版教材配套的App无人开发的市场,计划结合现在移动端技术及发展趋势,利用iOS移动操作系统开发一款与青岛版数学教材[2]配套的App。

2 相关技术介绍

2.1 沙盒机制

在计算机安全领域,沙盒是一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用[3]。

2.2 引用计数机制

引用计数是计算机编程语言中的一种内存管理技术,是指将资源的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。使用引用计数技术可以实现自动资源管理的目的。同时引用计数还可以指使用引用计数技术回收未使用资源的垃圾回收算法。

引用计数的实现过程是:当一个对象被创建时,它的引用计数为1,每当有一个新的指针指向这个对象的时候,它的引用计数就会加1,而当某个指向它的指针不再指向它时,它的引用计数就减1,当对象的引用计数为0时,就说明这个对象不再被任何指针指向了,这个时候这个对象就应该被销毁,内存也就得到了回收。

3 模型建立与求解

本app包括小学数学与口算练习两个部分。其中App的小学数学模块使用科大讯飞的语音合成技术,提供课文朗读功能,并根据进度控制暂停或播放。此外,计划提供目录方便用户选择、跳转章节。口算练习部分,针对不同层级的用户,计划提供5以内加减、10以内加减以及20以内加减法的练习。本设计计划充分利用iOS系统[4]的沙盒,对用户信息以及系统内的部分资源进行保存,并利用MVC设计模式,对系统的各模块的控制器-视图-模型进行分离处理,降低代码的冗余度,提高可扩展性和重复利用性,可以利用AFNetWorking进行网络交互,及时处理用户请求。并对一些页面做了大规模的内存优化,可以最大限度的减少App崩溃的情况。

4 功能实现

4.1 总体功能实现

整个项目的UI用到了代码和storyboard两种不同的界面搭建方式;与后台进行交互的网络请求使用的是POST异步请求;严格遵守MVC设计模式;用到了值传递、引用传递、指针传递,使用了正向传值、反向传值,其中,反向传值使用了代理、通知和单例等多种传值方式。

主界面分为导航控制器和视图控制器两大部分。其中,导航控制器用来显示App名称,视图控制器又分为两个模块,提供两个模块的入口。

小学数学中的课本模块,是本App的主要模块,主要是显示课本内容,其中使用了UIScrollView和三个UIImageView来显示上百张图,通过内存优化,使这几百张图占用内存极大减少。此外,使用了科大讯飞的语音合成引擎来实现课本的朗读功能,科大讯飞作为中国最大的智能语音技术提供商,在智能语音技术领域有着长期的研究积累,并在中文语音合成、语音识别、口语评测等多项技术上拥有国际领先的成果[5]。

功能方面,除语音朗读外,也提供了朗读的暂停与播放功能,用户只需轻触下方按钮即可,也允许用户在设置中取消自动播放语音功能。此外,用户除通过按钮改变页面外,也可以通过左右滑动的收拾实现。如果用户开启了设置中的保存进度功能,当用户点击左上角按钮时,程序跳回主界面,这时程序会保存当前进度,当用户下次进入该模块时,自动跳转到上次退出前的页面。

5 总结与展望

本设计基本完成了预定实现的目标,能够满足用户日常对学习的补充,并能方便的进行预习,方便对家长帮助孩子学习。在后期的测试过程中,出现了界面不够友好、闪退的情况,最终通过更换主界面样式,并对学习课本模块做了ImageView重用,使内存占用大幅减少,很好地解决了问题。但是,这个版本仍然是本系统的一个初级版本,由于资金问题,没有能够聘请专业播音员朗读,在以后的迭代过程中会逐一增加网络数据库统计功能。为了更好的方便学生学习,还会增加不同年级、不同版本的支持。

猜你喜欢

内存计数语音
古人计数
递归计数的六种方式
古代的计数方法
魔力语音
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
基于MATLAB的语音信号处理
“春夏秋冬”的内存
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
这样“计数”不恼人