第一图书网

企业级iOS应用开发实战

杨宏焱 机械工业出版社华章公司
出版时间:

2013-2-5  

出版社:

机械工业出版社华章公司  

作者:

杨宏焱  

Tag标签:

无  

前言

前言为什么写这本书随着我国3G网络和移动互联网的兴起,许多传统的企业应用正在从桌面向移动终端扩展,移动办公、移动营销、移动作业等需求日渐强烈。有迹象表明,传统的互联网正在向移动互联网发展。根据摩根士丹利发布的全球互联网发展趋势报告(Mary Meeker 2010)显示:全球互联网发展趋势正在由PC-Internet向Mobile-Internet转变,手机在某种意义上已经主导着互联网的发展,新兴的下一代互联网,即Mobile 2.0正在崛起,这完全得益于移动通信技术的迅猛发展。这不仅仅是一场由最新数码科技与网络技术导致的变革,还是传统企业应用从Internet向移动互联网转移的前提和诱因。与PC相比,移动终端的这种全新用户体验是不可替代的,在一定程度上吸引了人们从桌面向移动终端的转移。而且,移动互联网也凭借着其出色的业务吸引力和资费吸引力,成为人们生活中不可或缺的一部分。然而,机遇与挑战并存。对于企业而言,能否将自己的企业应用向移动互联网扩展,仍然存在着巨大的风险。诸如:用户体验改变、企业信息安全和企业机密泄露、移动应用开发中存在的技术风险等。以苹果iOS为代表的移动应用开发正方兴未艾。iPhone和iPad正式进入中国的时间其实还不到3年(iPhone于2010年7月正式在中国香港上市),国内开发者在苹果商店上淘金的时间比这要早些,但绝对不会超过4年。实际上,App Store 拥有的历史还不到5年(App Store正式上线时间是2008年7月11日)。所以说,iPhone 应用开发仍然有着无限的潜力,称为“历史”恐怕为时尚早。因此,作者选择了以iOS为目标平台的企业移动应用开发作为本书讲述的主题。作者于2009年起开始接触iOS开发。对于一个多年奋战在企业应用开发第一线的开发人员来说,iOS企业开发是一个全新的领域。完全陌生的Mac OS X操作系统,别扭的Xcode IDE和Interface Builder,古怪的iOS……由于不知道什么是开发证书和代码签名,甚至在第一次调试我的3.5英寸屏幕的iTouch时,都是充满了坎坷。当我历尽千辛万苦,终于逐渐步入iOS开发这座大门。然而,却又面临新的问题:“企业应用是否能向iOS平台进行迁移?”从我第一天接到任务起,这样的怀疑就在我心中存在。iOS实在是太封闭了,相对于Android这样的开放平台,iOS 平台对企业开发人员的限制实在是太多。而且,App商店始终只是游戏开发者的天堂,90%以上的个人开发者把自己的目光盯在了游戏、娱乐等个人应用领域,企业应用根本无法登上App商店的大雅之堂。原因也很好理解,企业应用不会为苹果公司带来可观的利润分成,App商店的盈利模式是基于应用下载量的。一个企业应用会有多少用户?几百万?几千万?不,大多数企业应用的用户量不会超过5位数。没有庞大的用户群,就不会给App商店带来丰厚的利润分成。实际上,我第一次向App商店提交一个企业应用时,被无情地拒绝了。苹果公司给的理由很直白:“你的应用只针对有限的用户群”,换句话说“苹果将无利可图”。幸好苹果公司提供了“企业开发程序”(企业版IDP),虽然购买“企业开发程序”需要299美金一年,但对于一个真正决心将企业应用向iOS 移动终端扩展的企业来说,还是负担得起的。“企业开发程序”不需要苹果公司审核,使用“企业开发程序”部署应用不需要经过App商店,企业可以任意分发给自己的用户,苹果公司也不会找你要一分钱。可以预料,在将来一段时间内,国内的iOS个人应用开发者将不断向企业开发领域转移。实际上,苹果商店中个人应用的数量已经饱和,开发者的生存空间将逐渐变得狭小。大量的同质竞争直接导致了App商店的生态环境恶化,同类应用竞争激烈。为了保持 App 商店的竞争力和盈利模式不趋于低质化,苹果公司今后对商店应用的审核将越来越趋于严格,开发者想在商店中获利和生存的难度将越来越高。国内的公司及个人开发者会逐渐将目光转移到位于App商店生态圈之外的企业应用,iOS企业应用将成为今后新的利润增长点。最近,企业移动应用开发出现了一些新的趋势。最新的企业移动应用,有从 Native App(即本地代码)向云发展的趋势,比如HTML5、虚拟桌面。HTML 5 充分利用移动终端的浏览器(如Safari或IE)和网络连接能力,来访问企业服务,并实现“一次开发,跨平台共享”的目的。而虚拟桌面则利用“数据中心”进行桌面的扩展,将客户端的数据、资源和图像放到了“云”上,iOS客户端则通过网络访问个人桌面。虚拟桌面一般作为企业的“云计算”解决方案进行实施,市场上比较成熟的产品主要来自VMWare、Citrix、Microsoft和Oracle等几大厂商,它跟开发人员没有太大的关系。还有一种趋势就是“服务器配置+中间代码+本地代码”。开发人员在服务器上以配置的方式产生出中间代码,然后服务器将中间代码编译为多个平台的本地代码(iOS、Android、Sybian、Windows),然后分别部署,以此实现跨平台的目的。这些趋势的出现,从一定程度上试图解决当前本地代码开发(iOS开发、Android开发)的弊端,但效果还难以令人满意,比如都有性能下降、用户体验差、网络带宽占用大等缺点。因此,就目前来说,移动应用开发仍然是以本书介绍的本地代码开发为主流。本书特色本书是作者多年开发经验的总结,很多内容来自作者在CSDN上的博客,书中不少内容是经验之谈。本书根据iOS操作系统更新频繁的实际情况,针对新的SDK版本进行了内容上的调整(本书内容适用于SDK 4.0~5.0,本书所有代码在Xcode4.3下编译通过)。在介绍每一种SDK框架的同时,注重扩展,在继承的基础上进行创新,而不是一味复制、粘贴代码。本书具有如下特点:主题明确,以“iOS”和“企业开发”为主题, 但并没有将二者割裂开来,而是将二者紧密联系、互相呼应。首先由浅入深介绍了整个SDK框架层次,包括Objective-C语言简介、SDK的构成、Foundation框架、UIKit框架、QuartzCore、CoreAnimation以及其他第三方扩展框架,然后对在企业应用中一些需要特别讨论的方面(如安全、网络、APN、多线程等内容)进行专门的论述。撇开企业开发的特色不谈,本书也完全可以作为一本iOS开发的经典教材。理论和技术兼顾。许多iOS开发书籍,轻理论,重技术,往往只告诉你怎么做,而不告诉你为什么要这样做,难以让读者在理解的基础上加深记忆。而本书以理论为纲,以技术为体,从基本理论到具体使用的技术都一一道来,不仅告诉你怎么做,而且将每一种技术的来龙去脉阐述清楚。在讲解具体技术的同时,不时穿插着小的知识点,让读者进一步拓宽相关的背景知识。详细分析代码,实用性强。作为编程类书籍,免不了有大量的代码。但本书对多数代码都进行了阐释,重点内容还会有专门的标注,如“提示”、“注意”等,以提醒读者注意,或者及时回顾前面的知识点。本书中的每一个示例程序,都收录到本书的随书光盘中。所有的程序都经过作者认真调试,可以直接运行。合适阅读本书的人本书适用于以下读者:从未接触过Objective-C、从其他语言转向iOS开发、有一定面向对象编程基础的程序员。正准备转向企业移动应用开发的 iOS 应用程序开发人员 。如何阅读本书这是一本讲述iOS和企业应用开发相结合的书,介绍如何在iOS上进行企业应用的开发及分发、部署。本书从一个企业应用开发者的角度出发,以实现企业移动办公和3G应用为宗旨,介绍如何充分发挥苹果新一代操作系统iOS的优势和iPhone手机的软、硬件特性将企业应用扩展到iOS平台。在最后一章以step by step的形式介绍了一个实战项目,以达到理论与实践结合的目的。本书也对苹果Cocoa框架和其他第三方开源框架进行了深入介绍。针对本书面对的两种主要读者,我们建议如下:对于本书第一类读者,即“从未接触过Objective-C、从其他语言转向iOS开发、有一定面向对象编程基础的程序员”,本书提供了一个快捷的Objective -C语言入门,以及一个简单易读而又务实详尽的iOS SDK入门教程;本书的全部章节都将有助于读者尽快对Objective -C及iOS SDK有一个全面的了解,并迅速跨入iOS开发的大门。对于本书第二类读者,即“正准备转向企业移动应用开发的 iOS 应用程序开发人员”,可以省略阅读本书部分章节,例如第2、3、4、5、6各章,但本书其他一些章节具备了良好的参考价值,例如:第10章以后的各章,在这些章节中,有部分内容是其他参考书中难以见到的,可以有选择地阅读相应章节。本书共分19章,主要内容如下:基础篇第1章介绍了企业应用的概念,什么是iOS企业应用,iOS企业应用的框架及构成,特别是对于苹果iOS企业证书申请和iOS企业应用程序的部署方式(In-House、Ad-Hoc、OTA)进行了详细的介绍。第2章介绍iOS SDK,包括其框架和构成。iOS SDK是iOS开发中最为重要的工具和武器,每个iOS开发人员都必须熟悉并深刻理解它。第3章介绍iOS开发语言Objective-C。对于没有接触过这种语言的读者,将在本章对Objective-C有一个全面的理解。本章从两个方面对Objective-C进行了介绍,即Objective-C的C语言特性和面向对象特性。也对Objective-C的一些现代语言特性,如块编程(函数式编程中的主要内容)、反射(运行时支持)和可变参数也进行了介绍,这些内容在其他书籍中是比较罕见的。第4章介绍Xcode IDE。从Xcode 4.0开始,苹果对其功能和界面进行了全新的设计,把Interface Builder完全整合到Xcode中,使程序员的开发效率更高。第5章单独对Xcode中的Interface Builder 进行了进一步介绍,特别是Assistant Editor的出现,与之前的版本相比,大大简化了开发人员进行各种连接(IBOutlet和IBAction)的操作。第6章介绍UIKit以及UIKit中包含的一系列最基本的UI组件,此外,介绍了如何在UIKit的基础上进行扩充,创建自己的自定义组件库。企业应用篇第7章到第10章,依次从网络、XML/Json、数据存储、安全这几个方面进行介绍。这些内容中,有相当一部分是企业开发人员早已熟知的领域(如网络、XML/Json、数据存储和安全)。这些章节结合iOS自身的特点进行详细的阐述,包含安全沙箱、嵌入式数据库以及iOS安全框架等内容。第11章介绍Cocoa的多媒体、Quartz 2D和Core Animation框架。第12章介绍Cocoa Touch 特有的多点触摸和手势识别。第13章介绍如何利用iPhone的多语言支持实现应用程序的国际化。第14章涉及两个方面:传统的线程编程和并行编程GCD(Grand Central Dispatch)。在企业应用中,免不了要使用多线程。前者是传统的异步编程技术,直接与操作系统底层的线程打交道;后者是iOS 4.0以后新的异步编程技术,以一种函数式编程的方式,达到让系统自动进行线程管理的目的,从而避开了线程编程的复杂性。第15章介绍通知、本地通知和远程通知。通知是多个对象间进行对话的机制,但耦合性低于直接的方法调用。本地通知和远程通知是两种不同的进程唤醒技术,前者由系统来唤醒,后者通过RPC(Remote Process Calling)唤醒。第16章介绍开源框架Core Plot。Core Plot是著名的2D图形框架,用于绘制散点图、柱状图和饼图等图表。第17章针对iOS特有的硬件特性进行介绍,如通讯簿、相机、加速计和GPS。实战篇第18章,介绍“企业APN”在企业中的应用,以及使用“企业APN”网络对iOS客户端的一些特殊要求。该章实际上包含了一个实战项目,即一个简单的APN切换工具(同时也提供了简单的网络状态检测)。在这个实战项目中,涉及了广泛的内容和前面诸多章节中介绍的知识,诸如后台任务、配置描述文件、BSD Socket编程、网络检测、Safari阻塞和并行编程GCD。第19章以案例导航的方式介绍了一个实战项目,指导读者从用户的实际需求出发,结合本书中讲述过的理论知识和技术,开发一个完整的iOS邮件客户端,使读者对企业应用的开发有直观的认识。结语本书从开始选题、写作至最终定稿,总共花费了作者14个月以来所有的业余时间。在本书写作的过程中,得到了许多人的无私帮助和大力支持。首先要感谢的是吴怡编辑。她负责本书所有文字内容、图片及格式,她总是不厌其烦地向作者指出本书中的每一处错误。 直至最终定稿前,她仍然和作者对书中的内容进行讨论,甚至是逐字逐句地讨论,以使本书不至于出现太多谬误或引发读者产生歧义。其次要感谢我的同事们。在他们身上,我学习到了许多。我在工作中取得的每一点进步,都离不开他们的支持和指导,他们敬业的态度和对我的无私帮助,是本书得以成书的动力。还要感谢我的家人。本书是在他们的关怀和支持下才得以面世的,尤其是我的妻子,因为她的理解和默默奉献,使作者从家庭琐事中解脱出来,全身心投入本书的写作当中。我要感谢始终关注作者博客、不断给作者以鼓励的网友们。虽然直至本书出书之时,我都向他们隐瞒了本书的消息,但他们留下的只言片语,仍然激励着我在知识的海洋中不断前行、探索和攀登。最后,感谢所有在本书写作过程中,给本书以参考的文献作者和论坛作者。本书参考了大量文献,尤其是苹果文档参考库、苹果开发者论坛和stackoverflow.com,它们对本书的写作起到了重要的作用。由于作者的时间、精力及自身水平有限,书中错误在所难免,欢迎广大读者一一指正。

