iOS应用开发指南——使用HTML5、CSS3和JavaScript

978-7-115-29522-4
作者: 【美】Kristofer Layon
译者: 郭华丰
编辑: 汪振

图书目录:

详情

如果你是一个熟悉的HTML,CSS,JavaScript的设计师,你将在本书的帮助下很轻松地学会如何来创建原生的iPhone,iPod touch,and iPad apps,并把它们发布到APP Store中。

图书摘要

iOS应用开发指南——使用HTML5、CSS3和JavaScript

[美] Kristofer Layon 著

郭华丰 译

人民邮电出版社

北京

本书主要是向已有一定开发经验的Web设计师介绍iOS应用开发的基础入门知识。全书的主要内容包括如何下载和安装iOS SDK;如何使用Xcode管理项目资源、测试应用程序以及打包二进制文件;如何设计适合在移动平台上表现的文本、图片、音频和视频内容;以及如何使用HTML5和CSS3技术以提高应用程序的性能。

如果你是一名熟悉HTML、CSS和JavaScript技术的网页设计师,你将通过本书熟练地掌握如何为iPhone、iPod touch和iPad创建应用程序,并且通过App Store将其在全球发布。

在我的记忆中,我的父亲Roger Layon,

他的一生,教会了我要活得有尊严,

而他的离去,则教会了我要活得精彩。

致谢

我就像一个长跑者,因为写这本书的过程对我来说很像马拉松训练和研究生时期的学习一样。为了实现我的目标(以各种方式到达比赛的终点),需要自身有超凡的规划和毅力。

但其他人对我的支持也同样重要。我非常幸运,能得到朋友、同事以及家人的支持——我诚挚地向所有人表示感谢。

感谢New Riders、Peachpit和 Box Twelve 出版社的编辑、设计师和市场营销人员,特别感谢Michael Nolan、Jeff Riley和Glenn Bisignani。

Zach Johnson——我的技术编辑,他编码的经验和挑剔的眼光把这本书提高到了一个更高的水平。

Alexander Voloshyn——NimbleKit的创造者——提供了额外的技术援助,一些重要的代码示例和很多友好的建议。

Martin Grider和Bill Heyman,在我的第一个iPhone应用程序以及早期Objective-C的学习中,给了我很大帮助。

Eric Meyer和Kristina Halvorson,他们给予了宝贵的建议(甚至还有更多的帮助)和鼓励。

苹果公司的Mike McGraw,帮助我参与了2010年旧金山的全球开发者大会(WWDC)。

Mark Brancel,我的应用程序的第一个客户和合作者。感谢您的耐心和对我工作的信任。

Shawn,我的朋友和律师,他的意见和协助帮助我解决了许多伤脑筋的事情。

Tim,我的朋友,会开帆船的人文科学家,教会了我如何驾船,每次和他谈话都能启发我从不同角度看待世界。

Eric,我的朋友和跑步教练。我跑完了3次马拉松,这给了我完成本书的自制力和心理承受能力。

Minnesota大学教务管理系统设计和通信部门的我的同事们:Amy、Angie、Gabe、Kate、Kathy、Mike和Peggy。

从2008年至今,我在MinneWebCon会议策划部门的同事们:Amanda、Dan、Danny、Eric、Gabe、Jesse、Peter、Sara、Simin和 Zach。

我的岳父岳母Marilyn和Kent,他们一直帮我们照顾孩子们,使得这本书有写成的可能。Marilyn同时也是个作家,帮助我编辑了本书的第1章,使我有信心把本书交给出版社。

我的母亲Sharon,是一位花艺、插花和染色玻璃的艺术家。她提高了我看待图案和审美的能力,并激发了我的创作欲望。

我可爱的妻子和女儿:Katie、Sarah、Grace、Emma和Anne,他们给我充足的时间和空间。我必须从早到晚地进行写作和编辑工作,但他们从来没有向我抱怨过艰辛与不快。

作者简介

Kristofer Layon是一位设计师、教育家和会议总监。 Kris的第一个iPhone应用程序——ArtAlphabet,是一款面向低龄儿童的认识和组合卡片游戏,于2009年在App Store发售。他的咨询公司——Aesthete Software,现在为多个领域的客户设计移动应用程序,包括医药、摄影和教育等。

1993年他成为一名图形设计师,1996年成了网站设计师。从那以后,Kris为城市规划、政府机构、艺术家、音乐家、零售商、工程师、国家公园管理局和超过30个高等教育机构的客户设计网站。除了设计网站之外,他还在Minnesota大学教授图形设计和印刷设计等课程,同时他还是那里的学术顾问。2008年,在他的帮助下成立了MinneWebCon——一个网站专业人士的区域公会。

Kris取得了Minnesota大学的交互设计美术硕士学位,在德国取得了文学学士学位以及Saint Olaf学院的建筑学预科。他是美国书画刻印艺术学会(AIGA)、HighEdWeb协会、设计研究协会、Minnesota大学互动营销协会的成员。他的作品曾赢得过美国书画刻印艺术学会和市场营销专业服务协会的设计大奖。早在1999年,apple.com就展示了他早期设计的网站视频。

