AR + Swift Playground
IT Standard 12 10 hrs Coding / Algorithm Mobile Application Development VR / AR Swift
本课程结合 Swift 编程与 Apple 装置上的扩增实境开发。学生首先在 Swift Playgrounds 中,将重复的指令组合成具名函数,使用 for 回圈重复特定模式,并以 if / else if / else 条件处理不同情况,从而解决解谜世界的关卡。随后,他们从解谜过渡至实际的应用程式开发,在 Swift Playgrounds 中建立首个 SwiftUI 应用程式,运用文字视图、堆叠、按钮及状态变数,使介面能对使用者的点击作出回应。最后部分介绍扩增实境:学生将比较 AR 与 VR,在 iPad 上的 Reality Composer 中利用资源库、锚点及点击行为建立 3D 场景,汇出该场景,并将其载入至提供的 RealityKit 范例程式码中,使场景透过装置相机显示。在整个课程中,学生需要在编写程式码前识别问题中的重复模式,借此培养大型应用程式专案所需的解构与逻辑思维能力。
学习目标
- 编写 Swift 函数、for 回圈及条件陈述式,透过在编写程式码前识别重复模式,解决 Swift Playgrounds 解谜关卡。
- 运用堆叠、按钮及状态变数建立首个 SwiftUI 应用程式,使介面能对使用者互动作出回应。
- 在 Reality Composer 中运用锚点与点击行为建立 AR 场景,然后将其汇出并载入至在 iPad 上运行的 RealityKit 应用程式中。
课程大纲
函数 | 了解如何将多段程式码封装成具名函数并呼叫执行 | 实作:i) 透过定义 func turnRight() 解决 Composing a New Behavior 及 Creating a New Function ii) 在 Collect, Toggle, Repeat 及 Across the Board 中识别重复模式 iii) 运用解构方法为 Nesting Patterns、Slotted Stairways 及 Treasure Hunt 编写 turnAround()、solveStair()、solveRow()、moveThenToggle() 及 moveClockwise()
For 回圈 | 了解如何使用 for i in 1 ... number 重复执行单一或一组动作指定次数 | 实作:i) 在 Using Loops 及 Looping All the Sides 中识别模式及重复次数 ii) 透过循环执行切换并返回模式解决 To the Edge and Back 及 Loop Jumper iii) 结合 for 及 func,在 Branch Out、Gem Farm 及 Four Stash Sweep 中封装重复动作
If 陈述式 | 了解如何配合布林条件使用 if / else if / else,以引导程式处理不同情况 | 实作:i) 使用 isOnClosedSwitch 解决 Check Switch ii) 在 Else If and Loop 中,将 isOnGem 及 isOnClosedSwitch 结合于 if / else if 区块内 iii) 为 A Smart Function、Box 及 Decision Tree,将条件区块封装入 collectOrToggle()、solveRightSide() 及 solveLeftSide()
我的首个应用程式 | 了解 SwiftUI 应用程式的结构,包括 App 协定、body 属性及 @main 进入点 | 实作:i) 在 Swift Playgrounds 中建立新的 App playground,并更改 Text 内容、.font 及 .foregroundStyle ii) 使用 HStack、VStack 及 ZStack 组合视图,并加入具备 .buttonStyle 的 Button iii) 宣告 @State 变数 bgColor、myTxt 及 isFlash,以便在点击时更改文字及全萤幕背景颜色 iv) 扩充应用程式,从颜色清单中随机选取颜色
AR 简介 | 了解扩增实境与虚拟实境的分别,以及 Reality Composer 如何在毋须编写程式码的情况下建立 AR 场景 | 实作:i) 在 iPad 上建立 Reality Composer 专案,沿 x、y 及 z 轴移动和旋转物件,并从资源库加入物件 ii) 设定水平及垂直锚点,并使用 AR 按钮预览场景 iii) 加入 Tap & Flip 行为,选择触发物件并扩展动作序列 iv) 汇出场景,在 RealityKit 范例程式码中设定 modelFileName,并将应用程式构建至装置
先修课程
- Swift Playgrounds 指令课堂 (L1) 或同等的积木编程经验
硬体需求
- iPad
- Mac
软体需求
- Swift Playgrounds
- Reality Composer (iPad)
- Xcode