首页 > 范文大全 > 正文

基于IOS的列车旅行系统APP的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于IOS的列车旅行系统APP的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

本系统基于ios平台,采用http通信方式,运用C/S开发模式并以Foundation与UNKit作为系统的核心框架,辅以MapKit,OpenGLES,MessageUI等实现地图展示与信息分享。系统数据持久化采用文件读写技术,对象归档技术实现了常用联系人的本地化保存。使用sqlite数据库读写技术实现列车信息的检索展示。系统用UITabbarController作为整个系统的底层框架,并采用模块化设计方式降低系统的耦合度,极大地方便了日后的维护更新。系统多处采用自定义控件,加入动画效果,为用户带来良好的视觉与操作体验。

【关键词】列车旅行 iOS 第三方库

有人说:“人生旅途,不在乎目的地,只在乎沿途的风景”。随着经济蓬勃发展,人们生活水平质量提高,利用节假日时间出游的人越来越多。我国铁路的快速发展带动了旅游业的发展,更是支撑了列车旅行这一新兴的时尚的旅行方式的普及,也为列车旅行带来多样化的选择。比如你可以选择乘坐高速铁路或者动车出行,体验一番“N小时旅游圈”的快节奏旅游,如果你舍不下一路沿途的风景,那你可以选择乘坐传统的列车出行。列车旅游出行前,人们往往会认真仔细的规划出行路线,选择旅游目的地,了解旅游目的地的著名景点,风土人情等,同时也需要了解不同旅客对目的地的评价,以便做出判断。所以面对这样的列车旅行的市场前景,满足旅客对于获取旅游信息的需求,列车旅行系统应运而生。

1 iOS系统结构

iOS操作系统源于apple自家的计算机操作系统OSX,它的底层是基于UNIX,虽然它的体系架构传统,但是运行效率更高,设备对于硬件的要求低。在现有硬件条件下,能够保证应用运行具有良好的流畅性。

iOS平台结构一般分为四层:核心操作系统层(Core OS layer),核心服务层(Core Services layer),媒体层(Media layer),可触摸层(Cocoa Touch layer),如图1所示。

2 总体功能需求设计

本系统以列车旅行为主题,以iOS开发者文档为主要技术参考资料,以UITabbarController榛础框架结合UINavigationController实现系统界面的跳转与业务流的处理。该系统共分为五大模块:计划筹备,向往站点,乘坐车次,美丽中国,以及更多这个五大模块,用户可以利用前面三个模块来计划乘坐路线,途径站点,通过列车详情选择停靠站点后,又可对该站点所在城市的景点,酒店等你所感兴趣的地方进行搜索,系统将以全景地图的新式为您展示。美丽中国又为您提供了国内旅游热点城市推荐,该城市的热门景点的简介,其他旅客对她的评级,选择景点系统又会以全景地图的形式为您展示该景点,供您对该景点是否成为你旅行的一站进行评估,同时该模块大量使用动画进行界面切换为用户带来了良好的体验。在更多地模块里包含了用户登录,还有旅客信息收藏,作为一款潜力巨大的App作品,精品推荐作为一个良好的宣传平台是必不可少的,同样意见反馈可以为系统日后升级提供意见,功能结构如图2所示。

3 系统的流程设计

该系统设计了五个功能模块:计划筹备模块,向往站点模块,乘坐车次模块,美丽中国模块以及更多模块。系统的一般应用流程是用户通过注册登录到系统主界面,然后通过美丽中国模块查看热门旅游城市和热门旅游景点,热门景点的简介,以及其他旅客对景点的评价也可通过全景地图查看景点风景从而选择旅行的目的地,或者是自己主观想去的目的地。在确定旅游目的地后可以通过计划筹备模块输入出发地点和目的地点,查看途径车次列表,或者是通过向往站点来搜索经过该站点的车次列表,或者直接进入乘坐车次搜索车次,选择车次查看车次详情,并且可以选择是否发送信息提醒旅伴列车信息,选择车次详情中经过的某一站点还可对该站点所在城市的景点,酒店等进行搜索,并且系统已全景地图展示,生动形象。用户还可以通过更多模块中的旅客信息收藏来收藏旅伴的身份信息,方便以后联系与购票,还可以进入精品推荐选择自己喜欢的应用,进入意见反馈给我们开发者提供意见。

4 系统架构的设计

列车旅行系统是以Tabbar为基本框架,采用模块化设计,共分为五大模块,由Tabbar来控制每个模块之间的切换。而每个模块对应着一个UINavigationController,每个 UINavigationController又绑定一个主UIViewController,那么每个模块内的界面切换(UIViewController的切换),又是由UINavigationController来控制,这样形成了分级管理,层次清晰。

5 关键技术与实现

系统涉及到数据库检索,数据持久化,网络请求,第三方库的使用。那么在介绍之前,我们很有必要对系统的实现技术细节进行分析和归纳。系统在实现上的结构如图3所示共分为11部分,其中Xib是用户交互设计文件,这里不作介绍而Resource里面保存的是图片,计划筹备,向往站点,乘坐车次,美丽中国,更多分别对用着五大功能模块,而openSouse,CommonTool,DataBase,TableView是系统共用的,这里着重对这四部分进行介绍。