内容概要

本书内容全面,它不仅详细讲解了开发企业级iOS应用所需掌握的各项核心技术,以及各种工具和框架的用法,而且还系统讲解了企业级iOS应用开发的流程和方法;实战性强,不仅为各个知识点精心设计了能辅助读者理解的小案例,而且还有能指导读者进行完整实践的大案例,具备极强的可操作性。除此之外,本书还包含大量的开发技巧和最佳实践。
本书分为三部分:基础篇(1~6章),首先介绍了传统企业级应用与iOS企业级应用的区别、iOS企业级应用程序的架构以及发布方法,然后详细讲解了iOS的开发框架、Objective-C语法的核心要素、Xcode集成开发环境、Interface Builder和高级图形界面;核心技术篇(7~17章),系统深入地讲解了网络、XML和JSON、用户数据保存、安全、多媒体、绘图、动画、多点触摸和手势、GPS、重力感应、本地化、多线程、并行编程、通知、通讯簿等与企业级应用相关的核心技术特性,同时也讲解了开源框架CorePlot;实战篇(18~19章)以迭代的方式讲解了两个综合案例的完整实现过程,既融合了前面的理论知识,又展现了企业级iOS应用开发的流程和方法。

作者简介

杨宏焱,资深企业应用开发程序员,有多年J2EE开发经验,就职于某大型国有IT企业,负责南方电网多个企业信息化项目,其中多个项目拥有国家版权局的计算机软件著作权登记。目前专注于iPhone和Android平台下的移动应用开发。