您正在阅读的是一本介绍如何使用HTML、CSS和JavaScript设计iOS应用程序的图书,这些应用程序可以在iTunes应用程序商店发布或者出售。这意味着你很可能是一名网页设计师,并对为iPhone、iPod touch和iPad设计原生(native)应用程序感兴趣。

这可能意味着你已经对iOS应用程序的未来充满信心,并开始阅读一些听起来好得令人难以置信的东西。毕竟,去年夏天我举办了一个研讨会,一个与会者告诉我说:“我报名参加这个研讨会的唯一的原因是因为我不相信这是可能的。”

说得更直白些,他真实的意思便是:“我来这里只是想看你这个骗子究竟要胡说八道些什么。”

但事实是:这是可能的。而你现在拿着的这本书,正是我两年前曾希望拥有的书:它不要求你学习如何使用Objective-C语言编程。对于像我这样的人(也可能是你),以及所有认为自己不是程序员的人来说,这实在是一件非常棒的事情。

※ 当然,HTML、CSS和JavaScript都是编程语言,它们让软件和硬件以特定的方式工作,所以严格来说,网页设计师也是程序员。但是,尽管如此,我们仍旧认为自己并不是真正的程序员。

那么,本书是如何做到这一点的呢?它真的是一本技术图书而非小说吗?

它确实是。首先让我们来了解它的一些特色。

本书是……

本书是使用HTML、CSS和JavaScript设计苹果的iOS设备原生应用程序的入门书。

本书介绍如何使用一个优秀的Objective-C框架——NimbleKit,使得读者可以轻松设计出符合苹果公司要求的Objective-C应用程序,而不需要自己编写任何Objective-C代码。

本书是一本对可视化、规划、设计、实现以及发布iOS应用程序进行了系统介绍的全面指南。

本书是一本使用iOS原生界面来设计多种类型的基于内容的应用程序的手册。

本书是一本介绍iOS应用程序设计和内容组织原则的教程,让读者可以在最短的时间内设计出他们的第一个应用程序。

本书是一种资源,可以帮助应用程序设计团队创建示例应用程序的导航和屏幕等框架。

这就是本书的内容。然而,了解这本书不是什么,也很重要。

本书不是……

本书不是系统的Objective-C编程手册。已经有大量的书籍做过这件事情。请记住,NimbleKit框架已经包含了你所需要的全部Objective-C代码——它已经写好了。

本书不会为任何一个你能想象到的应用程序提供逐步骤的实现攻略。这些应用程序,有一些并不能很好地支持We b标准和NimbleKit框架。在这种情况下,你应该考虑其他选择,其中一些我在第10章有所提及。

本书不是完整的NimbleKit指南。NimbleKit框架知识繁多,一本适当规模的书不可能教给你所有知识,而我想要这本书保持合理规模,以便它不贵,并且可以比较快地读完。

本书不是世界上最好的HTML、CSS和JavaScript代码示例集合。通常有不止一种方法来解决代码的设计问题。有时候,我会告诉你一种以上的方法,其他时候我只告诉你一个。当我只告诉你一种方法的时候,这可能是一种比较简单的方法,或者我只知道这种方法。如果您有另一种方法,或者是一种更好的方法,请随时通过本书的网站http://iosapps.tumblr.com告诉我。如果您提交的代码我测试成功了,我将通过这个网站与其他读者分享。

本书不是苹果公司的iOS设备或App Store的托儿。虽然我是一个坚定的Apple粉丝,但是我不是从一个狂热粉丝的角度来写这本书的。我只是讲述发生在iOS设备移动应用程序上的故事和知识。

本书不是单一的参考资料。通过http://iosapps.tumblr.com,我们将长期在一起:获得更新内容(并可下载本书的示例代码)。

如果你是一个熟悉Web标准的设计师,我的目标是为你创造一个令人振奋的新机遇。我希望通过阅读本书,并尝试这些示例,读者能设计出自己的iOS应用程序,与大型的设计团队一起工作完成移动界面和用户体验的目标,并教其他人设计以及格式化用在移动设备上的内容。我也希望这本书仅仅是个开始。理想情况下,本书应当武装你,并鼓励你最终学到比本书涵盖的内容更多的知识。

我为什么要写这本书?

不是已经有很多关于

iPhone、iPod touch和iPad

开发应用程序的书了吗?

确实已经有几本关于这个主题的书,并且它们都非常有用。不过,本书依旧有它特定的读者群体。

这些人,简言之,便是和我很相似的人。

我所做的就是想写一本我两年前就想拥有的书,那时我正开始研究如何设计iPhone应用程序。当时,我能找到的书,要么只介绍如何使用Objective-C语言编程,或者只是探讨如何利用iPhone和iPod touch上非常特定的功能和特性。

