李艳平 廖子炎
摘要:该软件基于iOS平台开发,使用storyboard设计软件的视图,使用SQLite存储数据。主要为在校大学生提供个人日程、课程表、备忘录以及学校周边信息检索功能。通过实时全景地图,可使学生快速定位学校周边的餐饮、娱乐和交通等信息。
关键词:iOS平台;storyboard;SQLite;信息检索;地图
中圖分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)03-0079-03
Abstract: The software Based on the iOS platform is developed to provide the retrieving of personal schedule, curriculum, memorandum and informations around the school for college students. The view of the software is designed by the storyboard,with the storing data by SQLite. Through maps, students can quickly retrieve the information of the food, entertainment and transportation around the university,which are needed by them.
Key words: iOS operating system; storyboard; SQLite; information retrieval; map
1 背景
随着互联网的发展,到2017 年6 月,全球互联网用户渗透率由2016 年底的47.1%快速升至48%,用户数增至35.83亿,占全球总人口的50.6%。其中,绝大多数网民是通过手机上网的。预计在2017年底全球移动用户人数将达到30.7 亿。截止2017 年三季度,中国移动互联网用户规模已高达12.3 亿[1]。人们越来越喜欢在手机上搜索信息、听音乐、看视频、购物等。因此,基于手机的APP得到迅猛发展。目前,手机应用的主流操作系统是Android和iOS。
根据IDC公司的数据显示,iOS 目前占据全球智能机系统市场份额的30%,企业市场占有率达70%,是全球第二大的智能操作系统[2]。基于iOS的iPhone手机因其操作系统的创新性、安全性和个性化等特点,在学生全体中也占据了极大部分的市场份额。
本文旨在设计一款基于iOS的校园助手APP,方面在校大学生通过手机随时快速地进行个人日程查询,课表查询,备忘录查询,学校信息查询以及学校周边的餐饮、娱乐和交通信息的查询等。
2 开发环境
2.1 iOS平台
iOS平台是一个完全封闭的系统,不开源,而且采用沙盒机制来保护用户数据,实现不同程序之间的隔离,因此安全性较好。此外,iOS系统的软件与硬件的整合度相当高,使其分化大大降低,这样也增加了整个系统的稳定性。因此本软件选用iOS作为开发平台。
iOS 的系统架构分为四个层次: 核心操作系统层( the Core OS layer) ,核心服务层( the Core Services layer) ,媒体层( the Media layer) ,可轻触层( the Cocoa Touch layer) [3]。如图1所示:
2.2 SQLite数据库
SQLite是一款轻型的数据库,它遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,它最大特点是占用资源非常低[4],故本软件选用SQLite作为数据库,以减少对资源的消耗,加快软件的运行速度。
2.3 objective-c语言
objective-c主要用于采用OpenStep标准的Mac OS X和GNUstep系统。在MAC OS X系统下,运用苹果提供的SDK等开发工具包[5],可以方便的用来做iOS开发。本软件采用objective-c语言在Xcode环境下开发。
3 系统分析与设计
3.1 系统界面设计
1) 个人信息检索界面:该界面主要为学生提供方便、快速地查询个人日程、课程表和备忘录等信息。
2) 学校信息检索界面:该界面主要为学生提供学校通知、开展的活动和讲座等信息查询。
3) 学校周边信息检索界面:该界面提供了360全景地图,学生可以方便地在地图上进行拖拽,从而查看学校周边的餐饮、娱乐和交通等信息。
4) 评论界面:通过该界面学生可以对学校周边的餐饮、娱乐等设施添加评论和评分。
系统用例图如图2所示:
3.2 系统功能结构
4 关键技术
4.1 Storyboard框架
基于iOS的移动APP的开发,以往主要采用nib和xib框架,程序的代码量相对较多,运行效率受到很大影响。为了解决这一问题,苹果公司,研制出了新的解决方案,即storyboard框架。本软件采用storyboard框架进行软件视图的设计。
storyboard是一个将多个应用整合在一起的框架,通过添加不同的viewcontroller来显示不同的内容。与nib框架和xib框架在逻辑处理和视图设计方面区别如下:
1) 逻辑处理
与NIB和XIB不同,storyboard可以直接在视图界面处理各个控制器之间的推送关系。NIB与XIB都是interface builder的图形界面设计文档,但在使用的过程中,这些方式都是将所有的界面分开单个编辑,利用代码进行关联。在较大型或者图形界面较多的系统中,这两种实现方式就需要程序员耗费更多的精力关注于segue identifier,从而给图形界面逻辑关系上的设计和实现造成了很大的负担。而storyboard作为xcode的新技术,可以直接设计程序的跳转流程,所以不会出现视图界面跳转混乱的问题。
2) 视图设计
运用storyboard可以便捷的管理视图界面,能够在短时间内完成整体的页面跳转的流程设计,大大提高编程的工作效率。而且storyboard与nib和xib在本质上采用的是相同的编碼方法,但与代码的关联性更高,是编码过程中减少很多不必要的操作,能大大减少代码量,提高程序的运行效率。
4.2 控制器controller
在信息检索系统的主视图中,界面是通过不同的控制器controller来控制的,而控制器则由相应的控制类来实现。本系统中,主要应用 TabBarController、TableViewController 和UIViewController 三种控制器类。
1) TabBarController:通过tab横向划分不同的功能模块供用户选择,更适用于分类显示内容;
2) TableViewController:一个表格视图控制器,用于以表格的形式显示内容;
3) UIViewController:是storyboard中的基础视图控制器,在其中可以很方便地添加各种控件完成显示或者输入的功能。
4.3 Mapview控件
360全景地图则由MapViewController类中的mapView控件实现。
mapview是Xcode自带的控件,用于地图的显示和相关操作。在该类中,利用
[self.mapView setRegion:MKCoordinateRegionMakeWithDistance(coordinate, 100, 900) animated:YES];确定地图显示的范围。再利用
CLLocationCoordinate2D coordinate;
coordinate.latitude = 39.990000;
coordinate.longitude = 116.381500;
确定地图中心点位置。
其中coordinate.latitude和coordinate.longitude用于确定地图中心点的经度和纬度。
5 软件实现效果
5.1 登录页面
5.2 个人日程页面
5.3 备忘录页面
5.4 课程表页面
5.5 学校及学校周边信息显示页面
5.6 评论页面
6 结束语
基于iOS平台开发的校园助手APP,使用Xcode最新的storyboard框架和轻量级的数据库SQLite进行设计和实现,经测试软件功能运行正常,用户体验效果较好。基本上满足了在校大学生对于学校和学校周边信息查询的需求。
参考文献:
[1] 中国信通院.2017-2018年互联网发展趋势报告[R/OL]. http://www.199it.com/archives/663760.html.
[2] Wood Timothy. iOS Wow Factor Apps and UX Design Techniques for iPhone and iPad[J]. Journal of Womens Health,2011.
[3] 邱灿青.基于IOS的智慧生活信息服务平台设计与实现[J].电脑知识与技术,2017, 13(29):44-48.
[4] 戴泽淼,黄存东,袁明磊,等.基于Android平台的智能家居终端监控系统[J].吉林大学学报:信息科学版,2016,34(4):574-579.
[5] Kazuki Sakamoto, Tomohiko Furumoto. Objective-C高级编程:iOS与OS X多线程和内存管理[M]. 北京: 人民邮电出版社,2013:1-189.