书籍目录

前言 基础篇 第1章企业应用的话题/2 1.1什么是企业应用/2 1.1.1 传统意义的企业应用/2 1.1.2 iOS企业应用/3 1.2 iOS企业应用程序的架构/3 1.2.1服务端/4 1.2.2 iOS蓉产端/4 1.3 iOS企业应用程序的发布/5 1.3.1 iOS应用程序发布与App Store/5 1.3.2 Ad.Hoc与In.House发布/6 1.3.3 OTA无线部署/21 第2章iOS开发框架简介/24 2.1苹果iOS简介/24 2.2 iOS框架介绍/25 2.3 Cocoa Touch框架简介/25 2.4搭建iOS开发环境/27 2.4.1安装MacOSX操作系统/27 2.4.2下载安装SDK/33 2.5写一个iPhone程序/33 2.6在模拟器上运行应用程序/39 2.7在iPhone上运行应用程序/39 第3章Objective—C语法简介/42 3.1 Objective—C的C语言特性/42 3.1.1一个简单的Hello World/42 3.1.2 Objetive—C是另一种C/43 3.1.3数据类型/44 3.1.4常量、变量和宏/50 3.1.5#include和#import/51 3.1.6函数/51 3.1.7分支和循环/51 3.2面向对象的C/51 3.2.1类和对象/51 3.2.2消息机制/54 3.2.3 0bjective—C的内存管理/55 3.2.4类别和协议/57 3.2.5反射机制/59 3.2.6谓词/62 3.3 MVC模式/65 3.4 KVO模型/65 3.4.1 注册KVO/66 3.4.2接收变更通知/67 3.4.3发送变更通知/67 3.5块编程/68 3.5.1块的特点/68 3.5.2 Objective—C中的块/69 3.6可变参数/71 3.7本章小结/73 第4章Xcode集成开发环境/74 4.1创建第一个Xcode应用程序/74 4.2构成应用程序的那些东西/76 4.2.1 Info.plist和pch文件/76 4.2.2 Xib文件/77 4.2.3资源文件/77 4.2.4源代码文件/77 4.2.5 项目和目标/77 4.2.6 Frameworks/80 4.2.7应用程序的文档目录和临时文件夹/81 4.3 了解Xcode为我们做了些什么/83 4.3.1 main.m/83 4.3.2应用程序委托/84 4.4在Xcode中添加View Controller/84 4.5在Xcode中添加框架/89 4.6 Xcode使用技巧/90 4.6.1 自动完成/90 4.6.2查找和替换/91 4.6.3快速帮助/91 4.6.4快照/91 4.6.5书签/91 4.6.6使用导航条/92 4.7本章小结/92 第5章 Interface Builder/93 5.1 IB和xib、nib文件/93 5.2初识IB/94 5.3使用IB创建图形界面/95 5.3.I控制器和视图/95 5.3.2基本控件介绍/99 5.4连接/100 5.4.1 IBOutlet连接/100 5.4.2 IBAction连接/102 5.4.3委托连接/103 5.4.4使用Assistant Editor创建连接/105 5.5本章小结/106 第6章高级圈形界面/107 6.1应用程序多视图的导航/107 6.1.1 UITabBarController/107 6.1.2 UINavigationController/110 6.1.3 窗体导航应用实例/114 6.2表视图UITableViewController的应用及其扩展/116 6.2.1 简单的表视图控制器/116 6.2.2 UITableView的数据源和委托/117 6.2.3分组表视图/119 6.2.4可折叠的分组表视图/121 6.3扩展UIKit/131 6.3.1扩展日期挑选控件/131 6.3.2扩展单选按钮和复选按钮/133 6.3.3扩展下拉列表框/135 6.3.4封装自己的控件库/137 6.4翻页控件和翻页控制器/142 6.4.1 UIPageControl/143 6.4.2 UIPageViewController/147 6.5本章小结/152 企业应用篇 第7章网络/154 7.1使用NSURLCormection获得网络数据/154 7.2使用NSOperation进行异步请求/158 7.3与网络相关的示例/163 7.4 ASIHTTPRequest框架介绍/166 7.4.1发送同步请求/167 7.4.2发送异步请求/168 7.4.3文件上传/169 7.4.4文件下栽/172 7.4.5 Cookies和Sessions/176 7.5编写自己的网络模块类/179 7.5.1 PostRequest类/179 7.5.2 NetworkModule类/181 7.5.3 测试NetworkModule/185 7.6本章小结/186 第8章XML和Json/188 8.1 Cocoa与XML解析/188 8.1.1 NSXMLParser/188 8.1.2 NSXMLParserDelegate/189 8.2 TBXM[L/190 8.3 libxml/191 …… 实战篇

