1.2 Xcode:育苗大棚的搭建


1.2 Xcode:育苗大棚的搭建

本节摘要:Xcode 是 iOS 开发唯一的大棚:代码编辑、界面设计、编译、调试、模拟器全在里面。本节从安装讲到一个能跑的工程:创建「阳台花园」工程、认识五块工作区、在模拟器上亮出第一个视图、体验"改一行立刻见效"的反馈回路。读完本节,你有一片随时能下种的田。

动手:从安装到第一屏

上一节画完了生态地图,这一节把地图上那台 Mac 变成真正的大棚。整个过程分四步:装、建、认、跑。

第一步,装。 打开 Mac 上的 App Store,搜索 Xcode 安装。它体积大,预留几十 GB 磁盘并耐心等待;装完后首次打开会提示安装附加组件(模拟器与命令行工具),点同意装完。没有 Mac 的读者有两条替代路线:租用云端 Mac 主机,或先跟着读并在第 1.3 节的在线练习场写 Swift——但界面部分终究需要真大棚。

第二步,建工程。 启动 Xcode,选创建新工程,模板选 iOS 应用类里的 App(不要选错成游戏或 Widget 类)。接下来的表单是这棵树的出生证,逐项填:

  • Product Name 填 BalconyGarden(工程名用 ASCII 拼音或英文,界面上再显示中文);
  • Interface 一项先选 Storyboard——第 3 章 UIKit 主线用得上;到第 5 章我们会再建一个 SwiftUI 版工程对照;
  • Language 选 Swift;Storage 先选 None,第 6 章再引入持久化;
  • 取消勾选版本控制以外的可选项,保持工程干净。

第三步,认大棚。 工程打开后,窗口大致分五块,如下图。

图 1-2 Xcode 工作区五块分区

图 1-2 Xcode 工作区五块分区

第四步,跑。 顶部工具栏选一个 iPhone 模拟器,点运行(快捷键 Cmd+R)。首次启动模拟器较慢,出现一个仿真 iPhone 屏,里面是你的 App 白屏——空白就是画布,第一步已经完成。

第一个视图:种子下地

工程模板自带一个控制器场景。现在把「阳台花园」的第一颗种子放进去:打开自动生成的视图控制器代码文件,在视图加载完成时造一个标签。整段代码是第 3 章的预演,现在只需照抄并读懂注释。

import UIKit class ViewController: UIViewController { var plantLabel: UILabel! // 先声明一个标签属性(种子的位置) override func viewDidLoad() { super.viewDidLoad() // 父类先做它的准备工作 view.backgroundColor = .systemMint // 阳台花园的主题底色:薄荷绿 plantLabel = UILabel() // 造标签 plantLabel.text = "阳台花园 · 龟背竹" // 种子上的第一行字 plantLabel.textColor = .white plantLabel.font = .systemFont(ofSize: 28, weight: .bold) plantLabel.textAlignment = .center plantLabel.translatesAutoresizingMaskIntoConstraints = false // 告诉系统:位置我来用约束管 view.addSubview(plantLabel) // 种进视图树(第 3 章详讲这棵树) // 两条约束:水平居中 + 垂直居中 NSLayoutConstraint.activate([ plantLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor), plantLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor) ]) print("第一个视图已挂载,标签文字:\(plantLabel.text ?? "空")") } } // 运行后控制台输出: // 第一个视图已挂载,标签文字:阳台花园 · 龟背竹 // 模拟器屏幕:薄荷绿底色上一行白色粗体字居中显示

回到模拟器按 Cmd+R 重跑,白屏变成薄荷绿加一行字。别小看这一步——从这一刻起,你写的每一行代码都有了一条完整的反馈回路:敲代码、运行、眼睛看到结果。

案例:第一次热修改的完整过程

背景:改代码后每次都整工程重跑,一分钟只够试两三版配色,反馈太慢会拖垮学习节奏。操作:保持模拟器开着,只改一个参数——把字号从 28 改成 44,再按 Cmd+R。结果:模拟器闪烁一下,字明显变大,控制台再次输出挂载日志。解读:这次重跑没有重新编译全部代码,增量编译只花了原来零头的时间;模拟器作为独立进程一直活着,才让"改—跑—看"的循环转得起来。变式:把底色换成别的系统颜色再跑一次,试着只靠改这一行,把屏幕调成你喜欢的明暗;到第 5 章 SwiftUI 的画布预览连运行都省了,改一个字符界面即时刷新——那是更快的反馈回路。

反馈回路 速度 适用场景
Cmd+R 整跑 秒级 UIKit 页面、逻辑改动、需要真实交互时
SwiftUI 画布预览 即时 第 5 章起,纯界面微调
print 加控制台 每次运行可见 验证代码走到哪一行、值是什么

工程里还有什么

导航区能看到几个陌生面孔,先混个眼缘:资产目录(放图片与图标,第 3 章放植物照片)、Info 配置(App 名称、横竖屏等声明)、测试目标(第 6 章排错时的好帮手)。它们现在都可以不动,但要找得到——第 6 章的病虫害手册会频繁回到这些地方取证。

模拟器本身也值得多按几下:Home 手势回桌面再点回 App,你能亲眼看到"界面重建"与"状态还在"的差别;旋转设备或换一台不同尺寸的模拟器,第一屏的字还居中吗?此刻答案多半是肯定的,因为我们用的是约束而非写死坐标——这正是第 3 章要展开的主题,现在先把"换设备验证"这个动作养成习惯,它是后面一切布局工作的验收标准。

另外记三个救命快捷键:Cmd+R 运行、Cmd+. 停止、Cmd+Shift+O 按名字跳转任意文件。手指记住它们,比任何效率插件都实在。

⚠️ 常见坑:工程名或文件夹路径里带中文与空格,偶尔会让编译器或第三方工具解析出错。工程名用英文、界面文案用中文,是从第一天就该养成的习惯。

本节要点回顾

  • 五步流程:装 Xcode → 建 App 工程 → 认五块工作区 → 选模拟器 Cmd+R → 看到第一屏;
  • 第一个视图的套路:造 UILabel、设属性、加进父视图、钉两条居中约束——第 3 章会把每个动作讲透;
  • 反馈回路是学习命脉:模拟器不关、增量编译、print 取证,三者构成最快的试错循环;
  • 工程卫生:名称用 ASCII,资源进资产目录,可选项保持默认。

大棚建好了,但真正的语言练习不该在正式工程里瞎试——下一节去开一块没有负担的试验田。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U