2011年11月,iOS占据了全球智能手机系统市场份额的30%,在美国的市场占有率更是达到了43%。随着Andriod开源操作系统的异军突起以及Windows Phone的发力,iOS市场份额正被一点点的蚕食,但是iOS设备的利润率高的惊人,以智能手机为例,iphone的利润额占到整个智能手机利润额的80%,受益于此,苹果的市值也达到了5000亿美元。
1. 操作界面
iOS操作采用的是多点触控直接操作,控制方法包括滑动、轻触屏幕和图标及按键。操作有:滑动、轻按、缩小及放大。此外,iOS移动设备中还内置了加速器,使得旋转iOS设备时,界面也可以得到旋转,这也使得iPhone等便携设备更便于使用。自3GS开始,iphone装备有陀螺仪,这使得iphone有了重力感应,游戏效果更加的突出。
屏幕的下方是home键,点按回到主界面。底部是dock,可安放四个使用者最经常使用的程序的图标。屏幕最上方是状态栏,显示一些有关资讯:如时间、电池电量和讯号强度等。其余的屏幕用于显示当前的应用程序。启动程序,只需点按该程序的图标,点按屏幕下方的home键即退出应用程序。在iPhone 3.0及后续版本中,及时应用程序退出,当第三方软件收到了新的讯息时,苹果公司的服务器将把这些通知推送至iPhone或iPod Touch上(不管它是否正在运行中)。
2.2 Objective-C语言
Objective-C, 也通常被写作ObjC,是一种扩充C的面向对象编程语言,主要用于Mac OS X和GNUstep这两个使用OpenStep标准的系统。
Objective-C最开始并不支持垃圾回收,因为垃圾回收有漫长的"死亡时间", 会导致整个系统失去功用。但自Xcode4.0开始,支持自动释放,也就是ARC (Automatic Reference Counting)机制,不需要用户手动去Release每一个对象,编译器会在编译期间自动帮你添加那些以前你经常写的[NSObject release]。
Objective-C和C++有很多不同之处,Objective-C不支持运算符重载,也只允许对象单继承,但其引入的Categories和protocols可以提供很多多重继承的好处。很多常见的编译时的性能优化方法都不能应用于Obj-C,比如内联函数。
2.3 Xcode开发环境
Xcode是开发苹果应用程序的必备开发环境, 自4.0开始,开发人员就可以利用Xcode开发基于iOS的iPad、iPhone、iPod Touch 设备应用程序,只要你有Mac OS X Snow Leopard 10.6.2 以上版本 Mac OS 操作系统,便可安装ios sdk,如果你有iOS设备,便可让Xcode把应用程序部署到你的iOS设备上。另外,你还可以使用iPhone仿真器进行调试。Xcode提供了友好而方便的应用程序开发环境,这样你就可以开发出好的iOS应用程序了。
Xcode支持多种语言,如:C、C++、Objective-C、Java。另外,Xcode 的编译速度也极快。
Xcode还具有自由撤消的强大功能:Xcode 4 具有虚拟模型和设计功能,这可以让你更轻松的开发和维护应用程序。
2.4 SQLite数据库
iOS包含了SQLite数据库,它是一个简单的、轻量级的数据库,并宣布是"世界上部署的最广泛的数据库引擎"。目前很多嵌入式产品都使用SQLite,SQLite占用资源非常的低,在嵌入式设备中,只需要几百K的内存就够了。它支持Windows/Linux/Unix等主流的操作系统,比起Mysql、PostgreSQL这两款世界著名的开源数据库管理系统,它的处理速度都比他们快。
下面以具体实例的形式讲述创建SQLite的方法:
1.创建数据库命令:
sqlite3 shopping.db
若shopping.db文件已存在,则打开数据库,若不存在,则创建它。
2.创建表格:
create table shopping (key integer primary key,item text,price double,groupid integer,dateadded date);
3.插入数据:
insert into "shppinglist" (item,price,groupid,dateadded) values ("iPhone 3G", "199", 1, DATETIME('NOW'))
4.查询:
select * from shoppinglist
2.5 JSON解析
JSON(Javascript Object Notation)是一种轻量级的,以文字为基础,且易于让人阅读。尽管JSON是在Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。
JSON格式是1999年《JavaScript Programming Language, Standard ECMA-262 3rd Edition》的子集合,所以可以在JavaScript以eval()函式(javascript通过eval()调用解释器)读入。不过这并不代表JSON无法使用于其他语言,事实上几乎所有与网页开发相关的语言都有JSON函式库。
JSON用于描述数据结构,有以下形式存在:
1.对象 (object):一个对象以"{"开始,并以"}"结束。一个对象包含一系列非排序的名称/值对,每个名称/值对之间使用","分割。
2.名称/值对(collection):名称和值之间使用":"隔开,一般的形式是:
{name:value}一个名称是一个字符串;一个值可以是一个字符串,一个数值一个对象,一个布尔值,一个有序列表,或者一个null值。
3.值的有序列表(Array):一个或者多个值用","分割后,使用"[","]"括起来就形成了这样的列表,形如:[collection, collection]
4.字符串:以""括起来的一串字符。
5.数值:一系列0-9的数字组合,可以为负数或者小数。还可以用"e"或者"E"表示为指数形式。
6.布尔值:表示为 true 或者 false。
第三章 需求分析
LBS是由移动通信网络和卫星定位系统结合的一种增值业务,通过一组定位技术获得移动终端的位置信息,并提供给移动用户本人、他人及通信系统,实现相关信息服务的业务。值得注意的是,单独的位置信息不再是最终的服务,它需要结合有效内容的服务才能称得上是完整的LBS。因为传统意义上的导航服务作用是有限的,以导航为最终目的的服务往往只在用户处于相对陌生的环境时,才能满足用户需求。
3.1 设计背景
随着近年来智能手机的爆炸性增长,LBS已经开始广泛被使用并在改变我们的生活:下班后的朋友聚会,可以用大众点评网搜索附近500米内最好吃的餐馆;用Google地图寻找最快捷的路线和抵达方式;在街旁网上签到分享自己和朋友大快朵颐的照片;发一条新微博,顺手添上自己所在的位置;高德导航可以轻松取代车载GPS,指引下一个聚会地。在这个背景下,基于LBS的服务类应用如雨后春笋般得以大量涌现。
LBS基本模式:用户将信息上传到平台,进行信息管理与发布,根据需要决定开放的程度和内容,当用户需要开始基于位置的互动时,首先向平台开放定位搜索功能,并允许别人对自己进行定位。最后,平台利用其定位功能对用户进行定位,并对用户指定区域进行定位搜索,同时向用户提供所在地区的相关服务信息。用户根据反馈结果决定是否建立联系。
3.2总体设计
按照功能分成九大功能模块,如下表:
表3-5 程序功能表
模块简述 功能描述 附近 根据用户的手机位置,将用户所在位置的附近的签约商户的信息,显示在手机上,用户可以根据自己的需求选择所需要的服务,分门别类(如美食、酒店等)的进行展示 搜索 可以根据用户需求搜索关键字,通过输入商户名、地址等信息搜索特定商户和热门商区的商户信息。 签到 用户享受到商家的服务后,可以在该页面对商户的服务或商品进行评价,评分,改评价可以为以后的用户提供参考、对商户进行评价、上传照片、关注,商家可以凭借用户的好评。来提高自己的名声,吸引更多的消费者。 优惠券 显示正在进行的优惠商户信息,商家开始通过报纸杂志等传统平面媒体发布优惠券,并借此扩大自身品牌关注和知名度,就好比将派发的人扩大到了报纸所覆盖的区域,自然事半功倍。 排行榜 根据人气、评分等展示热门商户和最佳商户的排行 记录 收集
上一篇:
基于IOS的在线音乐播放系统的开发本科生毕业论文
下一篇:
记录文件6:基于IOS的易车新闻客户端