我第一次与计算机结缘是15岁那年在荷兰读高等技术学校时,在那里我结识了Sinclair ZX-81。这是一台只有16KB内存的小型计算机,但是它很神奇,我从接触它的第一天起就开始了我的编程生涯。
在1981年,当硬件和软件革命开始时,我又使用了Exidy Sourcer和Commodore 64计算机,很快我又有了我的第一台个人电脑XT(IBM Personal Computer XT)。让我着迷的事实是,你可以通过编程让计算机去精确地执行想要它们做的事情。而且,我能够为这些计算机的系统开发软件。
我开始用汇编语言编程,在一段时间后,我学会了用C、Basic、QuickBasic、Delphi、Pascal、Turbo Pascal、C++、Java、Microsoft VB.NET、Microsoft C#和Objective-C等语言编程。编程成为了我的职业,我热爱这份职业。
不管怎样,像许多程序员一样,由于之前已经获得的知识和技能,我做了分析师、软件工程师和顾问,并最终进入了管理岗位。我的编程时间开始变得越来越少,而这却是我最喜欢做的事。
在我的职业生涯中,我管理和共同成立了几家IT服务公司,并在这些公司中担任项目经理、商业顾问和董事,但是我总是能够在这些项目中找到时间去做一些软件开发工作。
在这些年里,我曾经给一些大公司交付过高端软件解决方案,例如富士胶片公司(Fuji Photo Film)、壳牌公司(Shell)、联合利华公司(Unilever)、普利斯通公司(Bridgestone)、阿尔卡特(Alcate)、理光公司(Ricoh)以及全世界的其他许多公司。我不是图像设计师,并且设计应用的视觉效果并不是我的强项。我向来关注于代码优化和新技术的探索。开发出高阶面向对象的代码而又使用极少内存占用空间的设计仍旧是一项挑战。
在2006年,我决定抛弃荷兰的繁忙生活,搬到法国,在那里我成立了一家软件公司,专注于开发后端的软件解决方案,不久后,也专注于开发iOS应用。
我的专业团队现在为澳大利亚、欧洲和美国的客户开发iPhone和iPad应用,在这一领域内,我们使用最新的SDK和现代程序开发实践,并交付从后端的管理系统到iOS应用的端到端的解决方案。
本书读者对象
这本书适用于想要提高和扩展Objective-C语言编程技能的开发人员、有经验的iOS开发者以及毫无经验的iOS开发新人。
本书需要读者掌握Xcode开发环境的一些基本知识和Objective-C语言开发的基础,这样能够理解本书提供的详细而深入的说明,以及70个编程示例代码。
本书在介绍开发高级iOS应用所涉及的技术方面,对想要加深理解其内容的每一位读者和iOS开发人员都很有价值。本书可以被当作参考书来使用,用以理解iOS SDK的细节。
本书包含编程技巧的详细说明,以及70个示例代码,这也使本书成为大学教授和培训师的理想教材。
本书主要内容:
本书涵盖了开发高级iOS应用所需要的所有主题。所有的说明和代码示例都适用于最新的iOS 7 SDK并经过测试。
本书涵盖以下主题范围:
● 创建Personal Library
● UITableView
● Map Kit框架
● Action和Alert概述
● 国际化
● 在你的应用中使用多媒体
● 使用Web服务和XML-JSON解析
● 开发FTP客户端
● Core Data框架的实现
● 使用通知
● 实现E-mail、SMS和拨号功能
● Address Book框架的介绍和使用
● Event Kit框架编程
● Social and Accounts框架的使用
● 分析你的应用
● 从应用获利和Store Kit框架的使用
● 证书和配置文件
● 打包和发布你的应用
Interface Builder和Storyboard的用法,以及用户界面设计范例
每个iOS程序员在他们的应用中如何创建用户界面元素都有个人的喜好。在我自己的工作中,我使用代码创建所有的用户界面元素,因为我喜欢这种方式带来的可控性和可扩展性。因此,在这本书的绝大多数的课程中,你将发现使用Interface Build文件。例如,有些开发者更喜欢使用Storyboard,在任何项目中,他们都可以使用Storyboard代替Interface Builder,你也可以如此选择。这本书在两种情况下对开发者来说应该都有用处。
本书篇章结构
本书分为4个部分:
● 第Ⅰ部分:开发高级UI
● 第Ⅱ部分:网络和数据处理
● 第Ⅲ部分:集成应用
● 第Ⅳ部分:将应用运用到生产环境中
第Ⅰ部分:开发高级UI包含以下章节:
● 第1章:创建Personal Library
● 第2章:Tableview进阶指南
● 第3章:Map Kit框架
● 第4章:ActionView和Alert概述
● 第5章:国际化:为全世界构建应用
● 第6章:多媒体的使用
第1章以开发包含可重用代码的Personal Library类为开头,你可以将这些代码用作基础框架在每一个应用中使用。在后续的章节中,你将用更多的功能扩展这个Personal Library类。
第2章将教你构建让人眼前一亮的表视图的方法,你将学会如何构建带有下拉即出现搜索条功能的表视图。
第3章全部是关于Map Kit框架的内容。你将了解位置管理器(Location Manager)的概念,并且会以开发为目的扩展GPS模拟器。你将会开发带有自定义标注的群集地图视图。
动作视图和提醒控件是第4章要讨论的主题内容。你将学会如何在应用中实现动作视图和提醒控件,与使用应用的用户交互。
第5章将通过对本地化的技巧的讲解,以及对国际化日期和数字格式的方法的讲解,教会你如何为全世界的用户国际化应用。
第6章全部介绍的是多媒体。你将学会显示和创建PDF文档的有效方法,以及使用不同的可用框架播放和录制音频或者视频。
第Ⅱ部分:网络和数据处理包含以下章节:
● 第7章:使用Web服务和解析
● 第8章:使用FTP
● 第9章:Core Data框架的实现
第7章将教会你如何通过REST或SOAP协议使用Web服务,以及如何使用GET和POST动作将数据发送给这些Web服务。对以XML和JSON格式返回的应答信息的解析将在本章的结尾详细阐述。
第8章将讲解文件传送协议(File Transfer Protocol,FTP)适配iOS应用架构的方法。还将讲解使用Objective-C语言怎样能够编写出简单的FTP客户端。应大多数读者的进一步要求,本章也会讲解基于Objective-C的类编写一条FTP命令的方法。
第9章将讲解所有关于Core Data框架的内容。它阐述了Core Data这个框架的概念,存储方法、实体、关系以及读取数据的方法。
第Ⅲ部分:集成应用包含以下章节:
● 第10章:通知
● 第11章:发送电子邮件、SMS和拨打电话
● 第12章:了解Address Book
● 第13章:事件编程
● 第14章:与社交媒体集成
第10章将会讲解实现内部通知和外部推送通知的方法。
第11章将会讲解从应用内发送E-mail和短信消息的方法,以及拨打电话的方法。
第12章将会讲解使用Address Book框架读取和写入联系人数据库的方法。你将学会如何请求访问联系人数据库的权限,以及为了使用联系人数据而展示用户界面。
第13章将会讲解从应用内创建和管理事件和提醒的方法。
第14章将会讲解在应用中内部集成Facebook和Twitter的方法。你将学会如何展示用户的Tweet(注:Twitter上用户发送的一条消息)和Facebook用户墙上的留言,以及如何发表留言到Facebook,或者发送Tweet。
第Ⅳ部分:将应用转化为产品包含以下章节:
● 第15章:分析应用
● 第16章:从应用中获利
● 第17章:了解iTunes Connect
● 第18章:构建与发布
第15章讲解在应用中实现耗用分析的方法。
第16章讲解从应用中获利的方法。本章包含了深入的阐述和程序内购买的辅助类。本章也涵盖包括像iAd和AdMob在内的Advertisement框架的实现。
第17章讲解使用iTunes Connect为应用的提交作准备的方法。理解provisioning profile、certificate和device这几个名词对能够发布应用来说是至关重要的。
第18章,最后一章,讲解以Ad-Hoc发布版,抑或是以App Store发布版构建和发布应用的方法。
使用本书条件
为了编写iOS应用,你需要下载包含有最新iOS SDK的最新版本的Xcode。你可以在这里下载http://developer.apple.com。
本书约定
为了帮助你最大限度地理解文字内容并提醒你注意正在介绍的内容,我们在本书中使用了大量的规范。
源代码
在练习书中的示例时,可以选择手动输入代码或者使用本书附带的源代码文件。书中用到的所有源代码都可以从www.wrox.com下载。进入站点http://www.wrox.com后,只需要找到本书的书名(使用Search搜索框或书名列表),单击本书详细信息页面上的Download Code链接,就可以得到本书所有的源代码。
下载完代码后,用你喜欢的压缩工具把它解压缩。此外,也可以去Wrox的主下载页面www.wrox.com/dynamic/books/download.aspx 找到本书或Wrox出版的其他书籍的代码。
勘误表
尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。
要在网站上找到本书的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。
如果在Book Errata页面上没有看到你找出的错误,请进入www.wrox.com/contact/ techsupport.shtml,填写表单,发电子邮件,我们就会检查你的信息,如果是正确的,就在本书的勘误表中粘贴一个消息,我们将在本书的后续版本中采用。
p2p.wrox.com
P2P邮件列表是为作者和读者之间的讨论而建立的。读者可以在p2p.wrox.com上加入P2P论坛。该论坛是一个基于Web的系统,用于传送与Wrox图书相关的信息和相关技术,与其他读者和技术用户交流。该论坛提供了订阅功能,当论坛上有新帖子时,会给你发送你选择的主题。Wrox作者、编辑和其他业界专家和读者都会在这个论坛上进行讨论。
在http://p2p.wrox.com上有许多不同的论坛,帮助读者阅读本书,在读者开发自己的应用程序时,也可以从这个论坛中获益。要加入这个论坛,必须执行下面的步骤:
(1) 进入p2p.wrox.com,单击Register链接。
(2) 阅读其内容,单击Agree按钮。
(3) 提供加入论坛所需的信息及愿意提供的可选信息,单击Submit按钮。
(4) 然后就可以收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。
加入论坛后,就可以发送新信息,回应其他用户的帖子。可以随时在Web上阅读信息。如果希望某个论坛给自己发送新信息,可以在论坛列表中单击该论坛对应的Subscribe to this Forum图标。
对于如何使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作原理,以及许多针对P2P和Wrox图书的常见问题解答。要阅读FAQ,可以单击任意P2P页面上的FAQ链接。