Xcode 4是一个全新的all-in-1 IDE,类似于Visual Studio。我有十几年的Visual Studio使用经验,初次使用Xcode3时,感觉很不方便。幸运的是Xcode4 有个质的飞跃。Interface Builder不再是一个单独的程序,它很好的集成于Xcode4中了。这样,我们就可以在Xcode4中完成编写代码、设计UI、调试等等任何事情。这个session涵盖workspaces, navigation, 编辑, organizer,版本控制,调试,以及schemes。
Workspaces
Workspace类似于Visual Studio的solution。Workspace像一个容器一样,可以包含好几个project(事实上,它们只是引用关系)。Visual Studio 2001就已经支持solution了,Xcode在大约十年之后才支持类似的东西,有点慢啊。有些不同,Xcode4并不强迫建立workspace,你可以直接打开一个project。但Visual Studio就不同了,你必须要建立一个solution,哪怕它仅包含一个project。
Project可以被不同的workspace引用。每个workspace都会建立自己的索引和编译目录。
Navigation
在Xcode的左面面板中包含下面几种navigator。
1. Project navigator - 显示projects和文件
2. Symbol navigator - 显示class的继承关系, members, functions
3. Search navigator - 查找,替换
4. Issue navigator - 显示警告和错误
5. Debug navigator
6. Breakpoint navigator - 显示断点
7. Log navigator
编辑
有三种编辑方式。你可以在工具栏中看到三个按钮。
Standard - 和Xcode 3类似.
Assistant - 会出现两个编辑框。如果你选中了一个.h文件,另一个编辑框中会自动显示.m文件。这个特性很方便。
Version - Xcode 4内置版本控制。你可以在这个Version editor中检查某个文件的更改历史。
当你编写代码的时候,Xcode4在后台编译,实时显示代码中的错误,甚至有可能给出fix的方法。
Xcode 4提供Code Snippet Library(代码片段库),你可以增加自己的代码,定义快捷键,并使用它们。
对于xib文件,你可以在一个控件上点右键并且拖拽到.h文件中,来创建一个IBOutlet或IBAction.
Xcode 4可以以16进制的方式代码任意文件并且编辑。
Organizer
1. iPhone tab - 与Xcode 3类似.
2. Repository tab - 显示代码库。
3. Projects tab - 显示projects和snapshots.
4. Archives - 显示archives,可提交程序到app store.
5. Documentation tab - 文档。
Version Editor
在版本编辑器中,你可以把当前的文件和历史文件进行对比,或者在log view中显示此文件的所有历史记录。
Debugging
新的debug界面很像Visual Studio.
Scheme
Scheme可以认为是一组流程。Scheme is a plan for Xcode to produce a result from your projects and contents of your workspace.
Xcode 4 schemes could come with 3 phases: build, test, launch. It is good for your workflow. You can create a scheme for bug fixing: debug build, unit test, launch in debugger. You can also create a scheme for performance testing: release build, performance tests, launch in Instruments. And you can create a distribution scheme: release build, unit tests, archive.
Sample projects mentioned in the demo:
Sketch (apple sample project), Baffle(no source code)
The authors of WWDC2010 Session307 Introducing Xcode 4:
Anders Bertelrud - Xcode Architect
Brooke Callahan - Software Engineer
Ron Lue-Sang - Senior Software Engineer