本节书摘来自异步社区《iOS 8开发指南(第2版)》一书中的第1章,第1.1节1.3 工欲善其事,必先利其器——搭建开发环境,作者 管蕾,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.3 工欲善其事,必先利其器——搭建开发环境
iOS 8开发指南(第2版)
学习iOS开发也离不开好的开发工具的帮助,如果使用的是Lion或更高版本,下载iOS开发工具将很容易,只需通过简单地单击操作即可。为此,在Dock中打开Apple Store,搜索Xcode并免费下载它,坐下来等待Mac下载大型安装程序(约3GB)。如果你使用的不是Lion,可以从iOS开发中心(http://developer.apple.com/ios)下载最新版本的iOS开发工具。
注意:
如果是免费成员,登录iOS开发中心后,很可能只能看到一个安装程序,它可安装Xcode和iOS SDK(最新版本的开发工具);如果你是付费成员,可看到指向其他SDK版本(5.1、6.0等)的链接。
1.3.1 Xcode 6介绍
要开发iOS的应用程序,需要一台安装有Xcode工具的Mac OS X计算机。Xcode是苹果提供的开发工具集,提供了项目管理、代码编辑、创建执行程序、代码调试、代码库管理和性能调节等功能。这个工具集的核心就是Xcode程序,提供了基本的源代码开发环境。
Xcode是一款强大的专业开发工具,可以简单快速,并以我们熟悉的方式执行绝大多数常见的软件开发任务。相对于创建单一类型的应用程序所需要的能力而言,Xcode要强大得多,它设计目的是使我们可以创建任何想得到的软件产品类型,从Cocoa到Carbon应用程序,再到内核扩展及Spotlight导入器等各种开发任务,Xcode都能完成。Xcode独具特色的用户界面可以帮助我们以各种不同的方式漫游工具中的代码,并且可以访问工具箱下面的大量功能,包括GCC、javac、jikes和GDB,这些功能都是制作软件产品需要的。它是一个由专业人员设计、又由专业人员使用的工具。
由于能力出众,Xcode已经被Mac开发者社区广为采纳。而且随着苹果电脑向基于Intel的Macintosh迁移,转向Xcode变得比以往任何时候都更加重要。这是因为使用Xcode可以创建通用的二进制代码,这里所说的通用二进制代码是一种可以把PowerPC和Intel架构下的本地代码同时放到一个程序包执行的文件格式。事实上,对于还没有采用Xcode的开发人员,转向Xcode是将应用程序连编为通用二进制代码的第一个必要的步骤。
Xcode的官方地址是:https://developer.apple.com/xcode/downloads/,如图1-4所示。
截止到2014年6月,市面中最主流版本是Xcode 5,最新版本是Xcode 6 beta,其最突出的特点如下所示。
(1)Xcode 6增加了一个全新的iOS模拟器,允许开发者根据设备调整应用尺寸,除了“Resizable iPhone”和“Resizable iPad”之外,还包括iPhone 5/5S、iPad 2/Retina/Air等具体设备,如图1-5所示。
(2)完全支持Swift编程。Xcode 6为开发者引入了一种全新的设计和开发应用的方式,深度支持Swift编程,开发者不仅能使用100%的Swift代码来创建一款崭新的应用,还可以向已存在的应用添加Swift代码或框架,并在Swift或Objective-C中查看文档。例如“Jump to Definition”、“Open Quickly”等在Swift中均能很好地工作,甚至Objective-C的头定义在Swift语法中也能良好地呈现。
(3)实时的代码效果预览。现在,开发者在使用Interface Builder设计界面时,能够实时地预览代码效果。当程序运行时,自定义对象将在设计时展现。当开发者修改自定义视图代码时,Interface Builder的设计画布则会自动更新,而无需任何的构建和运行操作。
此外,其所包含的API还支持向IB Inspector添加参数来快速修改视图,甚至开发者还可以预先填充示例数据视图来让界面更加准确。而支持UIKit大小类的iOS脚本则能够让开发者为所有iOS设备开发单一的通用脚本,不仅能为特定的设备尺寸或方向进行行为选择,还可以保持接口的一致性,且易于维护。
(4)新增View Debugging功能。Xcode 6实现了此前备受开发者期待的View Debuger。现在,调试应用UI就像按单击按钮那样简单,开发者可以轻而易举地看到为什么一个视图可能会被裁剪或隐藏,并在Inspector中检查和调试约束及其他参数。当然,Xcode还包含了其他新的调试工具,例如,调试Gauge来监控I/O用法、增强版的iCloud Gauge等,而Debug Navigator也将显示更有用的信息,包括栈框架记录和块队列等。
1.3.2 iOS SDK介绍
iOS SDK是苹果公司提供的iPhone开发工具包,包括了界面开发工具、集成开发工具、框架工具、编译器、分析工具、开发样本和一个模拟器。在iOS SDK中包含了Xcode IDE和iPhone模拟器等一系列其他工具。苹果官方发布的iOS SDK则将这部分底层API进行了包装,用户的程序只能和苹果提供的iOS SDK中定义的类进行对话,而这些类再和底层的API进行对话。
最明显的例子就是OpenGL ES,苹果官方发布的iOS SDK中的OpenGL ES实际是和底层API中CoreSurface这个框架进行对话,来实现渲染功能。
1.iOS SDK的优点和缺点
苹果官方iOS SDK的缺点如下所示。
CoreSurface(硬件显示设备)、Celestial(硬件音频设备)以及其他几乎所有和硬件相关的处理无法实现。
无法开发后台运行的程序。
需要代码签名才能够在真机上调试。
只能在Leopard 10.5.2以上版本、Inter Mac机器上进行开发。
苹果官方iOS SDK的优点如下所示。
开发环境几乎和开发Mac软件一样,一样的XCode、Interface Builder、Instruments工具。
最新版本的iOS SDK可以使用Interface Builder制作界面。
环境搭建非常容易。
用代码签名可以避免恶意软件。
使用官方iOS SDK开发的软件需要经过苹果的认可才可发布到苹果的App Store上。用户可以通过App Store直接下载或通过iTunes下载软件并安装到iPhone中。
2.iOS程序框架
总体来说iOS程序有两类框架,一类是游戏框架,另一类是非游戏框架,接下来将要介绍的是非游戏框架,即基于iPhone用户界面标准控件的程序框架。
典型的iOS程序包含一个窗口(Window)和几个视图控制器(UIViewController),每个UIViewController可以管理多个UIView(在iPhone里你看到的、感觉到的都是UIView,也可能是UITableView、UIWebView、UIImageView等)。这些UIView之间如何进行层次迭放、显示、隐藏、旋转、移动等都由UIViewController进行管理,而UIViewController之间的切换,通常情况是通过UINavigationController、UITabBarController或UISplitViewController进行切换。
(1)UINavigationController
是用于构建分层应用程序的主要工具,它维护了一个视图控制器栈,任何类型的视图控制器都可以放入。它在管理以及换入和换出多个内容视图方面,与标签控制器(UITabBarController)类似。两者间的主要不同在于UINavigationController是作为栈来实现,它更适合用于处理分层数据。另外,UINavigationController还有一个作用是用作顶部菜单。
当你的程序具有层次化的工作流时,就比较适合使用UINavigationController来管理UIViewController,即用户可以从上一层界面进入下一层界面,在下一层界面处理完以后又可以简单地返回到上一层界面,UINavigationController使用堆栈的方式来管理UIViewController。
(2)UITabBarController
当我们的应用程序需要分为几个相对比较独立的部分时,就比较适合使用UITabBarController来组织用户界面。如图1-6所示,屏幕下面被划分成了两个部分。
(3)UISplitViewController
UISplitViewController属于iPad特有的界面控件,适合用于主从界面的情况(Master view→Detail view),Detail view跟随Master view进行更新。如图1-7所示,屏幕左边(Master View)是主菜单,单击每个菜单则屏幕右边(Detail View)就进行刷新,屏幕右边的界面内容又可以通过UINavigationController进行组织,以便用户进入Detail View进行更多操作,用户界面以这样的方式进行组织,使得程序内容清晰,非常有条理,是组织用户界面导航很好的方式。
1.3.3 下载并安装Xcode 6
其实对于初学者来说,只需安装Xcode即可。通过使用Xcode,既能开发iPhone程序,也能开发iPad程序。并且Xcode还是完全免费的,通过它提供的模拟器可以在计算机上测试iOS程序。如果要发布iOS程序或在真实机器上测试iOS程序,就需要花99美元了。
(3)如果是付费账户,可以直接在苹果官方网站中下载获得。如果不是付费会员用户,可以从网络中搜索热心网友们的共享信息,以此达到下载Xcode 6的目的。
注意:
可以使用App Store来获取Xcode,这种方式的优点是完全自动,操作方便。
2.安装Xcode
(1)下载完成后单击打开下载的“.dmg”格式文件,然后双击Xcode文件开始安装,如图1-10所示。
(3)在弹出的欢迎界面中单击“Agree”按钮,如图1-12所示。
(6)在弹出的新对话框中显示安装进度,进度完成后的界面如图1-15所示。
注意:
(1)考虑到许多初学者没有购买苹果机的预算,因此,也可以在Windows系统上采用虚拟机的方式安装OS X系统。
(2)无论读者是已经有一定Xcode经验的开发者,还是刚开始迁移的新用户,都需要对Xcode的用户界面及如何用Xcode组织软件工具有一些理解,这样才能真正高效地使用这个工具。这种理解可以加深读者对隐藏在Xcode背后的开发思想的认识,并帮助读者更好地使用Xcode。
(3)建议读者将Xcode安装在OS X的Mac机器上,也就是装有苹果系统的苹果机上。通常来说,在苹果机器的OS X系统中已经内置了Xcode,默认目录是“/Developer/Applications”。
(4)本书使用的Xcode 6.1版本,这已经是Xcode的正式版本,苹果公司会为开发者陆续推出后续新版本。读者可以用新版本调试本书的程序,完全不妨碍读者对本书的学习。