在上面我们已经介绍了开发iPhone应用程序,包括Mac应用程序的各种开发工具,那到底在开发iPhone应用程序时应该做哪些工作呢?或者说iPhone应用程序开发的流程如何?有必要在此做一下梳理。
在进行应用程序开发时,有人觉得就是编写代码。其实编写代码只是应用程序开发的一部分工作,除了编写代码文件外,还有准备图标等各种图片,对于开发图形界面的iPhone应用程序或Mac应用程序来说还需要设计图形界面,所有的工作都是为了准备应用程序用的材料。这些材料在制作时需要用到上面各节中介绍的开发工具。
首先需要的当然是程序代码文件了,程序代码中编制了应用程序应该执行的各种指令。如果是开发计算器应用程序,就需要在代码中编写各种计算处理的程序指令。
程序代码是普通的文本文件,通常使用上面介绍的Xcode文本编辑器来进行编写。当然你也可以使用Xcode文本编辑器以外的文本编辑器,从Xcode综合集成开发环境中可以调用其他的文本编辑器。前面已经介绍过了,Xcode文本编辑器拥有许多辅助代码编写的功能,使用Xcode文本编辑器还是非常方便的。
iPhone应用程序或Mac应用程序的代码文件包括以【.h】为后缀的所谓头文件,以及以【.m】为后缀的程序文件。
开发具有图形用户界面的iPhone应用程序或Mac应用程序时,必须设计用户界面的外观,上面包含了窗口,用于操作的各种按钮、菜单等。这些用户界面在理论上是可以完全通过编写代码来实现的,但是编写这样的代码会非常困难。如果具有所谓【所见即所得】特征的开发工具,相信大家都会采用这样的开发工具。
Interface Builder就是用于开发iPhone应用程序或Mac应用程序的用户界面的开发工具,具有【所见即所得】特征。用户只需要将对应的部件拖曳到设计窗口,即可完成用户界面的设计,生成的文件以【.nib】为后缀。
一个iPhone应用程序或Mac应用程序通常都需要一个图标,不仅仅要有应用程序图标,还有如文档文件图标、工具条按钮图标等。这些图标的前身都是图片,只不过在iPhone应用程序或Mac应用程序中其看起来像应用程序图标,需要使用专门的工具将一般的图片转化为特定格式的图形文件。
上述所有的图片在开发应用程序时,都应该准备好。代码以外应用程序必需的文件,通常被称为资源文件。这些图片资源文件可以使用Photoshop、Illustrator等软件工具进行制做。
完成了应用程序相关代码文件的编写、用户界面的设计、各种资源文件的准备后,最后就是关于应用程序有关属性的设置了。例如应用程序的名称、著作权信息、版本号等,这些信息都放置在设置文件中。
在前面已经介绍过,这个设置文件又被称为【属性列表】的特殊格式,使用Property List Editor进行编辑。
应用程序的材料准备妥当了,下一步就是要进行“组装”了,将这些代码文件、图片资源等“组装”成应用程序的工作称为建立(Build)。
图4-23中显示了建立的流程,下面分别介绍一下各个处理步骤。
在整个建立(Build)过程中,最重要的是编译(compile)处理过程,编译有“翻译”的意思,翻译就是翻译程序代码。
图4-23 建立流程
程序代码可以用各种编程语言来编写,这些都是为了让程序员容易阅读、理解,但对于机器来说完全不能理解,将这些用编程语言写的程序代码翻译为机器能懂的机器语言就是所谓的编译了。
编译处理后,就生成了机器能理解的文件,这些计算机能理解的文件是由“0”和“1”组成的,被称为二进制文件。编译过生成的二进制文件,以【.o】为后缀。
编译后,将生成与代码文件数目对应的二进制文件。下一步需要将这些二进制文件组合成一个程序文件。这个处理被称为连接(link)。连接就是将所有的二进制文件都连接到一起。
连接时,使用的框架的信息也会附加进来。这样,程序执行时,框架的有关程序会自动被调入。
完成连接后的文件被称为可执行文件,顾名思义就是能够直接运行的文件了。实际上从终端窗口中是可以启动这个程序,但是动作还是不很完善。
可执行文件还不能很完美地运行,这是因为像图片资源、用户界面、应用程序设置信息等必需的信息还有没有导入进来。
将可执行文件与上述资源文件集中在一起的动作,被称为绑定(bind)。绑定后获得的就是iPhone应用程序或Mac应用程序了。生成的文件以【.app】作为后缀。
即经过编译(compile)→连接(link)→绑定(bind)的步骤后,才完成了iPhone应用程序或Mac应用程序的开发。
上面分别介绍了建立(build)的各个步骤,每个步骤都需要相应的应用程序,编译对应的就是编译器,连接对应的为连接器。
在Mac OS X的开发环境中(iPhone应用程序也是在Mac OS X中开发的),编译器、连接器以及绑定时使用都是名为gcc的应用程序。gcc即GNU C Compiler,是一个开放源码的编译器,除了用在Mac OS X,还广泛应用于各种计算环境中。
gcc程序是一个命令行应用程序。可在终端上输入gcc,以命令行的形式运行它。最原始的做法就是一个个编译代码文件,最后连接在一起。但是,随着代码文件的数量增加,这样的方法会越来越麻烦。这样在Mac OS X中提供了将这些编译、连接的步骤结合在一起进行管理的应用程序,这就是Xcode。