我对Objective-C语言编程没有任何敌对情绪。我只是不想自己做。受到Apple公司的移动设备的产品特征深刻影响,我成为了这样的设计师:驱使我工作的不是技术本身,而是帮助个人和组织沟通的渴望。

所以,如果您是一名喜欢与人打交道多于与技术角力、喜欢解决问题多于试验特征的设计师,那么您找对书了。因为这本书是介绍有关以人为本,以需求为本原则的iOS应用程序设计方法。

由于iPhone和其他智能手机已经无处不在,对精心设计的移动内容的需求也急剧增加。我们知道一些令人震惊的数字:

到2010年年中销售了超过8500万台iOS设备。

iTunes 应用程序商店有超过 250000 个应用程序。

从iTunes下载软件的数量超过150亿。

我个人体验到这种变革的影响,差不多任何地方都有可用的内容,无论是否需要:在购物时、工作时、跑步时,甚至在滑雪场坐着缆车时。除非我在海滩上或在水中时,我的iPhone通常是和我在一起的。我可以回答问题,可以用以前拍摄的照片作为参考来研究某些东西(现在我总是使用摄像机应用程序来做笔记),可以看看我离某地有多远,可以查看天气状况。这份清单几乎是无止境的。

我认为,iPhone的名称是一种误导,暗示它是一个电话,附带了一些额外的功能。事实上,该设备是一种网络化、袖珍型的电脑,你可以:

把它带到任何你想去的地方。

在任何你需要的时候使用它。

购买和安装自己的应用程序来定制它。

由于其同名的应用程序Phone,所以我们把iPhone当做一个手机(图1.1)。但是,实际上,通话功能只是众多应用之一。iPhone能完成利用内容,网络连接,以及各种硬件和软件功能,以帮助你在任何时间任何地点解决问题或获取信息。

图1.1 这才是一个真正的电话!而通话功能只是iPhone众多应用中的一种

我为什么要耗费精力在这个相当明显的问题上?因为我提出了很重要的观点,帮助你形象化如何思考设计应用程序的过程。

为了继续这一过程,思考下面这两个日期:

你能认出这两个日期吗?它们两个都非常重要,因为这影响着我们怎么思考iOS的应用程序。

2007年1月9日这一天,苹果电脑公司(Apple Computer,Inc)改名为苹果公司(App,Inc)。2010年5月25日,苹果公司成为世界上最有价值的科技公司——正是从它的公司名字里去掉电脑一词的3年后。

纽约时报说得最好:

“最重要的技术产品不再放在你的办公桌上,而是握在你的手里。”(2010年5月27日)

2007年初,苹果公司在改名的时候就已经预见到这个情况了,也许是因为那个夏天即将发布的iPhone。

但是不单只是iPhone让苹果在2010年春天成为了最大的高科技公司。这一过程始于2001发布iPod时,并在2003年发布iTunes时得到延续。请注意,虽然当时他们没有停止生产全尺寸的电脑,他们也开始做一些更小一点的电脑。而这些小的电脑比台式机和笔记本电脑更好地整合了计算机技术,并融入到我们的日常生活中。

通过推出新的微型计算机平台iPod,相比从Apple II到Mac的推出, Apple有了更大的飞跃。在第一个进化阶段,苹果普及了图形用户接口(GUI)、电脑桌面、鼠标输入设备,从而创造了一个全新的世界,现在,这个世界已经遍及到了所有的个人电脑。

今天,大部分的人无论是与电脑交互还是用它进行工作,都不再需要使用计算机语言(即无须通过编制程序来指示计算机完成工作)。

关于iPod最不可思议的事情是,它对Mac做了大量的裁剪。更有甚者,苹果不仅去掉了鼠标,也拿掉了桌面。他们把屏幕做得非常小,并使无法直接在iPod设备(图1.2)上创建任何内容。这样一来,苹果把一台电脑裁剪掉大量的功能,使之尽量简单尽量小,并使其完全无生产性。这种与20世纪90年代计算机制造策略背道而弛的做法显得是那么不合情理。

然而,对电源、尺寸和功能大幅缩减后的结果如何?

销售额飞涨,苹果公司取得了巨大的成功。

图1.2 最初的iPod:比Mac更加裁剪和简化了的电脑

这种转变是深刻的,因为我们不会把iPod当做一种微型计算机。相反的,我们认为它是一个便携的、实用的、而且易于使用的设备,用来听音乐、新闻、信息和有声读物,浏览照片或甚至看电影和电视节目。

这不是商业的内容了,这是生活的内容。

有趣的是,苹果引入iOS设备时并没有削弱很多新的技术基础。相反,在2007年引入iPhone时,他们只是简单加回了一些关键特性,这些关键特性是当时从全尺寸的电脑打造微型iPod平台时去掉的。他们恢复了我们在桌面型和笔记本电脑上习惯了的因特网连接,并且重新引入基于屏幕的软键盘来输入信息。这在以前的iPod是被限制了的,只能通过点击和滚动输入。