(1)openSouse:里面主要包括一些第三方库如身份证识别,语音输入,JSONKit和UIView的拓展UIViewExt。其中第三方库的使用更多的是注意编译问题,还有支持框架的导入,ARC于非ARC的混合编译等,同时有些库只支持真机调试,该部分属于公用的。

(2)CommonTool:里面包括了通用的工具类,自定义的控件,头文件等。其中通用工具类里面主要是一些方法,在整个项目过程中经常需要用到的一些操作,如输入框合法性的判断,归档与反归档函数,通用提示框的使用等,该部分属于公用的,如图3所示。

(3)DataBase:里面主要包括了对数据库操作的集合类DataBase.h,以及全局单例LCQ_Global.h它主要用于程序启动后一些全局数据的保存,里面还有列车类数据模型,精品推荐App数据模型,旅客信息数据模型等,该部分属于公用的

(4)TableView:里面主要是系统的列表类或者是TableViewController的子类,如列车详情信息列表ScheduleTable类在计划筹备和向往站点,乘坐车次这几个模块都会用到,那么有必要它们独立归类,该部分属于公用的。

5.1 计划筹备模块

5.1.1 模块界面的实现

视图控制器StationToStationViewController是该模块的主视图控制器,它的界面没有使用xib布局而是采用代码布局,这样的好处是你可以掌控界面控件的从创建到释放的全过程。在之后的模K有有使用到代码布局也有xib布局,代码布局将不再赘述,本模块界面实现语言输入部分示例如图4所示。

5.1.2 模块功能的实现

模块将要实现UISearchBarDelegate,UISearchDisplayDelegate,UITextFieldDelegate,

ABPeoplePickerNavigationControllerDelegate,CityTableViewControllerDelegate这五个,利用在回调中去做部分具体功能的实现。

5.2 向往站点模块

向往站点模块的主视图控制器是StationSearchViewController,因为向往站点在界面,功能的实现和计划筹备模块大体一样,所以本模块的界面同样采用代码布局,在功能实现上的细微差别,同样本模块还将对计划筹备模块进行部分补充。

5.3 乘坐车次模块

乘坐车次模块的的主视图控制器是TrainsViewController,它充当以下五个以实现模块的部分功能:ISearchBarDelegate,UISearchDisplayDelegate,UITextFieldDelegate,ABPeoplePickerNavigationControllerDelegate,TrainIDViewControllerDelegate,本模块的实现与前面两个模块实现基本一致,所以本模块只对细节实现上去区别进行介绍

(1)点击搜索按钮后对数据库的检索,如图5所示。

(2)用户点击搜索栏的BookButtonItem后,系统对数据库进行检索所有列车车次并展示, 如图6所示。

5.4 美丽中国模块

美丽中国模块的主界面布局采用xib布局方式但模块里面功能的具体实现使用代码实现的,包括各种动画等。和传统的代码布局相比,xib界面布局的效率更高,节省更多代码。但是需要注意的是xib布局要求开发者对控件要熟悉,同时自己无法完全掌握控件的创建与销毁的整个过程,为项目的调试带来一定的不方便。下面将对本模块的实现进行简单地介绍。

在主界面中选择某一城市后,进入城市热门景点的展示,在加载表ListView的时候注意的是表的cell是自定义cell同时配合自定义的数据模型对cell进行赋值与列车信息,海报视图是PosterView的实例,PosterView主要实现的效果是两个海报图联动,实现的原理是两个ScrollerView的相互绑定。

6 结束语

基于ISO技术设计并开发的旅行系统APP平台,框架设计较为全面,有许多适用便捷的功能模块,比如语音搜索,身份证扫描,信息自动获取等,在页面UI设计方面页做到了尽善尽美,能给客户带来更简单便捷,更舒适的体验。

参考文献

[1][美]Carlo Chung著.Objective-C编程之道:iOS设计模式解析[M].北京:人民邮电出版社,2011.

[2]关东升.iOS开发指南[M].北京:人民邮电出版社,2013.

[3][美]Dave Mark Jack Nutting Jeff LaMarche著.IOS 5基础教程[M].北京:人民邮电出版社,2012.

[4]王志刚,王元中,朱蕾著.iPhone UIKit详解[M].北京:电子工业出版社,2012.

[5]Erica Sadun.iPhone开发秘籍[M].北京:人民邮电出版社,2009.

[6][美]艾伦,[美]阿佩尔克莱因. iPhone开发实战[M].北京:人民邮电出版社,2009.

[7]控件UITableView官方文档[OL].

[8]iOS发送E-mail两种方法[OL].http://luoyl.info/blog/2012/04/two-way-to-send-email-in-ios/

[9]陈汶滨,朱小梅,任冬梅.软件测试技术基础[M].北京:清华大学出版社,2014.

作者单位

惠州城市职业学院 广东省惠州市 516000