《iOS 8开发指南(第2版)》——第1章,第1.3节工欲善其事,必先利其器——搭建开发环境

简介:

本节书摘来自异步社区《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所示。


9ab675211f0b69b05fdfe3f01993099f900cdcc5

截止到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设备开发单一的通用脚本,不仅能为特定的设备尺寸或方向进行行为选择,还可以保持接口的一致性,且易于维护。


faca462efe2aaae76f3a693ccb67506a00beca17

(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所示,屏幕下面被划分成了两个部分。


496242383dda1a011757467e5721965fe3e75710

(3)UISplitViewController

UISplitViewController属于iPad特有的界面控件,适合用于主从界面的情况(Master view→Detail view),Detail view跟随Master view进行更新。如图1-7所示,屏幕左边(Master View)是主菜单,单击每个菜单则屏幕右边(Detail View)就进行刷新,屏幕右边的界面内容又可以通过UINavigationController进行组织,以便用户进入Detail View进行更多操作,用户界面以这样的方式进行组织,使得程序内容清晰,非常有条理,是组织用户界面导航很好的方式。


ba0d8a441f127b22a009361525fc02ad2fcb4530

1.3.3 下载并安装Xcode 6
其实对于初学者来说,只需安装Xcode即可。通过使用Xcode,既能开发iPhone程序,也能开发iPad程序。并且Xcode还是完全免费的,通过它提供的模拟器可以在计算机上测试iOS程序。如果要发布iOS程序或在真实机器上测试iOS程序,就需要花99美元了。


6dfecd718d190c2bc189ab85e4eae10361d063c4

(3)如果是付费账户,可以直接在苹果官方网站中下载获得。如果不是付费会员用户,可以从网络中搜索热心网友们的共享信息,以此达到下载Xcode 6的目的。

注意:
可以使用App Store来获取Xcode,这种方式的优点是完全自动,操作方便。
2.安装Xcode
(1)下载完成后单击打开下载的“.dmg”格式文件,然后双击Xcode文件开始安装,如图1-10所示。


29e59787413d1680c9980d608ba1aa9ec2c710bb

(3)在弹出的欢迎界面中单击“Agree”按钮,如图1-12所示。


54e37fecc8fb89f1bac8fc590ddab0839edc1e1d

(6)在弹出的新对话框中显示安装进度,进度完成后的界面如图1-15所示。


693186756c0b38549eaa08df5bdd75362ae215af

注意:
(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的正式版本,苹果公司会为开发者陆续推出后续新版本。读者可以用新版本调试本书的程序,完全不妨碍读者对本书的学习。

相关文章
|
3月前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
178 2
|
3月前
|
开发工具 Android开发 Swift
安卓与iOS开发环境对比分析
在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统无疑是主角。它们各自拥有独特的特点和优势,为开发者提供了不同的开发环境和工具。本文将深入浅出地探讨安卓和iOS开发环境的主要差异,包括开发工具、编程语言、用户界面设计、性能优化以及市场覆盖等方面,旨在帮助初学者更好地理解两大平台的开发特点,并为他们选择合适的开发路径提供参考。通过比较分析,我们将揭示不同环境下的开发实践,以及如何根据项目需求和目标受众来选择最合适的开发平台。
51 2
|
2月前
|
开发工具 Android开发 iOS开发
深入解析安卓与iOS开发环境的优劣
【10月更文挑战第4天】 本文将深入探讨安卓和iOS两大主流移动操作系统的开发环境,从技术架构、开发工具、用户体验等方面进行详细比较。通过分析各自的优势和不足,帮助开发者更好地理解这两个平台的异同,从而为项目选择最合适的开发平台提供参考。
27 3
|
2月前
|
开发工具 Android开发 Swift
安卓与iOS开发环境的差异性分析
【10月更文挑战第8天】 本文旨在探讨Android和iOS两大移动操作系统在开发环境上的不同,包括开发语言、工具、平台特性等方面。通过对这些差异性的分析,帮助开发者更好地理解两大平台,以便在项目开发中做出更合适的技术选择。
|
2月前
|
开发工具 Android开发 iOS开发
安卓与iOS开发环境深度对比
【10月更文挑战第1天】本文旨在探讨和分析安卓(Android)与苹果(iOS)两大主流移动操作系统在应用开发环境上的不同点。通过比较它们的开发工具、语言、用户体验设计、市场策略及生态系统,本文将为开发者提供一份详尽的参考指南,帮助他们做出更合适的开发平台选择。此外,文章还将探讨两大平台未来的发展趋势,以及这些趋势可能对开发者和用户产生的影响。
51 0
|
3月前
|
IDE Java Android开发
安卓与iOS开发环境的差异及其对开发者的影响
在数字时代的浪潮中,移动应用成为人们生活的延伸。两大操作系统——安卓与iOS,如同两座技术高峰,各自占据着半壁江山。本文将探索这两个平台的开发环境差异,并讨论这些差异如何塑造开发者的编程习惯与职业选择。我们将从工具和语言、用户界面设计、系统架构、市场定位以及开发社区和资源五个方面进行比较,旨在为开发者提供一份实用的指南,帮助他们在不断变化的技术世界中,找到适合自己的发展路径。
56 3
|
3月前
|
移动开发 Android开发 Swift
安卓与iOS开发环境对比:选择合适的平台
在数字时代的浪潮中,移动应用开发成为技术前沿的热门领域。两大主流操作系统——安卓和iOS,各自拥有独特的开发环境与生态。本文将深入探讨这两种平台的开发特点,帮助开发者根据自己的需求和资源选择最合适的开发路径。从工具支持到用户群体,从编程语言到市场分布,我们将一一剖析,为即将踏上移动开发之旅的朋友们提供一盏明灯。
|
4月前
|
Java 开发工具 Android开发
安卓与iOS开发环境对比分析
【8月更文挑战第20天】在移动应用开发的广阔天地中,Android和iOS两大平台各自占据着重要的位置。本文将深入探讨这两种操作系统的开发环境,从编程语言到开发工具,从用户界面设计到性能优化,以及市场趋势对开发者选择的影响。我们旨在为读者提供一个全面的比较视角,帮助理解不同平台的优势与挑战,并为那些站在选择十字路口的开发者提供有价值的参考信息。
103 17
|
3月前
|
IDE 开发工具 Android开发
安卓与iOS开发环境对比分析
本文将探讨安卓和iOS这两大移动操作系统在开发环境上的差异,从工具、语言、框架到生态系统等多个角度进行比较。我们将深入了解各自的优势和劣势,并尝试为开发者提供一些实用的建议,以帮助他们根据自己的需求选择最适合的开发平台。
51 1
|
3月前
|
开发工具 Android开发 iOS开发
安卓与iOS开发环境对比:选择适合你的平台
【9月更文挑战第26天】在移动应用开发的广阔天地中,安卓和iOS是两大巨头。它们各自拥有独特的优势和挑战,影响着开发者的选择和决策。本文将深入探讨这两个平台的开发环境,帮助你理解它们的核心差异,并指导你根据个人或项目需求做出明智的选择。无论你是初学者还是资深开发者,了解这些平台的异同都至关重要。让我们一起探索,找到最适合你的那片开发天地。

相关实验场景

更多