而且,哦,对了,iPhone还有电话功能。

更重要的是,iOS设备把生活内容的概念又推进了一步。现在新闻可以被打断,音乐可以听现场,信息可以是我们孩子的足球时间表,或餐馆的地址,显示在地图上,并附上用户从所在地点到达该处的最佳路径。

所有这一切都意味着,所有的这些设备的设计需要开始着眼于生活内容,并围绕人类的生命和我们日常需要解决的问题。

为了这些情形设计,我们需要认清现实。

我们仍然要保持简单。

从日常生活的角度去考虑移动内容的需求,会使你专注于设计工作的合适情景,人们搜寻信息的方式和何时需要信息。下一步,我们需要把重点放在人们如何实际使用移动设备。

关于应用程序开发的许多书籍和演讲集中着重介绍使用特定的功能特征(比如学习如何使该设备震动!)。对,可以肯定的是,对于一个大型软件团队来说,要从事一个复杂的应用程序,专注于特定的技术特点和行为可能是有意义的。但本书是从“以人为本”角度来阐述,它以人和他们的内容为第一。

当人们使用移动内容时,他们最关注的可能不是是否有人使用了设备的极具特色的功能。但是如果设计者忽视了特定功能,或者这个功能设计得很糟糕,人们毫无疑问会注意到。当我们把关注点集中在内容和人们的需求上时,这种方式会引导我们采用正确的行为和特征。对我而言,这比首先去研究怎样实现一个特征,然后再围绕某个需要的行为来建立一个应用程序的方式更加有效。

为移动设备设计应用程序和为大屏幕的计算机设计一个网站有很大的区别。我们倾向于在工作或者学习的时候使用桌面电脑甚至笔记本电脑。(很明显,因特网让这种情况发生了巨大的改变,对不起,扯远了。)这意味着我们使用电脑的地方往往是在办公室,教室,或者在家。当然,笔记本电脑可以带到很多地方,而且我们中的一些人几乎无论走到哪里都随身携带着笔记本电脑,但是大多数人还是在一个主要的地点使用它。

比较iPhone、iPod touch或者iPad的使用,当然这得看你有哪种设备,哪一个型号,网络连接的种类,以及是否有无处不在的无线网络,如果有一个这样的移动电脑在你的口袋里(对iPad用户而言这是个比喻,除非你真的有一个巨无霸口袋),意味着你随处都可以使用它,也意味着使用时的情景往往是不同的。和使用电脑相比,使用的动机也可能是完全不同的。反复查看一个菜谱的配料表也许只是个人需求,而并非因为有商业方面的企图,除非你是个厨师或者餐饮服务商。你在杂货铺跟前掏出iPhone或者iPod touch,因为你是人,你饿了,你需要在忙碌中解决掉这一特殊的问题。

而这不是一个技术问题。

需要牢记的重要事情是:为Apple iOS设备设计内容是不同于为一个大尺寸屏幕上运行的浏览器设计内容的。而且这不仅仅关乎于情景。在一个大尺寸屏幕的电脑上,会将更多的内容显示在屏幕上,但是我们并没有感觉到变化。浏览器显示给我们一个网站,而且它还是显示在那里,而我们并没有感觉到浏览器变化带来的变化。

所以这里有iOS设备另一个关键的不同点:我们的原生应用程序的内容传递形式,这是我们需要设计的重点。

如果你不确信的话,对比一下其他硬件的屏幕表面区域的尺寸。

iPhone、iPod touch和iPad有一个方面非常相似:它们几乎只剩下屏幕。从正面观察,3种设备大约95%的区域是屏幕,而笔记本电脑的屏幕占的比例比50%还少一点点(图1.3)。这是重要的区别。即使笔记本电脑的屏幕上显示了一个迷人的网页,很显然它仍然是笔记本电脑,不是吗?键盘、触摸板,手腕区域,以及屏幕周围的区域不会消失。它们仍然影响着我们的体验,使我们远离内容。

图1.3 即使笔记本电脑大部分是键盘,触摸板和边框。屏幕也少于整个表面的50%

但是一旦你在iOS设备上运行应用程序,因为它的多点触摸,和以屏幕为主导的设计,整个设备就发生了巨大的转变。这一点在有的应用程序里表现得更明显。让我们考虑一下iPhone运行电话应用程序的时候是怎么变成电话的。硬件几乎消失:突然,我们有了一个发光的电话拨号盘和内置的联系人名单。地图也是一样:设备里不是有一幅真正的地图,而是应用程序让设备变成了一幅地图。

理解这个转变效果对我们为这些设备设计的方法是至关重要的。我们需要额外注意怎么样设计用户界面(UI)。当我们需要设计自定义的UI元件时,这些元件用以直接支持我们设计的应用程序的交互需要,这个时候我们需要尊重原生的Apple iOS控件的习惯用法。而且,某些时候,UI元件不仅仅是功能性,商标可能也是个因素。

