本节书摘来自异步社区《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的正式版本,苹果公司会为开发者陆续推出后续新版本。读者可以用新版本调试本书的程序,完全不妨碍读者对本书的学习。

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

  1. VSTO开发指南(VB2013版) 第一章 Office对象模型

    完美地将visual basic和office 办公软件结合起来.来自微软公司VSTO小组的权威专家所编著. 全书共712页,内容极其全面而深入,猛一看,厚地犹如庞然大物.看完离大神就不远了哦< ...

  2. asp.net mvc linux,ASP.NET MVC4开发指南PDF扫描版+源码

    ASP.NET MVC问世已久,几年前或许有人会担心ASP.NET MVC框架是否能用在实务的项目上,也担心用在新项目上是否真的能改善开发效率与质量,但笔者这几年下来,已经累积数十个网站项目改用ASP ...

  3. 翻译:《JavaScript 权威指南(第5版)》第一章(一)

    声明:翻译只有一个目的:学习用途.若有版权问题请及时联系本人. 本贴文根据篇幅将第一章的翻译分为两个部分,这是第一部分的内容. Chapter 1. Introduction to JavaScrip ...

  4. 《Netty权威指南 第2版》学习笔记(1)---服务端与客户端开发入门

    前言 Netty权威指南中以时间服务器为入门案例,演示了如何通过Netty完成了服务端与客户端之间的交互过程. 在开始使用Netty开发之前,先回顾一下使用NIO进行服务端开发的步骤. 创建Serve ...

  5. 全志Tina Linux Camera 摄像头模块开发指南 全网最详细版本支持百问网T113-Pro DongshanPI-NezhaD1-H DongshanPI-D1s V853-Pro等开发板

    1 概述 编写目的:介绍camera 模块在sunxi 平台上的开发流程. 适用范围:本文档目前适用于tina3.0 以上具备camera 的硬件平台. 2 模块介绍 2.1 模块功能介绍 用于接收并 ...

  6. unity5.x游戏开发指南——4、5、6章

    第四章 3D基础知识 4.1 Camera摄像机 参数:clear flag : skybox, solid color, depth only,don't clear background 背景色 ...

  7. 《CSS权威指南第三版》第二章的读书笔记

    第2章 选择器 CSS的主要优点,就是很容易向所有同类型的元素应用一组样式. 1.    基本规则 修改所有h2: h2{color:gray;} a.    规则结构 每个规则有两个基本部分:选择器 ...

  8. CSS权威指南第五版-第17章 变形

    17.1 坐标系 在变形中使用两种类型的坐标系,熟悉这两种坐标系是一个好主意. 第一种是笛卡尔坐标系,或者通常称为x/y/z坐标系.这种坐标系使用两个数字(二维)或三个数字(三维)表示一个点在空间中的 ...

  9. CSS权威指南第五版-第18章 过渡

    CSS过渡允许我们对CSS属性进行动画处理,使其随着时间的推移从一个原始值变成一个新的值.这些变化使一个元素从一个状态过渡到另一个状态,以响应某种变化.这通常涉及到用户的交互,但也可能是由于类.ID或 ...

最新文章

  1. mdcsoft服务器网络安全解决方案-SQL注入解决
  2. 文末送书丨深度迁移学习方法的基本思路
  3. windows下面的txt在linux下面显示为乱码
  4. 简单版:带干扰线的图形验证码生成
  5. linux创建虚拟账号,linux vsftpd 创建虚拟用户 过程记录
  6. 在ubuntu13.04上安装Mac主题
  7. java 获取子文件夹_JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件...
  8. 剑指offer之【树的子结构】
  9. 一年代码功能点的创新性怎么写_创新项目计划书模板
  10. Java通过SSH实现文件上传下载功能
  11. Delphi第三方控件大测评
  12. 人人都是产品经理02-08章摘要
  13. EXCEL的去重去除某个字段后全部操作
  14. python 广告联盟_谷歌广告月入10000美金的一些经验谈
  15. spring boot 2.1.7启动过程源码解析
  16. 安卓手机整人代码c语言大全,求一个C语言整人代码!!!
  17. RNN attention model intution
  18. 文科生学计算机有前途吗,文科生学习计算机有难度吗?计算机的前景如何?
  19. 逻辑拓扑与物理拓扑之间的区别
  20. linux+gif+编辑,从Ubuntu的命令行创建和编辑动画GIF | MOS86

热门文章

  1. android 自定义view文字不齐,Android 解决TextView排版参差不齐的问题
  2. html与java接口_html用ajax请求服务器后端java接口跨域问题解决
  3. mysql设置了utf8mb4还是报错_第07期:有关 MySQL 字符集的 SQL 语句
  4. 在MM32F3273上运行MicroPython,对于性能进行测试
  5. 智能车竞赛技术报告 | 智能车视觉 - 青岛工学院 - 青工战斗
  6. 智能车竞赛技术报告 | 全向行进组 - 哈尔滨工业大学 - 紫丁香四队
  7. 第十六届全国大学生智能车竞赛全国总决赛线上比赛规范
  8. 走火入魔 | 暑期电子设计课程学生们的作品
  9. 2021年春季学期-信号与系统-第十二次作业参考答案-第一小题
  10. 2021年春季学期-信号与系统-第七次作业参考答案-第七小题