编辑推荐
国内首本系统论述iOS 6网络编程和云端开发的原创经典著作,九大专业机构、十位知名专家鼎力推荐!繁体中文版台湾地区同步发行!
高焕堂、柯博文联袂作序!
工信部移动开发人才培养办公室推荐用书!
内容简介
书籍 计算机书籍
《iOS网络编程与云端应用最佳实践》是介绍iOS 6网络编程和云端应用开发技术书籍,介绍了苹果网络、数据交换格式、WebService、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook、以及社交网络编程,还介绍了网络通信设计模式和架构设计。
全书分为5部分:网络基础篇、云服务篇、社交篇、电子商务篇和实战篇。网络基础篇包括第2章~第3章,介绍了网络结构、Socket网络通信、对等结构网络、Bonjour服务发现,以及JSON和XML数据交互格式。云服务篇包括了第4章~第5章,介绍了客户端服务器结构网络通信两种具体实现方式:REST WebService和SOAP Web Service,以及iCloud编程。社交篇包括了第6章~第7章,介绍了Twitter、Facebook、新浪微博社交网络客户端编程API,以及定位服务与地图应用开发。电子商务篇包括了第8章~第11章,介绍了推送通知、Newsstand应用编程、服务器产品类型应用内购买、iOS6Passbook应用开发。实战篇包括了第12章~第13章,通过重构MyNotes应用介绍了iOS网络通信中的设计模式与架构设计,最后通过价格线酒店预订iPhone客户端开发介绍了iOS敏捷开发过程。
作译者
关东升,国内知名iOS技术作家,iOS技术顾问,高级培训讲师,移动开发专家。精通iOS、Android和 WindowsPhone及Html5等移动开发技术。曾先后主持开发大型网络游戏神农诀iOS和Android客户端开发、国家农产品追溯系统iPad客户端开发、大型团购网站移动端开发、金融系统微博iOS、WP7、Android客户端开发。在AppStore发布多款游戏和应用软件,擅长移动平台的应用和游戏类项目开发。近期为中国移动研究院、方正科技、大唐电信、中石油等企事业单位授课。著有《iOS6开发指南》、《iOS网络编程与云端应用最佳实践》、《iPhone与iPad开发实战——iOS经典应用剖析》、《Android开发案例驱动教程》、《Android网络游戏开发实战》以及《JSP网络程序设计》等书籍。
目录
《iOS网络编程与云端应用最佳实践》
推荐序(一)Ⅰ
推荐序(二)Ⅲ
赞誉Ⅴ
前言Ⅶ
第1章开篇综述
1.1本书结构
1.2本书中的约定
1.2.1实例代码约定
1.2.2图示的约定
网络基础篇
第2章沟通无限——苹果的网络
2.1网络结构
2.1.1客户端服务器结构网络
2.1.2对等结构网络
2.2基于Socket的C/S结构网络通信
2.2.1Socket概念
2.2.2Socket编程
2.2.3实例:NSStream&CFStream实现TCP Socket服务器端
2.2.4实例:NSStream&CFStream实现TCP Socket客户端
2.3Bonjour服务发现
2.3.1发布服务
2.3.2解析服务
2.3.3查找服务
2.3.4实例:基于服务发现的Socket通信服务器端
2.3.5实例:基于服务发现的Socket通信客户端
2.4对等结构网络
2.4.1使用Game Kit开发对等结构网络应用
2.4.2实例:基于蓝牙对等网络通信
本章小结
第3章数据交换格式
3.1XML数据交换格式
3.1.1文档结构
3.1.2XML文档解析与框架性能
3.1.3实例:MyNotes应用XML
3.2JSON数据交换格式
3.2.1文档结构
3.2.2JSON数据编码/解码与框架性能
3.2.3实例:MyNotes应用JSON解码
本章小结
云 服 务 篇
第4章使用Web Service——基于客户端服务器结构网络通信
4.1REST Web Service
4.1.1HTTP和HTTPS协议
4.1.2同步GET方法请求编程
4.1.3异步GET方法请求编程
4.1.4POST方法请求编程
4.1.5实例:REST Web Service实现的MyNotes应用
4.2SOAP Web Service
4.2.1WSDL概念
4.2.2SOAP协议
4.2.3实例:SOAP Web Service实现MyNotes应用
4.3ASIHTTPRequest框架使用
4.3.1安装和配置ASIHTTPRequest框架
4.3.2同步请求
4.3.3异步请求
4.3.4实例:请求队列应用
4.3.5实例:上传数据应用
4.4反馈网络信息改善用户体验
4.4.1iOS 6表视图刷新控件的使用
4.4.2使用等待指示器控件
4.4.3使用网络等待指示器
4.4.4使用MBProgressHUD等待指示器
本章小结
第5章iCloud编程
5.1苹果云服务——iCloud
5.2配置iCloud
5.2.1创建App ID
5.2.2创建配置概要文件
5.3iCloud数据存储
5.3.1iCloud键值数据存储
5.3.2iCloud文档存储
5.3.3iCloud存储注意事项
5.4iCloud键值数据存储编程
5.4.1实例:iCloud键值数据存储设计
5.4.2配置Xcode工程
5.4.3代码实现
5.5iCloud文档存储编程
5.5.1实例:iCloud文档存储编程设计
5.5.2配置Xcode工程
5.5.3自定义文档类
5.5.4获得iCloud文档目录
5.5.5查找Ubiquity容器中的文档
5.5.6保存文档
5.5.7解决文档冲突
5.6在iCloud下使用Core Data技术
5.6.1实例:iCloud Core Data编程设计
5.6.2使用Xcode创建Core Data工程
5.6.3创建持久化存储协调者
5.6.4创建被管理的对象上下文
5.6.5合并iCloud与本地数据
本章小结
社交篇
第6章社交网络编程
6.1苹果公司的社交网络
6.1.1设置账户信息
6.1.2社交网络编程API
6.2iOS 6分享列表——UIActivityViewController
6.2.1内置活动列表项
6.2.2自定义活动列表项
6.3撰写视图控制器——SLComposeViewController
6.4编写自己的社交网络客户端
6.4.1实例:编写新浪微博客户端
6.4.2实例:编写Twitter客户端
6.4.3实例:编写Facebook客户端
本章小结
第7章定位服务与地图应用开发
7.1定位服务
7.1.1定位服务编程
7.1.2地理信息反编码
7.1.3地理信息编码查询
7.1.4关于定位服务的测试
7.2使用iOS 6苹果地图
7.2.1显示地图
7.2.2添加标注
7.2.3跟踪用户位置变化
7.3使用程序外地图
7.3.1调用iOS 6苹果地图
7.3.2调用谷歌Web地图
7.4使用本地化的百度地图
7.4.1百度地图的安装与初始化
7.4.2显示地图
7.4.3地理信息编码与反编码
7.4.4添加标注点
本章小结
电子商务篇
第8章发布你的促销信息——推送通知
8.1苹果中究竟有多少个“通知”
8.1.1广播通知
8.1.2本地通知
8.1.3推送通知
8.2配置推送通知
8.2.1证书签名请求
8.2.2配置应用推送通知
8.2.3生成SSL证书
8.2.4为SSL证书导出p12文件
8.3iOS客户端编程
8.3.1配置Xcode工程
8.3.2代码实现
8.4推送服务端编程
8.4.1使用PHP实现推送服务
8.4.2使用Java推送服务
本章小结
第9章报刊杂志——Newsstand应用编程
9.1iOS 5中Newsstand应用
9.2Newsstand应用编程
9.2.1配置Newsstand
9.2.2使用Newsstand Kit API
9.3实例:MyNewsstand杂志应用
9.3.1实例设计原型草图
9.3.2实例设计类图
9.3.3初始化杂志画面
9.3.4主动式下载资源
9.3.5后台下载资源
9.3.6断点续传
9.3.7读取杂志内容
本章小结
第10章应用内购买
10.1应用内购买实例设计
10.2测试环境搭建
10.2.1添加测试用户
10.2.2创建App ID
10.2.3添加空白应用
10.2.4为应用添加购买产品信息
10.3服务器产品类型应用内购买
10.3.1工作流程
10.3.2实例:应用内购买iOS客户端
10.3.3实例:PHP实现的服务器端
本章小结
第11章iOS 6 Passbook应用开发
11.1Passbook与Pass
11.1.1Pass的5种风格
11.1.2Pass的内部结构
11.2设计Pass
11.2.1pass.json文件结构
11.2.2Pass类型和字段
11.2.3二维条形码
11.2.4位置与时间
11.2.5本地化
11.2.6图标和图片的使用
11.3创建Pass
11.3.1创建Pass证书
11.3.2数字签名与打包Pass文件
11.4发布Pass
11.4.1E?mail发布
11.4.2Web网站发布
11.5Pass Kit编程
11.5.1实例:MyPass实例设计与说明
11.5.2准备工作
11.5.3访问Passbook
11.5.4添加与替换Pass
11.5.5删除Pass
本章小结
实战篇
第12章重构MyNotes应用——iOS网络通信中的设计模式与架构设计
12.1移动网络通信应用的分层架构设计
12.2基于委托模式实现
12.2.1网络通信与委托模式
12.2.2异步网络通信中委托模式实现分层架构设计
12.2.3类图
12.2.4时序图
12.2.5数据持久层代码实现
12.2.6业务逻辑层代码实现
12.2.7表示层代码实现
12.3基于观察者模式通知机制实现
12.3.1观察者模式的通知机制回顾
12.3.2异步网络通信中通知机制实现分层架构设计
12.3.3类图
12.3.4时序图
12.3.5数据持久层代码实现
12.3.6业务逻辑层代码实现
12.3.7表示层代码实现
本章小结
第13章iOS敏捷开发项目实战——价格线酒店预订iPhone客户端开发
13.1应用分析与设计
13.1.1应用概述
13.1.2需求分析
13.1.3原型设计
13.1.4架构设计
13.2iOS敏捷开发
13.2.1敏捷开发宣言
13.2.2iOS可以敏捷开发
13.2.3iOS敏捷开发一般过程
13.3任务1:创建应用基本工作空间
13.3.1迭代1.1创建业务逻辑层工程
13.3.2迭代1.2创建表示层工程
13.4任务2:业务逻辑层开发
13.4.1迭代2.1编写搜索酒店的业务逻辑层类
13.4.2迭代2.2编写房间查询业务逻辑类
13.5任务3:表示层开发
13.5.1迭代3.1根据原型设计初步设计故事板
13.5.2迭代3.2搜索酒店模块
13.5.3迭代3.2.1选择城市视图控制器
13.5.4迭代3.2.2选择关键字视图控制器
13.5.5迭代3.2.3选择价格和日期拾取器
13.5.6迭代3.2.4酒店搜索视图控制器
13.5.7迭代3.2.5酒店搜索列表视图控制器
13.5.8迭代3.3房间查询模块
参考文献
前言
2012年9月19日苹果公司开放iOS 6下载,2102年12月14日iPhone 5在中国发售,iOS 6正渐入佳境。在iOS 6应用开发中,有很多涉及网络编程与云端应用的技术,例如:LBS、Web Service、iCloud等,本书主要介绍这方面的知识。本书是智捷iOS课堂团队编写iOS系列丛书中的一本,目的是使一个有iOS基础的程序员通过本书的学习,能够开发iOS网络编程与云端应用的程序。另外,对于没有iOS基础的读者,也推荐先阅读我们编写的《iOS 6开发指南》(网站:http://www.iosbookl.com),这两本书知识体系相辅相成,衔接得很好。
本书从iOS 6发布开始编写,寒来暑往,我们经过几个月的努力,终于在2013年春节完成初稿。这几个月来我们智捷iOS课堂团队夜以继日,几乎推掉一切社交活动,推掉很多企业邀请去讲课的机会,每天工作12小时,不敢有任何的松懈,心无旁骛,只做一件事情——编写此书。每一个文字、每一个图片、每一个实例我们都精雕细琢。
本书没有包括多媒体等知识,我们会在另外一本iOS游戏开发书中介绍,具体进展请读者关注智捷iOS课堂官方网站http://www.51work6.com。
关于本书网站
为了更好地为广大读者提供服务,我们专门为本书建立了一个网站http://www.iosbook3.com,通过这个网站,大家可以查看相关出版进度,并对书中内容发表评论,提出宝贵意见。
关于源代码
配套提供每一个章节实例源代码,以及MyNotes和价格线两个项目完整的源代码,读者可以到本书网站http://www.iosbook3.com或清华大学出版社网站本书页面下载。
勘误与支持
我们在网站http://www.iosbook3.com中建立了一个勘误专区,及时地把书中的问题、失误和纠正反馈给广大读者;如果您发现了问题,可以在网上留言,也可以发送电子邮件到:eorient@sina.com,我们会在第一时间回复您。也可以在新浪微博中与我们联系:@tony_关东升。
致谢
在此感谢清华大学出版社的盛东亮编辑给我们提供了宝贵的意见。感谢智捷iOS课堂团队的李玉超和贾云龙参与内容讨论和审核。感谢赵大羽老师手绘了书中全部草图,并从专业的角度修改书中图片,力求更加真实完美地奉献给广大读者。感谢我的家人容忍我的忙碌,以及对我的关心和照顾,使我能抽出这么多时间,投入全部精力专心编写此书。
由于时间仓促,书中难免存在不妥之处,请读者原谅,并提出宝贵意见。
关东升
2013年3月于北京
序言
推荐序(一)
云计算与智能终端的整合趋势日益显著,致力于云与端垂直整合的企业(如亚马逊、阿里巴巴、苹果、谷歌等)具有显著的市场竞争优势。在这种潮流之下,于iOS、Android、Win8等平台之上,基于网络编程技术,建立从端到云的行业型应用,具有巨大的商机。此时,《iOS网络编程与云端应用最佳实践》一书指导您非常系统化地建立端云整合的各种应用;此种技术还可以成为很好的基础,支持多机整合、多种互动新型应用,有效支持更多创新的端云整合商业模式。此书提供大量的范例代码,让您在最短的时间内获得扎实的设计经验和技巧,并应用于各行各业,以最佳实践打造您的竞争力。
高焕堂
2013年4月于台湾
推荐序(二)
2010年1月春节前夕,在北京的一场对移动开发有重大影响力与前瞻性的会议——首届海峡两岸Android技术及产业合作发展研讨大会上第一次遇到关东升老师,在一场算是华人圈首场移动终端的会议中,与关老师就智慧型手机与移动终端交换很多意见,并在后续的与中国移动的合作中,有幸与关老师一同参与,也见识到关老师对移动终端的开发与推广的热情。在出版前,能够阅读到这本全面介绍iOS网络开发与云端应用方面的图书,非常荣幸。这本书涵盖了最新的iOS 6的相关内容,通俗易懂,深入浅出,对于企业级应用的网络应用开发,是一本优秀的学习参考书籍。本书不仅侧重应用,而且兼顾理论,不可多得。也感谢关东升花这样多的时间与精力,研究收集素材、字斟句酌;书中同时提供了大量的实战案例,便于实践动手。对移动开发者在iOS开发的道路上,本书一定是不可或缺的经典好书。
——柯博文(硅谷LoopTek公司CTO,大富翁游戏开发者)
2013年4月于美国硅谷
媒体评论
该书内容丰富、案例实用,不仅对iOS开发网络应用的基本原理做了清晰阐述,并且对Apple的云存储iCloud、推送服务、应用内购买等核心技术都有相关说明,是iOS网络开发工程师必备的指导手册。
——沈大海 工信部移动互联网人才培养办公室
移动互联网发展到现阶段,仅依靠编程技巧已经不足以支撑技术人对于成功的渴望和诉求。编程技术必须通过优秀的产品作为载体,才能帮助移动团队走向成功。iOS开发如何更好地与iCloud及开放平台进行结合,如何通过云计算节约自身成本,通过云计算让更多的用户接触并且成为自身产品的用户,这是每一位移动互联网从业人员都应该思考的问题。本书是一部将产品技术与云计算充分结合的知识库,希望能够帮助更多的朋友走向成功。
——王希正 51CTO
生动形象的比喻、详实丰富的案例,以及足金足赤的项目案例,可见作者在iOS软件开发特别是iOS网络应用程序开发的功力。随着移动互联网生态的日益成熟,随着云端技术的不断发展,随着iOS系统的不断升级,随着Apple公司对iOS战略的逐步调整和升级,iOS网络程序开发势必成为这个领域开发者必须掌握的核心技术之一。还等什么,这本书将是你全面打开这扇大门的一把金钥匙!
——张凌华 麦可网创始人
毫无疑问,这是一本指导iOS开发者前进过程中必备的参考书!该书准确定位于网络编程与苹果云服务iCloud编程,深入剖析了大量实际项目中所用到的网络需求方案,如社交网络联结、实时地图定位、应用内购买等。实为当下移动网络大行其道之时开阔思路,增长见识,提高收益的至胜法宝!
——卞安 知名Cocos2d-x开发专家
iOS无疑是当前最重要的移动操作系统之一,而网络编程与云端开发在移动终端中的应用举足轻重。该书系统论述了iOS6的网络、数据交换、WebService、iCloud、定位服务、Passbook、社交网络编程以及通信设计模式等内容,并给出具体的设计案例,极具参考价值,推荐阅读!
——吴学友 DevDiv创始人
该书是国内首本基于iOS6的系统介绍网络编程与云端开发的专业技术图书。从图书内容来看,具有非常实用的特色——理论扎实,实例详实,代码完整,插图精美。作为一名IT工作者,“分享”是一种境界。愿更多读者,移动开发与云端开发从业者参考,阅读!
——姚尚朗 eoe联合创始人、CTO
该书是国内首部iOS 6网络编程方面的高端技术图书,详尽的讲解了iOS中网络应用开发的技巧。可以看出作者分享了自己在开发过程中的经验和心得,尤其将iOS6最新的开发技术奉献给广大读者。相信本书会是广大iOS开发者在开发道路上的良师益友。
——iOS分享网
移动互联网是未来趋势,移动互联网融入到企业应用开发中也是一种趋势,本书结合大量案例讲述iOS网络应用开发技巧,使读者很容易理解,学习。同时本书对iOS6推出的最新的Passbook,Newsstand等技术进行了详细讲解,也是本书相当精彩之笔。本书最后两个项目分别从iOS架构设计,以及iOS敏捷开发方向介绍iOS开发,更是精彩。本书对iOS开发者技术提高,无疑是一部经典作品。
——智捷iOS课堂