理解在这种情况下设计思想的重要性是必不可少的。原因是,我认为无论在原生的Apple 用户界面控件还是特定内容或者商标这样细节上的标识缺失并不同于在班级提交一篇论文时,从一篇出类拔萃的论文降格为一篇良好的论文。

遗憾的是,这个错误的观点在其他场合远远比这个更被人挑剔:标识的缺失,在任何情况下,都将让一个优秀的应用程序显得不那么优秀。它很容易成为一个极度不可信任的,甚至成为一个令人讨厌的应用程序。

“哦,哇,这开始听起来令人费解。”你可能会这样想。一个设计良好的应用程序应该可以无缝地融入到用户的日常生活中,无论用户身处何处;只要合适,便应该搭载原生的苹果iOS用户接口;并且只要合适就加入特定内容或者商标的UI细节。可什么是合适的法宝啊?我们要如何专注于内容和用户界面,才足够把这件事情办成呢?

答案是,当然,根本就没有一个简单的公式。但好在,网站设计师已经在响应客户端和顾客需求方面有经验,并且运用协作的方法来进行娴熟的设计。要把这一宝贵的经验应用到iOS应用程序设计中,你需要熟悉原生的用户界面标准、细节和建议:定义你的项目需求(无论是你自己的项目或者是客户和雇主的);并确定用最好的方法为iOS设备设计。

本书将会继续这个模式,告诉你如何把你的设计经验和Web技巧应用在iOS应用程序的设计上,并且给你介绍一些技术,让你做好这些项目,而不需要自己编写Objective-C代码。

“但是等等。”你思考着,“我认为所有的应用程序都应该使用Objective-C语言编写?”

是的。然而,这并不意味着你需要自己编写Objective-C代码!

事实上,如果别人已经为你写好了呢?

考虑一下设计显示在Web浏览器的内容的JavaScript框架。例如我最喜欢的jQuery和Yahoo!的用户界面(YUI),协助设计师使用强大的JavaScript行为,而大部分这些繁重的代码已经为我们写好了(这引出了一个问题:请问这代码有多繁重?)。实现一些非常漂亮的功能的代码已经预先为我们写好了并放在模块中,我们只需要找出这些并使用,而不需要一切从头开始编写。事实上,不要忘记使用框架的另外一个重要特性:这些代码已经被彻底测试过(并且会继续持续地测试和更新),所以我们也不需要测试我们使用的这些代码!

类似的,iOS框架在iPhone应用程序设计中也充当了同样的角色。我使用最多的框架叫做NimbleKit(图1.4)。这个了不起的工具有一系列Objective-C代码——已经为我们预先编写好——可以实现原生的功能和行为,并且可以通过HTML、CSS和JavaScript语言来调用这些预定义功能。回想一下,这非常类似于使用这些相同的语言来让Web浏览器显示某某内容和以某种特定的方式来响应。我们仅仅只是用了一个不同的代码框架,并且为不同的操作系统(iOS)而设计,以及使用不同的发布网络(iTunes)。

图1.4 NimbleKit是苹果公司网站上专题报道过的一种开发工具

下面是后面的章节要讨论的所有内容。学习更多iOS的界面和行为的重要特性,领会NimbleKit如何在我们熟悉的Web设计语言和新的设备(以及新设备的原生开发语言)之间起到桥梁作用。在学习了一些设计基于内容的iOS应用程序之后,我们将谈一谈如何把应用程序提交给Apple评审,并且在iTunes上发布或者出售它们。

从2001年至今,在Apple公司的带领下,我们可以发现以内容主宰,以及拥有直观、一致的用户界面和行为的小型简单的设备把我们最有用的内容——生活内容——带给了人们,随时随地,只要人们需要。所有我们需要做的就是专注于人们,和他们真正的需求,提升我们的网页设计技能,学习一些新的技巧与诀窍,并且把我们的马车搭载到Apple的成功列车上。

我们才刚刚起步!

下面是我们本章学到的知识。

别让iPhone的名字欺骗了你。事实上它是一个拥有电话应用程序的便携式电脑。这意味这它可以做一些神奇的事情,而我们的设计可以让这些事情成真。

整个iOS生态系统对于Apple公司来说是一个战略转型,它将关注生活方式,无所不在的信息,以及内容服务。这为从事数字内容设计的人们提供了巨大的机会。

使用iOS是引人入胜的事情,并且更能融入我们的休闲生活中,而不仅仅是工作中。如何设计我们的应用程序才能更加适合这样的情景?

本地的应用程序是使用Objective-C编写的,但是并不意味着设计师需要学习Objective-C语言。他们可以和团队中的程序员一起工作,或者使用一个代码框架来解决这个问题。本书主要是关于后者。

随着我们开始深入了解技术和以产品为导向的iOS应用程序设计,我希望本书能给你很大的帮助——真正巨大的帮助:我希望这本书能教导你解决以后碰到的更多问题,而不仅仅是书里提及的问题。

