论文部分内容阅读
【摘 要】3G的生活时代已经到来!当今社会的生活节奏越来越快,人们选择KTV作为一种娱乐放松的休闲方式。希望能随时找到自己周围的KTV信息并且有哪些优惠活动及预订情况。从以前的追求技术到现在的追求视觉,追求完美,因此也逐步的提高了对系统和应用程序的要求。IPhone使用苹果公司开发的ios操作系统,利用objective-c语言和x-code编辑工具对该应用程序进行编写。本文主要是介绍了在iPhone手机上的一款酒吧服务终端的设计与实现。
【关键词】IPhone ios KTV 服务终端
当今社会的生活节奏越来越快,同时由于现在的快节奏生活,人们在工作之余喜欢去KTV释放压力,但是往往好不容易查找到地址却没了包厢,失望之余,很多人希望能通过自己手机方便的查询到自己附近KTV以及预定情况。
一、选择iOS操作系统的原因
由于手机市场发展迅速,使得手机操作系统也出现了不同种类,对于智能手机而言,操作系统已经成为了决定其市场影响力的关键因素。也正是因此,在2010年的手机市场,有关智能手机操作系统的市场大战也频繁上演。苹果iOS是由苹果公司开发的手持设备操作系统,陆续套用到iPod touch、iPad以及Apple TV等苹果产品上,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。
其次,Google的Android过度的开放导致硬件平台水平贫富悬殊较大,CPU频率、屏幕尺寸、按键设计都花样百出,直接一句话概况:简直就是灾难,WP7在这方面表现得就比较好,CPU频率 屏幕尺寸 按鍵设计都有严格规定,能给用户一致而且友好的体验;苹果不用多说,硬件设计水平是次世代的,用户体验那是一直被模仿,从未被超越,其他厂商和Mac都有 10-20年的差距。
二、开发环境搭建
如欲创建一个新的iOS应用程序,您需先在Xcode中创建一个新的工程。所有和应用程序相关的信息,包括源文件、链编设置以及将所有这些事物集成在一起的规则都由该工程管理。
通过Xcode链编应用程序的时候,您可将其链编至iPhone模拟器或设备。模拟器为应用程序测试提供本地环境,您可以通过它测试应用程序是否具有正确行为。当应用程序的基本行为符合预期后,再通过Xcode将其链编到设备上,然后在已连接至计算机的iOS设备上运行程序。在设备运行应用程序是最终测试环境。在这一测试过程中,Xcode允许您将内建调试器绑定至设备上运行的代码,直接在设备上进行调试。
(一)使用Interface Builder构建界面
Interface Builder 以所见即所得方式组装用户界面。通过Interface Builder, 您可以把事先配置好的组件拖拽到应用程序窗口,并最终组装出应用程序的用户界面。
(二)Instruments的使用
为确保软件具有最佳的用户体验,在iOS应用程序运行于模拟器或设备上时,您可以利用Instruments环境分析其性能。Instruments会收集运行程序的数据,并以时间线方式展现数据。
(三)构建MyNotification应用程序
Settings views文件夹主要放用户设置的界面代码文件,sdwebdata文件夹放的是第三方的用于获取网络图片的文件。Uploadfile主要放的是上传文件的代码文件。Model放的是一些基本的数据结构bean。
三、项目需求分析
在用户的iPhone手机上安装了该终端后,用户能获取服务器上的KTV的信息。并且用户能在地图上找到自己附近的KTV。用户只要登录之后,就能随时接收KTV发送的一些消息,比如何时有活动,何时有降价。用户能对自己附近的KTV进行评价,或者拍些有关这个KTV的图片或者视频,上传到服务器。上传到服务器后,用户可以获得相应的分数。随后用户可以使用这些分数去换取该KTV的优惠服务。其他客户也能看见,其他人对这个KTV的评价等。用户能够对KTV发的消息选择是否添加为喜欢,添加喜欢之后,能在一个界面中,显示出那些信息。(见图1)
四、服务终端的详细设计
(一)程序逻辑的跳转
图2 程序逻辑
(二)用UINavigationController搭建程序框架
在iPhone开发中UINavigationController通常来管理界面间的跳转。当你的程序具有层次化的工作流时,就比较适合使用UINavigationController来管理UIViewController,即用户可以从上一层界面进入下一层界面,在下一层界面处理完以后又可以简单地返回到上一层界面,UINavigationController使用堆栈的方式来管理UIViewController。
进入下一层界面的代码如下。
[self.navigationController pushViewController:nextController animated:YES];
(三)MapKit的使用
有了iPhone,意味着我们不会再迷路了。有了iPhone内建的全球定位系统(Global Positioning System,GPS)硬件,以及一些创新的位置和地图软件,iPhone不仅随时知道你位于何处,而且还能显示给你看。
Map Kit是基于Google Maps引擎的地图框架,允许我们能够向应用程序中添加交互式的地图。地图可以滚动或缩放到地球上的任何区域,并且可以有标签或注释,以便向地图添加需要额外显示的信息。
你可以通过设置map view的scrollEnabled 和 zoomEnabled属性来设置是否允许滚动地图和放大缩小地图。 当MapKit检测到用户位置移动时。会调用
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 函数。可以在这个函数里进行界面的更新。
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation 用于在地图上添加类似小图钉的按钮。
例如:在地图上蓝点表示当前位置,紫色的表示自己周围的KTV。在地图下方有个slider。可以给用户选择搜索自己周围指定半径的KTV。
(四)通过URL下载数据和web service
本客户端由于数据量较小,出于便利的考虑,采用Http-Get的方法和服务器端通信。将值通过写在url里的方法,并且下载这条Url里返回的信息。例如:http://184.168.89.199/iphone/messages.php?userid=%@ 将用户登录后返回的id写入url,然后通过下载的类来下载这条Url返回的信息,然后解析,就可以显示出所有KTV发出的信息。返回信息的方式有两种,xml格式和json格式。出于解析便利的原因。采用json格式返回数据。
下载完成后在自定义的委托函数
- (void)downloader:(Downloader*)downloader completeWithNSData:(NSData*)data 中解析数据。将Data转换为字符串,再通过JSON解析成自定义的数据结构。
(五)APNS推送通知服务
获取deviceToken
第一步:获取认证书Certificates.p12 [注释:.p12 文件,文件名可以随便取]该Certificates.p12 认证书是用于服务器与APNs服务器SSL 连接时的认证,而获取p12的前提是获取APNs Assistant
第二步:iPhone 端
iPhone provisioning 以开启了PUSH功能App ID 生成相应的provisioning。
如果那些KTV在服务器端发送了一条消息,通过APNS服务传递给客户端上,用户可以选择查看或者忽略。
(六)iPhone 的UITableView
UITableView也是iPhone开发中经常使用到的界面,它可以呈现给用户一个表格视图,同时,要调用UITableView来显示界面很方便,只需要把要显示的数据放入数组中,然后调用一些委托函数,UITableView有一些委托方法,至于什么是委托,将在下一节介绍。
(七)iPhone开发的委托方法的定义
委托是iPhone开发中最简单、最灵活的模式之一。委托是指给一个对象提供机会对另一个对象中的变化做出反应或者影响另一个对象的行为。其基本思想是:两个对象协同解决问题。一个对象非常普通,并且打算在广泛的情形中重用。它存储指向另一个对象(即它的委托)的引用,并在关键时刻给委托发消息。消息可能只是通知委托发生了某件事情,给委托提供机会执行额外的处理,或者消息可能要求委托提供一些关键的信息以控制所发生的事情。
采用委托模式的好处在于:1.避免子类化带来的过多的子类以及子类与父类的耦合。2.通过委托传递消息机制实现分层解耦。
所以,我们可以利用委托模式完成很多工作。
到这里,基于iPhone的KTV信息服务终端的功能设计和实现讨论就基本结束了。
五、KTV服务终端效果图
图3 主界面 图4 KTV信息界面
参考文献:
[1]陆颖;《30天精通iPhone手机编程》;清华大学出版社;第一版(2011年5月1日)。
[2]金斯伯格(Suzanne Ginsburg);《iPhone应用用户体验设计实践与案例》;机械工业出版社;第一版(2011年6月1日)
[3]丹皮洛内;《深入浅出iPhone开发》;人民郵电出版社;第一版(2011年5月1日)
[4]John Ray;《iPhone开发入门经典》;人民邮电出版社;第一版(2011年11月1日)
作者简介:
杜梓平(1980- ),男,汉族,硕士,讲师,工程师,苏州工业园区服务外包职业学院信息技术系教师,研究方向:软件开发与应用。
【关键词】IPhone ios KTV 服务终端
当今社会的生活节奏越来越快,同时由于现在的快节奏生活,人们在工作之余喜欢去KTV释放压力,但是往往好不容易查找到地址却没了包厢,失望之余,很多人希望能通过自己手机方便的查询到自己附近KTV以及预定情况。
一、选择iOS操作系统的原因
由于手机市场发展迅速,使得手机操作系统也出现了不同种类,对于智能手机而言,操作系统已经成为了决定其市场影响力的关键因素。也正是因此,在2010年的手机市场,有关智能手机操作系统的市场大战也频繁上演。苹果iOS是由苹果公司开发的手持设备操作系统,陆续套用到iPod touch、iPad以及Apple TV等苹果产品上,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。
其次,Google的Android过度的开放导致硬件平台水平贫富悬殊较大,CPU频率、屏幕尺寸、按键设计都花样百出,直接一句话概况:简直就是灾难,WP7在这方面表现得就比较好,CPU频率 屏幕尺寸 按鍵设计都有严格规定,能给用户一致而且友好的体验;苹果不用多说,硬件设计水平是次世代的,用户体验那是一直被模仿,从未被超越,其他厂商和Mac都有 10-20年的差距。
二、开发环境搭建
如欲创建一个新的iOS应用程序,您需先在Xcode中创建一个新的工程。所有和应用程序相关的信息,包括源文件、链编设置以及将所有这些事物集成在一起的规则都由该工程管理。
通过Xcode链编应用程序的时候,您可将其链编至iPhone模拟器或设备。模拟器为应用程序测试提供本地环境,您可以通过它测试应用程序是否具有正确行为。当应用程序的基本行为符合预期后,再通过Xcode将其链编到设备上,然后在已连接至计算机的iOS设备上运行程序。在设备运行应用程序是最终测试环境。在这一测试过程中,Xcode允许您将内建调试器绑定至设备上运行的代码,直接在设备上进行调试。
(一)使用Interface Builder构建界面
Interface Builder 以所见即所得方式组装用户界面。通过Interface Builder, 您可以把事先配置好的组件拖拽到应用程序窗口,并最终组装出应用程序的用户界面。
(二)Instruments的使用
为确保软件具有最佳的用户体验,在iOS应用程序运行于模拟器或设备上时,您可以利用Instruments环境分析其性能。Instruments会收集运行程序的数据,并以时间线方式展现数据。
(三)构建MyNotification应用程序
Settings views文件夹主要放用户设置的界面代码文件,sdwebdata文件夹放的是第三方的用于获取网络图片的文件。Uploadfile主要放的是上传文件的代码文件。Model放的是一些基本的数据结构bean。
三、项目需求分析
在用户的iPhone手机上安装了该终端后,用户能获取服务器上的KTV的信息。并且用户能在地图上找到自己附近的KTV。用户只要登录之后,就能随时接收KTV发送的一些消息,比如何时有活动,何时有降价。用户能对自己附近的KTV进行评价,或者拍些有关这个KTV的图片或者视频,上传到服务器。上传到服务器后,用户可以获得相应的分数。随后用户可以使用这些分数去换取该KTV的优惠服务。其他客户也能看见,其他人对这个KTV的评价等。用户能够对KTV发的消息选择是否添加为喜欢,添加喜欢之后,能在一个界面中,显示出那些信息。(见图1)
四、服务终端的详细设计
(一)程序逻辑的跳转
图2 程序逻辑
(二)用UINavigationController搭建程序框架
在iPhone开发中UINavigationController通常来管理界面间的跳转。当你的程序具有层次化的工作流时,就比较适合使用UINavigationController来管理UIViewController,即用户可以从上一层界面进入下一层界面,在下一层界面处理完以后又可以简单地返回到上一层界面,UINavigationController使用堆栈的方式来管理UIViewController。
进入下一层界面的代码如下。
[self.navigationController pushViewController:nextController animated:YES];
(三)MapKit的使用
有了iPhone,意味着我们不会再迷路了。有了iPhone内建的全球定位系统(Global Positioning System,GPS)硬件,以及一些创新的位置和地图软件,iPhone不仅随时知道你位于何处,而且还能显示给你看。
Map Kit是基于Google Maps引擎的地图框架,允许我们能够向应用程序中添加交互式的地图。地图可以滚动或缩放到地球上的任何区域,并且可以有标签或注释,以便向地图添加需要额外显示的信息。
你可以通过设置map view的scrollEnabled 和 zoomEnabled属性来设置是否允许滚动地图和放大缩小地图。 当MapKit检测到用户位置移动时。会调用
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 函数。可以在这个函数里进行界面的更新。
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id
例如:在地图上蓝点表示当前位置,紫色的表示自己周围的KTV。在地图下方有个slider。可以给用户选择搜索自己周围指定半径的KTV。
(四)通过URL下载数据和web service
本客户端由于数据量较小,出于便利的考虑,采用Http-Get的方法和服务器端通信。将值通过写在url里的方法,并且下载这条Url里返回的信息。例如:http://184.168.89.199/iphone/messages.php?userid=%@ 将用户登录后返回的id写入url,然后通过下载的类来下载这条Url返回的信息,然后解析,就可以显示出所有KTV发出的信息。返回信息的方式有两种,xml格式和json格式。出于解析便利的原因。采用json格式返回数据。
下载完成后在自定义的委托函数
- (void)downloader:(Downloader*)downloader completeWithNSData:(NSData*)data 中解析数据。将Data转换为字符串,再通过JSON解析成自定义的数据结构。
(五)APNS推送通知服务
获取deviceToken
第一步:获取认证书Certificates.p12 [注释:.p12 文件,文件名可以随便取]该Certificates.p12 认证书是用于服务器与APNs服务器SSL 连接时的认证,而获取p12的前提是获取APNs Assistant
第二步:iPhone 端
iPhone provisioning 以开启了PUSH功能App ID 生成相应的provisioning。
如果那些KTV在服务器端发送了一条消息,通过APNS服务传递给客户端上,用户可以选择查看或者忽略。
(六)iPhone 的UITableView
UITableView也是iPhone开发中经常使用到的界面,它可以呈现给用户一个表格视图,同时,要调用UITableView来显示界面很方便,只需要把要显示的数据放入数组中,然后调用一些委托函数,UITableView有一些委托方法,至于什么是委托,将在下一节介绍。
(七)iPhone开发的委托方法的定义
委托是iPhone开发中最简单、最灵活的模式之一。委托是指给一个对象提供机会对另一个对象中的变化做出反应或者影响另一个对象的行为。其基本思想是:两个对象协同解决问题。一个对象非常普通,并且打算在广泛的情形中重用。它存储指向另一个对象(即它的委托)的引用,并在关键时刻给委托发消息。消息可能只是通知委托发生了某件事情,给委托提供机会执行额外的处理,或者消息可能要求委托提供一些关键的信息以控制所发生的事情。
采用委托模式的好处在于:1.避免子类化带来的过多的子类以及子类与父类的耦合。2.通过委托传递消息机制实现分层解耦。
所以,我们可以利用委托模式完成很多工作。
到这里,基于iPhone的KTV信息服务终端的功能设计和实现讨论就基本结束了。
五、KTV服务终端效果图
图3 主界面 图4 KTV信息界面
参考文献:
[1]陆颖;《30天精通iPhone手机编程》;清华大学出版社;第一版(2011年5月1日)。
[2]金斯伯格(Suzanne Ginsburg);《iPhone应用用户体验设计实践与案例》;机械工业出版社;第一版(2011年6月1日)
[3]丹皮洛内;《深入浅出iPhone开发》;人民郵电出版社;第一版(2011年5月1日)
[4]John Ray;《iPhone开发入门经典》;人民邮电出版社;第一版(2011年11月1日)
作者简介:
杜梓平(1980- ),男,汉族,硕士,讲师,工程师,苏州工业园区服务外包职业学院信息技术系教师,研究方向:软件开发与应用。