内 容 提 要 本书从基本的概念入手,全面地介绍了基于MonoTouch使用C#/.NET进行iPhone应用程序开发。从MonoTouch和。NET开发环境到Objective-C和C#开发语言,从基于MonoTouch进行iPhone开发的编程方法到应用程序的发布和销售等,本书涵盖了基于MonoTouch进行iPhone应用程序开发涉及的方方面面。 本书的主要内容分为两大部分:第Ⅰ部分包括第1~4章,这一部分介绍iPhone和MonoDevelop IDE开发的基本知识,主要包括iPhone、。NET Framework和MonoTouch的相关背景和概念、MonoTouch使用方法、iPhone用户界面和数据控件方面的内容;第Ⅱ部分包括第5~15章,这一部分的内容相对独立,可以根据需要选择性地阅读:第5章介绍在iPhone中检索和存储数据,包括本地数据和远程数据;第6章介绍表的使用,包括表内容显示、表导航和表编辑等;第7章介绍基于CoreLocation和Mapkit实现地图功能;第8章系统介绍应用程序设置;第9章介绍面向设备硬件编程;第10章介绍多媒体编程;第11章介绍利用第三方应用程序的编程;第12章介绍应用程序本地化和国际化编程;第13章介绍如何面向iPad编程;第14章介绍Objective-C代码的阅读方法;第15章介绍将应用程序提交到应用程序商店涉及的所有过程和工作,还包括应用程序的推销途径与方法。 本书专门针对具有C#/.NET开发经验并希望转到面向iPhone进行编程的人员。他们可以通过MonoTouch,利用已有的C#/.NET知识编写能够直接在iPhone中运行的应用程序。因此,阅读本书的读者需要具有一定的C#/.NET开发经验,并希望面向iPhone编程。
译 者 序 如果您是一位。NET开发人员,并希望使用现有的。NET/C#知识直接创建iPhone应用程序,那么本书正适合您。本书涉及到两个非常热门的事物,即C#/.NET和iPhone,这两者都是各自领域的佼佼者,将两者联系在一起的粘合剂就是MonoTouch。MonoTouch解决的问题就是,它使得当前最流行的编程语言C#/.NET的开发人员能够直接利用现有的知识,在当前最流行的移动设备上开发应用程序。这样,这些开发人员也就同时拥有了这两种非常热门的技术。 本书涉及到基于MonoTouch使用C#面向iPhone编程的方方面面,从基本概念到编程,再到测试、部署和推销的所有环节,真所谓是“一书在手,与MonoTouch相关的事情不用愁”。 本书具有几个显着的特征:完整性、实用性和参考性。如前所述,本书自成一体,非常完整,介绍了基于MonoTouch进行iPhone开发的各个方面,因此具有很好的完整性。另外,本书还介绍了很多非编程方面的知识,包括应用程序配置、部署、测试、获取证书、提交到应用程序商店、应用程序营销等方面的内容,具有很好的实用性。最后,为了方便C#/.NET开发人员阅读和利用现有的Objective-C代码和资源,本书还特地给出了Objective-C和C#/.NET相关概念的对照转换表,便于读者参阅,因此具有相当好的参考性。 本书是由国防科学技术大学的田尊华翻译,译者长期从事计算机科学中大型系统的研究与开发工作,具有丰富的程序设计经验和大型系统开发经验。本书涉及的内容非常丰富,而且基于MonoTouch进行iPhone开发是一项新技术,加之译者的水平和学识有限,译文中翻译的不妥之处在所难免,恳请读者批评指正。读者可将反馈发送到wkservice@vip.163.com。作 者 简 介 Wallace B. (Wally) McClure于1990年毕业于佐治亚理工学院,获得了电气工程理学学士学位,并在此继续他的学业,于1991年获得了同一专业方向的硕士学位。从那时起,他就开始为美国教育部、Coca-Cola、Bechtel National、Magnatron和Lucent Technologies等公司做咨询和开发工作。相关的产品和服务涉及ASP、ADO、XML和SQL Server,还包括在Microsoft .NET Framework上开发的大量应用程序。Wally还撰写了体系结构、ADO.NET和SQL Server、AJAX,以及基于Mono/MonoTouch进行iPhone编程方面的书籍。Wally专注于构建具有大量用户和数据的应用程序。他是微软的MVP(最有价值程序员)和ASPInsider(ASP资深人士),并且是Scalable Development公司的合作伙伴。可以访问Wally的博客:。Wally已经结婚,并有两个孩子。在编写软件之余,他会打高尔夫、做锻炼,以及和家人待在一起。 Martin Bowling是27 Creative公司的创始人和董事长,该公司位于西弗吉尼亚州的查尔斯顿市,主要开展Internet营销和移动开发咨询方面的业务。由于在Internet营销方面的天赋,Martin已经得到了认可,他为全球500强中的很多公司和美国的一些顶级教育机构提供咨询服务。Martin同时扮演着多个角色,包括演讲者、高级领导和咨询师,提供咨询服务的范围包括从社会化媒体营销到应用程序开发的各个方面。他当前专注于多个项目(这些项目带给他很多的激情)、从事领先的社会化媒体营销,并领导着一个SEO(搜索引擎优化)公司 Search&Social,该公司专注于构建一个平台来提供可伸缩的SEO,以及向中小规模的企业进行社会化媒体营销。他的项目涉及移动开发、社会化媒体和户外活动,并将这些组合成一个大的项目,从而让Geocacher能够方便地将他们的发现与其朋友和家人共享,即使他们在旅途中也无妨。Martin不断找到新的途径将社会化媒体与移动开发结合起来,向用户提供丰富的体验,以及为与他合作的公司提供最大的ROI(投资回报率)。他与他的妻子一起居住在西弗吉尼亚州的查尔斯顿市。在编码的时候,他的黑色实验室Brewski会与他作伴。Martin喜欢聚餐和畅饮。他可能登录网站,偶尔在那里写写博客。如果希望与Martin建立更加密切的联系和见证其个人魅力,那么跟随他进入。 Craig Dunn自从2001年起就一直在澳大利亚和加拿大进行。NET Framework方面的开发工作,涉及的项目包括从网上银行到数据仓库自动化系统(还包括一个构建多语言网站的持续项目)的各个方面。自2009年8月MonoTouch的早期测试版开始,他就一直做着与MonoTouch相关的工作,经常通过博客撰写教程,并(与Chris Hardy一道)为微软在拉斯维加斯举行的2010 MIX会议编写了MIX10 iPhone会议调度应用程序。Craig还是第15位获得iPad的人。 Chris Hardy是微软的ASPInsider,为地址在英国曼彻斯特市的一家名为Great Friday的数字机构工作,并为Peter Gabriel和Emma Watson这样的客户开发ASP.NET解决方案。在MonoTouch还处于测试版时,Chris就已经开始开发和传播MonoTouch,他是首先将MonoTouch应用程序放到应用程序商店上的用户之一。他在世界各地的会议中围绕这个主题发表演讲,是这个领域的重要人物,并仍然通过编写MonoTouch的书籍而延续着这样的角色。 Rory Blyth在软件开发公司工作了近10年时间。他开始时是一名独立的承包商,随后与其他人合作主办了目前流行的播客。NET Rocks。他作为微软的公开演讲者进行工作,加入了微软的Channel 9,并在其他的公司/会议中进行了很多会谈,涉及各种主题,包括使用Objective-C和MonoTouch进行iPhone开发。在Spotlight Mobile(一家开发公司,开发了像、Barnes和Noble Bookstore这样的流行iPhone应用程序)工作的一年期间,他学习了iPhone开发。 技术编辑简介 Alex York是英国曼彻斯特大学的一名毕业生,在那里,他学习的是计算科学。从那时起,他就一直在开发软件解决方案--几乎专门使用C#和。NET Framework。毕业以后,Alex在曼彻斯特的一家移动游戏公司工作,日常工作主要使用的是ASP.NET和WCF。2008年,他进入了Norway公司,并开始为Bennett工作,使用C#和ASP.NET为获得认可的Norwegian品牌构建顾客解决方案。在业余时间里,他是使用MonoTouch进行iPhone开发的早期实践者,并且是该领域的活跃分子。目前,他是位于特隆赫姆市的Capgemini公司的一名技术咨询人员。 John Mandia在伦敦长大,自从1999年从市场营销转向开发工作以来,他就一直做着开发方面的工作。在这段时间内,他为增值经销商(Value-Added Reseller,VAR)、。Com公司、门户网站、设计机构、咨询机构工作。目前,他供职于一家领先的全球投资银行。还在。NET是测试版的时候,他就开始基于。NET进行开发,很多年以来,他都一直是着名的开源项目Rainbow Portal(2002-2005)的主要贡献者,这个项目的下载量已经超过了130 000次。他当前的兴趣之一是移动开发,自从MonoTouch还是测试版时(当时,他建立了MonoTouch社区网站,帮助其他决定利用其。NET技术进行iPhone/iPad开发的人员),他就一直使用MonoTouch进行开发。 Jim Zimmerman 是一名ASP.NET MVP,他还是位于佛罗里达州坦帕市的Thuzi和TeamZoneSports这两家公司的CTO。他去年才决定学习Objective-C,目的是学习如何为他的4个孩子和他的公司创建iPhone应用程序。从那时起他就坚信,通过MonoTouch这条途径,他就能够利用自己的C#编程技能,并能够具有快得多的开发过程。他期盼有一天能够让至少90%的代码可以原封不动地在相关的移动设备上运行。致 谢 我对移动开发一直深感兴趣。直到2009年的夏天,Wrox出版社和我才达成一致来创建移动开发/iPhone项目。这个项目属于Wrox Blox系列的组成部分,它是本书的第一个版本;本书的第一版于2009年11月份出版。在该项目发布两周以后,联合出版商Jim Minatel对这本电子书的销售很满意,并计划编写一本关于MonoTouch的更大的印刷版书籍。由于时间有限,我需要另外几位作者。我马上就想到了Craig Dunn、Chris Hardy和Martin Bowling。在编写第一本书的过程中,我就已经和他们每个人谈过这件事情,因此,与他们讨论关于联合创作该书的印刷版就顺理成章了。一天下午,在Novell公司中,我和Joseph Hill进行了交谈,他也建议我与这些人合作。我欣喜若狂。Rory Blyth有一段时间参与了我们这本书的编写工作,但是时间并不久。感谢Jim Minatel允许我启动关于MonoTouch的书籍的编写工作。感谢Bob Elliott为我们把持目标,更要特别感谢Kevin Kent,为了让我们完成任务,他承担了一些较繁重的工作。 由于我的合着者们位于不同的大陆和半球,因此我要感谢他们非常优秀的工作。Craig和Chris做了大量工作,他们非常注重细节,对即将发生的事情总是高瞻远瞩。 我要感谢我的家人。他们做了大量的工作,使得我能够专心于编写这本书,以及倾力为顾客工作。我要大声地对他们讲“感谢你们”。 最后,我还要感谢您购买了这本书。我希望您能够与我享受编写这本书一样来享受阅读这本书。 --Wallace B.McClure 特别感谢我迷人的妻子Mandi Rae。如果没有她,我不知道我会在哪里。感谢我的妈妈CK, Sarah,以及所有在这些年来支持我的人。还要感谢Brewski Firkin,在我编写代码的时候,是他在为我打理公司。 --Martin Bowling 感谢Karl、Mike和Chris的灵感,并且无论如何要感谢妈妈。感谢Jack、Lilliana、Will、Sam和Marcus--你们总是尽力而为。 --Craig Dunn 感谢我的妻子Cara,她容忍了无数个漫漫长夜,也要感谢我的父母Hazel和Bob。 --Chris Hardy 序 言 MonoTouch是由两个具有巨大吸引力而又极其令人愉悦的领域混合而成:C#语言和iPhone。我们设计MonoTouch将这两者有机地结合起来,通过倾注了设计和实现语言、API和绑定的数年经验来实现这种结合。 我们对于iPhone的激情解释起来非常简单:与其他所有人一样,我们迷恋其漂亮的用户界面、深思熟虑的设计和强大的开发平台。这种集众多优点于一身的特点是令人难以抗拒的。 我们对C#的喜爱要回溯至2000年,当时微软向世界推出了他们的新语言。C#不仅震惊了Windows领域,它同时也震惊了我们的世界。到2000年的时候,我已经在Linux上的GNOME Desktop和Evolution邮件客户端领域工作了数年,并且已经了解了开发桌面应用程序的经验教训。 我们一直都是在一种竞争的环境下进行软件开发,需要使用更少的开发人员来更快地生产软件。一种选择就是付出更大的努力和花费更长的时间进行工作。与此相反,我们选择了提高程序设计的水平:我们一直使用C来编写高性能要求的代码,针对开发人员可以采用的高级语言建立C代码的绑定。 在微软推出C#和。NET Framework之后,这种语言对于提升程序设计水平起到了立竿见影的效果。另一方面,。NET语言不仅确保了我们不再受限于某种单一的语言,而且确保了我们可以继续重用之前使用C和C++编写的现有代码。C#使我们和我们所处的世界变得更加高效。 在这些年中,Mono在所有可能的方向上都在成长。Mono离开了桌面系统这个安乐窝(Mono起源于桌面系统),已经用于从嵌入式控制器到MP3播放器、服务器、视频游戏和工业控制的所有方面。 iPhone上的Mono是我们根据用户的需求创建的。在2008年至2009年期间,我们的mono@novell.com电子邮件地址接收到了无数的请求,请求将Mono带到iPhone中。到2009年夏天的时候,我们已经具有了准备在9月份发布的所有产品。 本书的作者们都是MonoTouch早期测试版的测试人员:在MonoTouch发布的首日,他们都在现场,在那里与我们探讨初始的API设计,并帮助我们规范最终的产品。现在,他们还在继续帮助我们优先考虑iPhone的开发人员面临的问题。 您可能已经知道本书其中的某些作者。Wally以创纪录的速度推出了第一本关于MonoTouch的电子书,这本电子书帮助数百名程序员在MonoTouch产品发布的数月内就已经能够熟练使用它。 Chris和Rory在Windows/ASP.NET领域都是响当当的人物,并且都是MonoTouch社区非常积极的成员:在我们的IRC聊天室、Stackoverflow和论坛上,他们都回答过新手开发人员提出的问题,帮助开发人员开发更优良的应用程序。 Chirs是带着激情投身MonoTouch的,这种激情只有来自曼彻斯特市的摇滚歌手才能展示,他发起了开源的Scott Hanselman“Hanselminutes”MonoTouch iPhone应用程序。 Rory对该领域具有独特的见解;他广泛地使用。NET和Objective-C进行工作。他是。NET领域的明星,也是Barnes和Noble iPhone应用程序的幕后人物,正是Rory将这些经过实践检验的知识带入了MonoTouch社区。在进行MonoTouch开发的过程中,这样的知识是再好不过的精神导师。 您很可能已经通过其一系列优秀博客知道Craig,这些博客不仅让新手能够开始使用MonoTouch,而且在需要解决自己的iPhone应用程序中的问题时,它们也能够成为可以求助的参考资料。Craig面向iPhone应用程序提出了一个最有用的想法:会议应用程序。有一段时间,对于如何创建有用的会议应用程序,他利用博客来探讨相关的思想,并由此产生了两个开源会议应用程序:MonoSpace应用程序和PDC应用程序。 到Mix 2010会议召开的时候,Craig和Chris编写了MIX2010应用程序,MIX会议的参加者都可以使用它。当看到人们在每次会谈之前都在他们的电话上使用这个应用程序的时候,您就知道这是一个非常优秀的想法。 自从启动MonoTouch以来,Martin就是MonoTouch的早期采用者。他为社会化网站DailyBooth启动了第一个iPhone应用程序,并且是各种开源MonoTouch项目的贡献者。 使用C#和iPhone构建应用程序对于两个领域来说都是极佳的事情。您能够使用一种强类型的、类型安全的、垃圾回收的、具有最热门API的语言来开发移动应用程序,同时还能够在Objective-C中使用面向iPhone创建的最优秀的库,以及在。NET中使用面向C#创建的最优秀的库。 下面开始学习Wally、Martin、Craig、Chris和Rory创作的这本佳作。 --Miguel de Icaza VP开发人员平台 Novell