与其说这是学习本书的目的,不如说它是笔者的一个美好愿望。但是这确实是可以实现的,而且出自笔者自己的应用程序设计经历。我这一路走来,碰到的很多事情需要当初没有预料到的步骤才能完成(因此,需要做很多的选择)。在我遭遇这些困难时,我几乎找不到足够的资料来帮助我轻松和安全地度过。

所以在这里我申明一下,本书后面的某些部分可能会比较乏味,这么做是为了讲授足够的细节,以便让你掌握iOS应用程序规划、设计和制作的非常基础的知识。虽然也许不能教会你设计任何你想设计的应用程序,但会把想要交给你的东西教得非常好。

为了设计iOS应用程序,你需要建立你的应用程序设计工作室。这个工作室是这样的一个地方,你在这里设计、测试以及打包你的应用程序以便提交给苹果公司。

你的工作室的基础是一台基于Intel的Mac电脑,需要安装Snow Leopard版本的Mac OS X(操作系统)。在这基础上就是苹果公司开发的集成开发环境(IDE)Xcode,你将使用它来给苹果设备设计和开发软件。苹果公司设计开发了一些软件可以同时运行在Mac和Windows(例如iTunes和Safari)电脑上,数百万的iOS设备使用者每天使用它们来和Windows电脑同步。然而Xcode不能在Windows操作系统上使用。

一旦你用了一台合适处理器和操作系统的Mac电脑,理论上讲,你只需要下载和安装Xcode,这样你就做好设计开发iOS应用程序的准备了。但是下载一个免费的Xcode可不是一步搞定的简单事情,所以,让我们详细看看如何来完成这件事情。我们将尽快地完成,因为我们想要尽快开始设计应用程序。

为了安装Xcode,需要下载iOS SDK(以前叫做iPhone SDK,2010年7月改名了)。但是在寻找SDK之前,需要先取得一个苹果公司开发者ID。

苹果公司开发者ID是应用程序设计、审查、发布、升级、以及(如果你在销售你的应用程序)报酬支付整个流程的联机标识。而且,我怀疑苹果公司想要你最终参与这个过程,所以他们要求你甚至在下载iOS SDK之前就需要注册苹果公司开发者ID。但是不必担心:下载SDK时,苹果公司开发者ID本身是免费的。

开始注册(图2.1),请访问:

http://developer.apple.com/programs/register.

图2.1 获取你的苹果公司开发者ID的网页

这一过程的第二个屏幕(图2.2)询问你是否已经有了一个现成的苹果公司 ID,并且解释你可以做些什么,如果你愿意,可以使用你已经有的用来从iTunes或者从苹果公司商店里在线购买商品的苹果公司 ID。然而,苹果公司预感到在这种情况下最好是选择创建一个独立的开发者ID,所以默认选择创建单独的开发者 ID,以避免会计和报告问题。

图2.2 除非你已经是一个苹果公司开发者,否则不要选择使用已经存在的苹果公司ID。不然会在后面的过程中产生会计和报告问题

有人要质疑了:为什么在这里给我们选择?

如果你像我一样,讨厌会计和报告问题,我强烈建议:直接创建另外一个ID。这样会保持你的苹果公司消费者角色和苹果公司开发者角色完全彻底分开。这还能让你的苹果公司 开发者 ID和一个有自己报税ID号码的企业实体关联起来,可能会给你提供一些避税。

在你选择了新的Developer ID选项后,你将前往个人和职业简介页面。这是另一个似乎需要认真回答的页面,但是不要太过重视。例如,有一些关于你的应用程序主要的市场、你打算设计的应用程序的类别以及你是否在为别的移动平台做开发等问题。我还没有听说过苹果公司不批准一个应用,只因为它不符合这里你选择的类别。同样,也有许许多多的苹果开发者也在为其他的移动平台设计开发应用程序。所以我不觉得如果你诚实地说你是Android应用程序设计师,就会受到惩罚。(另一方面,为什么苹果要问这个问题?答案只能成为许多围绕苹果公司的无法解释的谜团中的一个。)

2.1.1 苹果公司开发者协议

完成了你的个人和职业简介,你将前往另一个有点可怕的页面:开发者协议页面。同样,这个页面不要想多了。反过来说,这仅仅是你购买新软件后的一个标准最终用户许可协议(End User License Agreement)。它大概描述了你作为苹果公司的设备软件开发者的一些法律协议。那么这些法律协议包含那些内容呢?

现在,我不是律师,所以不要以为你会读到一个关于苹果公司的开发协议的一组法律建议,但这里有一些事情需要注意。

苹果开发人员ID和密码:记住这些机密,不与任何人共享它们。除非你的13到17岁的孩子们想在你的名下为苹果开发软件,而你愿意与他们分享开发人员ID和密码(我不是在这里开玩笑)。仅凭一个开发ID就能开创一个家族企业也不是没有可能。