章节摘录

版权页: 插图: 第10章 安全 随着第3代数字通信技术的发展,手机网络的成熟度及信号质量获得了明显提升。这直接导致移动应用种类从单纯的个人应用、游戏娱乐逐渐向企业应用转移。这些应用涵盖了多媒体业务、交互式数据业务、电子商务、互联网服务等多种信息服务,手机信息安全的问题也就随之而来,比如个人密码和商业机密的泄漏。因此,在iOS企业应用开发中,为了保障系统的安全,常采用密钥机制对网络接人进行认证和鉴权,并使用各种加密算法对传输数据进行加密,以及确保数据完整性。本章主要讨论iOS客户端的安全机制。 首先介绍了iOS安全框架的相关概念,比如证书、密钥和信任服务。在苹果iOS和Mac OSx中,这些概念被集合到了钥匙串中。 在此基础上,我们介绍了企业应用中常见的X.509标准数字证书以及应用。通过Cocoa的Security framework框架,我们实现了对自签名X.509证书的验证,从而演示了如何应用Security框架来使用苹果的证书、密钥和信任服务。并总结了Security框架的不足之处。 Web应用中常使用SSL/TSL协议保证网络数据的传输安全。我们在第7章中介绍了ASIHTTPRequest框架,该框架对底层网络协议进行了封装,包括HTTP和HTTPs。 最后,我们介绍了两个比较常见的安全算法库0penSSL和CommonCrypto,并分别演示了如何利用这两个安全算法库实现了常见的MD5和DES加密。 10.1 iOS安全框架简介 关于苹果的安全框架,在苹果的文档中有详细的描述,其中两篇是我们必须阅读的:“Certificate,Key,and Trust Services Concepts”和“Certificate,Key,and Trust ServicesProgramming Guide”。本节我们主要介绍第一篇文档的一些内容,关于苹果安全框架中的一些基本术语,如证书、密钥和信任的概念。 10.1.1 证书、密钥和信任服务 证书(或称为数字证书)是用于校验证书发行者或持有者身份的数据集合。在网络中,要想识别一个人的身份不是一件容易的事情,要想在证书中实现这点,证书中必须包含大量的信息: 证书是谁签发的? 证书是发给谁用的? 有效期(何时生效?何时过期?) 证书所用的公钥。 数字签名,用于表明证书签发者身份,并保证证书未被篡改。


编辑推荐

《企业级iOS应用开发实战》内容全面,系统讲解开发企业级iOS应用所需掌握的各项核心技术,以及各种工具和框架的用法,包含大量技巧和最佳实践。实战性强,不仅为各个知识点精心设计了能辅助读者理解的小案例,而且还有能指导读者完整实践的大案例,具备极强的可操作性。

图书封面

图书标签Tags

广告

下载页面


企业级iOS应用开发实战 PDF格式下载



书名很大气,但内容却是让人失望。顶多就是一个精简版的入门书籍!内容基于ios sdk 5.0和xcode 4.2p27-p33在讲如何在虚拟上安装破解版的osx 10.6.5--这也能放到书上?


书本还不错,就是电子书的排版不是很好


还不错吧,内容挺全。


对于IPHONE开发很适用,讲的不错


为缺少实践的iOS程序员提供阅历


太不给力了,说的东西比较的没有,他这种说法。和我给你一些题目自己去查没多大区别。而且所包含的的东西也不是现在的主流东西,不太实用。觉得有点不发算


相关图书