关于 Xcode
Xcode 是苹果官方推出的用于开发运行于苹果产品(如 iPad、iPhone、Mac 等)中的应用的集成开发环境,Xcode 提供了管理整个开发工作流的所有工具——从创建应用到测试、优化以及推荐应用至 App Store。
Xcode 一览
在 Mac 打开 App Store 应用,搜索 Xcode ,然后下载最新版本,它是一个免费的应用,当下载完成之后,系统会自动安装它,然后就可以在 Launchpad 中找到它的启动图标了,如下图所示:

单窗口操作界面
Xcode 在一个工作窗口中整合了代码编辑、用户界面设计、资源文件管理、测试以及调度等所有功能,同时窗口中的所有组件都可以根据你的自身喜好进行自定义,比如文件选择器在一个区域中,然后将文件的文件编辑器放在另一个区域中,当你选择一个用户对象时,它的文档同时出现在其旁边等。
您还可以让整个界面只显示出你需要显示的,将其它无关你项目的功能隐藏,比如你可以让整个窗口只显示你的源代码树以及你的用户界面布局,或者你还可以让一个窗口的功能分成多个窗口显示,或者在一个窗口中通过 Tabs 方式进行功能的划分。

带辅助功能的代码编辑
不管你使用的是 Objective-C、Swift、C、C++ 还是多种语言都有使用,Xcode 都会自动的对你的代码进行检测,并猜测出你所当前编辑的语言,当发现你的代码存在一个错误时,代码编辑器会自动的高亮该错误,若可能,它还会给出修改意见,Xcode 还提供了快速且高效的代码提示出自动完成功能,同时还提供了很多拿来即用的代码片段或者源代码文件模板,对于 Swift 语言,您还可以在不构建或运行应用的前提下直接在 Playground 里面运行并在可视化的环境下实时预览结果。
你可以很方便的让代码编辑器同时显示一个文件的多种视图或者在一个视图中一次性查看多个文件,Search-and-replace (翻译与替换)让你可以快速且安全的在整个项目中搜索并替换代码。

可视化的 UI 设计
Interface Builder 是一个 Xcode 整合的视觉设计编辑器,使用 Interface Builder ,你可以创建与设计 iOS 或者 Mac 应用的窗口、视图、控制器、菜单以及其它任何在库中预配置的元素对象以及您创建的元素。而另一个强大的功能就是,通过 Storyboards,可以让你在可视化的界面下直观的设计应用的流程以及不同界面间切换的动画,以可视化的方式连接你在代码所实现的对象与动画。

通过自动布局功能(Auto Layout),当你设定好界面元素的限制后,软件会自动地根据屏幕尺寸、窗口尺寸或者语言自动对其进行布局,配合 Size Classes,让你的应用可以智能的自动适应屏幕尺寸以及屏幕方向——根据设定,自动进行布局、添加或删除视图甚至更改字体等。

Xcode 中的资源文件目录可以让你管理各种你将在应用中使用的图片,比如图标、设计图、启动图片等,同时,粒子动作编辑器(Particle emitter editor)可以让你快速的编辑 iOS 或者 Mac 游戏中的特效,比如雪花飞舞、烟雾效果等,对于 Mac应用, SceneKit 编辑还可以帮助你在 3D 场景下创建场景并导出为数字资产交换格式文件(Digital Asset Exchange, DAE)。

集成的调试工具
当 Xcode 以调试模式(Debug Mode)启动应用时,它会自动的立马启动一个调试会话(Debugging Session),若您启动的是一个 iOS 应用,它会在 iOS 模拟器(Simulator)中或者一个你选择的连接至 Mac 的 iPhone 中启动应用,若您启动的是 Mac 应用,则其会直接在当前的 Mac 中启动它。

您可以直接在代码编辑器的进行调试,要查看任何一个变量的值,只需要将鼠标移动到那个变量的名称上面即可,调试器可以让你在检查代码时,细致的控制其执行,同时,为了更加细致的控制,命令面板还提供了通过命令行访问调试器的功能。

调试压力表显示你的应用程序的资源消耗以帮助在应用正式上线之前找到更多影响性能的问题。

Testing and Continuous Integrations
测试和持续集成
为了帮助您建立一个更好的应用程序,Xcode中提供了一个功能及性能测试框架。你可以通过测试用例导航运行你的测试用例及查看测试结果,而性能测试可以让你更加清楚自己应用的运行性能,这可以在你应用上线后,尽可能降低用户的运行效率与等待时间。
运行在测试导航测试,看看结果,并进行必要的测试通过的任何变化。您可以使用Xcode的服务,在OS X Server中可用,自动化测试的执行。在Xcode上开发的Mac,你创建一个单独的服务器上运行,以定期或在每次源代码提交执行单元测试机器人。
Run your tests in the test navigator, look at the results, and make any changes needed to pass the tests. You can use the Xcode service, available in OS X Server, to automate the execution of tests. From Xcode on your development Mac, you create bots that run on a separate server to execute your unit tests either periodically or on every source code commit.

In addition to running unit tests, bots automatically perform static analysis on your code, build your app, and archive it for distribution to testers or the App Store. While performing these continuous integrations of your app, bots report build errors and warnings, static analyzer problems, and unit test failures.
自动保存、项目快照以及代码控制
当你工作时,Xcode 会自动为您定期的保存文件与代码的理性,这个功能不需要任何设置,因为 Xcode 会连续的跟踪你对文件的改动,同时,你又可以使用返回与重置(Undo & Revert)功能返回至上一个状态或者恢复下一个状态。
除了文件外,你还可以直接通过恢复快照命令(Restore Snapshot command)将整个项目恢复至某一个你知道版本的历史快照,在使用时候,点击菜单栏中的 文件(File) » 创建快照(Create Snapshot) 即可为你的项目创建一个快照,同时,你还可以配置让 Xcode 根据你的规则自动的创建快照。

若要对文件的修改进行更好的跟踪,您还可以使用 Xcode 代码管理功能, Xcode 支持两个有名的代码管理系统—— Git 与 Subversion,您可以同时访问远程的 Git 或者 Subversion 代码仓库,也可以在本地创建 Git 代码仓库,通过 OS X Server 使用 Xcode 服务,你还可以创建你自己的 Git 服务。

集成的文档功能
在你编写代码时, Xcode 会根据你当前所编写的代码自动智能的从文档库中查询想关的SDK或者API文档,以方便你快速的调出查阅。

分发应用至测试用户或者 App Store
Most of your development time is spent on coding tasks, but to develop for the App Store, you need to perform a number of administrative tasks throughout the lifetime of your app. In addition to Xcode, you’ll use the Member Center web tool to manage developer program accounts and entitlements, and you’ll use the iTunes Connect web tool to check the status of your contracts, set up tax and banking information, obtain sales and finance reports, and manage metadata about the app.
Xcode project configurations help prepare your app for distribution to beta testers and for submission to the App Store. Submitting your app is a multistep process that begins when you sign into iTunes Connect and supply necessary product information. In Xcode, you create an archive of your project and submit it to the store. When your app is approved, you use iTunes Connect to release it by setting the date. (If you are distributing your Mac app outside the store, you follow a slightly different process.)


