开发者的好处:不,通过注册成为苹果的开发人员你不会得到健康保险或带薪休假。但有一个特别的好处:有资格参加苹果公司在旧金山的年度全球开发者大会(WWDC)。这就像传说中的朝圣,史蒂夫•乔布斯将在这里宣布重大消息(如2007年6月的第一代iPhone发布,以及2010年6月的iPhone 4)。第一天是公告和升级信息,随后的四天是关于苹果的iOS和Mac技术的各方面的技术研讨会和技术实验。出席大会的是从世界各地云集的苹果开发商,是一个很好的教育培训和交流的机会。但不要认为这是免费,2010年报名费为1 600美元。

限制和保密:一旦你同意成为苹果的开发者,也就同意了不能分享苹果公司的设备和软件是如何工作的这些有趣的细节,或者是你在WWDC上学到的令人激动的东西,或者是苹果公司有关新产品的任何预先通知。从本质上讲,你是签署了保密协议。(在你的朋友们面前忸怩作态可能是个有趣的事情:“嗯,我确实有一些有关苹果传闻的准确的信息,但不幸的是我不能随便地告诉你,因为我签了保密协议。”)

一些很谨慎的事情

因为我签了苹果开发协议,所以我必须对本书包含的资料特别小心。举例来说,我没有详细介绍苹果公司的人机界面指导方针(这些在developer.apple.com有文档详述),而是转达对这些指引的思想,并鼓励你下载完整的文件,并将它们添加到你的参考图书库。基本上,我会以如下准则来约束我的行动:概述如何注册为苹果开发者,设计应用程序,让它们通过苹果的批准,并通过iTunes发布它们。由于苹果公司目前提取应用程序收入总值的30%,我引导越多的人来做苹果开发者,苹果公司将越高兴!另一方面,苹果开发人员不是正式的代理人或苹果公司的代表,所以,我划定最后的界限,简介信息和任何复述的详细信息都是苹果私有开发者网站可以利用的。所以,本书包含的唯一受苹果网站(需要开发者ID认证)保护的信息是:

1.iOS SDK的下载过程的截图。

2.我自己的iTunes连接帐户的截图。

苹果公司的商标和标识:作为苹果公司开发者,你将会被授权有限制地使用苹果公司商标。例如,你可以在你的网站包括“Available on the App Store”图标,以及一些苹果提供给你的非常好的iOS设备照片,你也可以在你网站的内容中提到苹果公司产品名称。使用这两种资源,一定要按照他们的使用准则(第11章中着重讲述)和包括任何所需的免责声明。

该协议相对比较温和,有一些好处也有一些约束条件。我建议仔细阅读并同意它,但是再说一次,我不是律师(我甚至没有玩过律师角色的游戏)。

2.1.2 验证和祝贺

在你同意的开发协议后,你将需要完成一个快速的验证过程,通过电子邮件发送给你一个验证代码。一旦你收到电子邮件,然后在正确的文本输入域里输入验证码并提交它,你将看到申请接受的祝贺屏幕,当爱德华•埃尔加的威仪堂堂进行曲响起,伴随着一个祝贺受理成功的菜单会呈现在你的面前(图2.3)。

图2.3 恭喜你,你已经是苹果开发人员了!(省略后台播放的威仪堂堂进行曲。)

搞定了,你有一个了开发人员ID,准备好下载一直在耐心地期待着的:iOS SDK!

好在这一过程的其余部分很快速和容易。嗯,主要是容易。不过,呃,也没有那么快,那得要看情况。

问题在于,iOS SDK是我到目前为止下载到电脑里的最大的一个软件。曾经,我在应用程序设计讲习班中用尽各种方法来警告学员下载超过2GB的东西。我的意思是,在它下载的过程中你会感觉自己变老了。所以,如果你在家里使用电缆或者更慢的网络下载它,那么开始下载后,带上你的狗狗去散一个足够长时间的步吧。但是千万不要坐下来看着它下载。如果你真这么做了,千万别怪我没有提醒你。

好消息是,下载是非常值得的。你将得到一些绝妙的工具,可以做一些不可思议的事情,而它们都是免费的。

是的,这是成为苹果开发者免费获得的好处的一部分。你将免费得到他们的开发工具。这是一个很好的工具集,包括两个基本程序:Xcode(设计和打包你的应用程序代码)和模拟器(帮你测试你的应用程序)。

注意 SDK中的其他事项

下载中包含的另一个有用的工具是Dashcode,它拥有很多的图形和面向对象的方法来设计网页应用程序,所谓网页应用程序是保存在服务器上(而不是被下载和安装在设备上)。虽然本书没有涵盖网页应用程序设计,但是你在本书学到的很多原生的应用程序设计技巧都可以应用在网页应用程序设计。可以使用任何移动设备上一个基于网页标准的网页浏览器来浏览它们。SDK还有其他一些工具,比如Interface Builder和各种诊断工具。这些都不是本书所涵盖的应用程序设计方法所需要的,但如果你决定尝试编写自己的Objective-C代码,你可能会对它们感兴趣。

要开始你的冒险,请访问下面的网址下载iOS SDK(图 2.4):

http://developer.apple.com/devcenter/ios/

图2.4 iOS开发中心,你开发iOS的资源

在页面标题下,往往(但并不总是)有两个选项卡:SDK当前的发行版本和下一个发行版本的测试版本。我鼓励你下载发行版本。测试版只对高级的应用程序设计者有用,帮助他们设计利用新设备或软件的功能特性的应用程序,以便在未来抢占市场。

假设你刚刚下载的SDK是发行版本,进行下面这个过程。一旦下载完毕,在你下载文件的目录应该有一个巨大的 .dmg 文件。在写本书的时候,iOS SDK 4.1达到2.17GB。双击它,按照提示和指示,安装完成后,你的设计工作室的第一部分就完成了!

现在该下载并安装NimbleKit——你的Objective-C框架了。

最后一步是无比轻松并且无需详细阐述,读到这里你是不是很高兴?我敢打赌你肯定是!

1.下载NimbleKit(图2.5),请访问:

http://www.nimblekit.com/

图2.5 NimbleKit网站

2.点击下载NimbleKit链接。这一次,你就会有一个小得多的文件nimblekit.dmg,它会保存到你的下载目录。

3.打开文件,按照提示和指示,安装NimbleKit框架。

注意 NimbleKit许可证

你可能注意到在NimbleKit网页右边的网上购买链接。我建议:现在无视它就好了。您可以免费下载NimbleKit,使用它设计应用程序,在模拟器上测试,所有的事情都不需要支付他们99美元的费用。这是非常好的,因为它可以让你学习到很多东西,然后才作出是否购买的决定。另一方面,NimbleKit的费用只是一次性的(不像苹果公司的每年99美元开发费)。

本章你学会的知识有以下这些。

一个新的设计项目或者流程的每个步骤都有重要意义,包括获取和设置你的工具!因此,需要仔细考虑。

获得一个唯一的苹果公司开发者ID,以便你保持iTunes购买ID与以开发人员的身份使用iTunes和iTunes Connect完全隔离开。

仔细阅读苹果公司开发协议,并确保你对它的规定已经足够熟悉了。像任何协议一样,它创造了机会,同时也定义约束。

下载和安装iOS SDK,给你提供了基本的应用程序——Xcode和模拟器,本书的其余部分都需要它们。

下载和安装Objective-C框架NimbleKit,可在Xcode使用的一个预先编写的Objective-C的程序库,让你专注于应用程序规划,界面设计和内容组织,而不是学习新的编程语言。

恭喜你,你的设计工作室为即将到来的练习已经蓄势待发了!下一步,我们将探讨Xcode以及如何启动一个应用程序项目。

图书在版编目(CIP)数据

iOS应用开发指南:使用HTML5、CSS3和JavaScript/(美)莱昂(Layon, K.)著;郭华丰译.--北京:人民邮电出版社,2013.1

ISBN 978-7-115-29522-4

Ⅰ.①i… Ⅱ.①莱…②郭… Ⅲ.①移动电话机—应用程序—程序设计 Ⅳ.①TN929.53

中国版本图书馆CIP数据核字(2012)第236172号

版权声明

Kristofer Layon: The Web Designer’s Guide to iOS Apps: Create iPhone, iPod touch, and iPad apps with Web Standards ( ISBN: 9780321732989 )

Copyright © 2012 by

Authorized translation from the English language edition published by Adobe Press.

All rights reserved.

本书中文简体字版由美国出版公司授权人民邮电出版社出版。未经出版者书面许可,对本书任何部分不得以任何方式复制或抄袭。

版权所有,侵权必究。

iOS应用开发指南——使用HTML5、CSS3和JavaScript

◆著 [美] Kristofer Layon

译 郭华丰

责任编辑 汪振

◆人民邮电出版社出版发行  北京市崇文区夕照寺街14号

邮编 100061  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

北京天宇星印刷厂印刷

◆开本:800×1000 1/16

印张:16

字数:238千字  2013年1月第1版

印数:1-3000册  2013年1月北京第1次印刷

著作权合同登记号 图字:01-2011-3970号

ISBN 978-7-115-29522-4

定价:49.00元

读者服务热线:(010)67132692 印装质量热线:(010)67129223

反盗版热线:(010)67171154

广告经营许可证:京崇工商广字第0021号

相关图书

iOS 14开发指南【进QQ群414744032索取配套资源】
iOS 14开发指南【进QQ群414744032索取配套资源】
iOS 11 开发指南
iOS 11 开发指南
iOS和tvOS 2D游戏开发教程
iOS和tvOS 2D游戏开发教程
Swift 3开发指南
Swift 3开发指南
iOS  项目开发全程实录
iOS 项目开发全程实录
iOS 10 开发指南
iOS 10 开发指南

相关文章

相关课程