描述
开 本: 128开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121418228
八个生动有趣的案例带你掌握实战技巧
功能介绍清晰详细,知其然知其所以然
操作步骤娓娓道来,小白也能轻松上手
实例教程轻松有趣,学习娱乐两不误
迭代教学步步为营,扎实掌握知识点
本书是以实战为基础的iOS应用程序开发教程,以项目实战的方式教会读者如何运用全新的Xcode 12和SwiftUI 2.0框架开发商业级别的iOS和iPadOS应用程序。SwiftUI框架是苹果公司于2019年推出的全新用户界面框架,阅读本书的读者需要具备Swift程序设计语言基础。本书结合了8个应用程序案例,让读者在模仿和学习的过程中快速地找到实战的感觉。本书内容翔实、结构清晰、循序渐进,将基础知识与案例实战紧密结合,既可作为iOS初学者的入门教材,也适合中高级用户进一步学习新技术。
目录
第1章 我的个iOS应用程序 1
1.1 使用Xcode快速创建项目 1
1.1.1 为项目添加程序图标和相关图片素材 3
1.1.2 为项目添加预定义颜色 5
1.1.3 为项目添加图片素材 7
1.2 创建启动画面 9
1.3 创建卡片视图布局 10
1.3.1 创建CardView 10
1.3.2 创建线性渐变色背景 14
1.3.3 为CardView添加图像和文本 15
1.3.4 为CardView添加按钮 17
1.4 循环生成多张卡片视图 21
1.5 为卡片创建数据模型 22
1.5.1 创建卡片数据模型 23
1.5.2 为静态数据创建数组 24
1.5.3 在卡片中显示数据信息 24
1.6 在应用程序中播放声音 28
1.7 创建动画效果 29
1.7.1 为卡片人物创建淡入动画 29
1.7.2 为标题创建下滑入动画效果 31
1.7.3 为按钮创建上滑入动画效果 31
1.8 为应用程序添加触控反馈效果 33
1.9 呈现警告对话框 34
1.10 为应用程序创建iMessage贴图 36
第2章 这里是北京 40
2.1 使用Xcode创建项目 40
2.1.1 为项目添加程序图标和相关图片素材 41
2.1.2 为项目添加适配颜色集和图像集 42
2.2 创建支持浅色和深色模式的启动画面 46
2.2.1 创建Launch Screen故事板 46
2.2.2 设计Launch Screen用户界面 48
2.2.3 在项目中设置启动画面 51
2.3 创建Tab View导航 52
2.3.1 创建4个场景视图 53
2.3.2 创建Tab View 54
2.4 创建北京简介视图 55
2.4.1 创建简介视图 55
2.4.2 为简介视图添加动画效果 58
2.5 创建小吃视图页面 59
2.5.1 设计横幅视图布局 59
2.5.2 创建横幅滚动视图 62
2.5.3 获取HeaderView所需的静态数据 63
2.5.4 创建灵活的表格式布局 65
2.5.5 创建横幅滚动视图 71
2.5.6 创建特色小吃店卡片视图 75
2.5.7 创建小吃店详细页面视图 82
2.5.8 使用Sheet修饰器呈现新的视图 87
2.6 创建胡同视图页面 89
2.7 使用SwiftUI设计表单 95
第3章 蔬菜百科全书 100
3.1 使用Xcode快速创建项目 100
3.1.1 设置iOS设备的屏幕允许方向 101
3.1.2 为项目添加程序图标和蔬菜图片 102
3.1.3 为项目添加颜色集 104
3.1.4 在模拟器中查看效果 106
3.2 利用Page Tab View创建引导画面 106
3.2.1 整理项目文件的结构 107
3.2.2 创建可复用的蔬菜卡片视图 107
3.2.3 创建自定义外观按钮 111
3.2.4 为蔬菜卡片增加动画效果 113
3.2.5 创建蔬菜卡片分页视图 114
3.3 创建数据模型和获取数据 116
3.3.1 创建数据模型 116
3.3.2 创建蔬菜数据 117
3.3.3 在蔬菜卡片中显示蔬菜数据 117
3.3.4 在引导页面中显示蔬菜数据 119
3.4 使用AppStorage封装器存储数据 120
3.4.1 SwiftUI中应用程序的生存期 121
3.4.2 完成按钮的执行代码 124
3.5 通过循环创建列表视图 125
3.5.1 创建行视图 125
3.5.2 创建列表视图 128
3.5.3 设置导航视图的属性 130
3.6 创建蔬菜的详情视图 130
3.6.1 创建视图文件 130
3.6.2 添加导航链接 131
3.6.3 设计详情页面视图 132
3.6.4 创建独立的蔬菜图片视图 135
3.6.5 在详情页面中调用蔬菜图片视图 137
3.6.6 创建链接视图 139
3.6.7 创建蔬菜分类视图 141
3.6.8 Disclosure Group的使用 141
3.7 创建App的设置页面 144
3.7.1 创建SettingsView 145
3.7.2 为设置视图添加关闭功能 146
3.7.3 为列表视图添加开启设置页面功能 147
3.7.4 完善设置页面的部分功能 148
3.7.5 实现设置页面的第三部分功能 150
3.7.6 实现设置页面的第二部分功能 154
第4章 名胜古迹App 158
4.1 使用Xcode创建名胜古迹项目 158
4.1.1 添加图片和视频素材 159
4.1.2 添加JSON格式的数据文件 161
4.1.3 设置程序的启动画面 162
4.1.4 创建TabView 163
4.2 解析JSON格式文件并获取相应数据 165
4.2.1 横幅封面视图 165
4.2.2 JSON相关知识 166
4.2.3 解析JSON数据 168
4.2.4 使用JSON数据生成封面图片 170
4.3 利用Swift范式创建SwiftUI列表 172
4.3.1 设计浏览页面列表视图的行布局 172
4.3.2 创建数据模型 174
4.3.3 Swift的范式 174
4.3.4 实现动态数据行信息的设置 175
4.4 创建名胜古迹的详细视图 177
4.4.1 初步创建详细视图 178
4.4.2 设计横幅图片、标题和提要 180
4.4.3 创建可复用的Heading视图 181
4.4.4 创建画册视图 183
4.4.5 使用NavigationLink创建链接 185
4.4.6 创建相关信息视图 186
4.4.7 创建地图视图 188
4.4.8 创建链接组件 192
4.5 创建视频播放视图 194
4.5.1 创建数据模型和行视图 194
4.5.2 生成列表视图 197
4.5.3 触控反馈 200
4.5.4 创建视频播放页面 201
4.5.5 视频播放页面的附加设置 204
4.5.6 为视频浏览页面添加链接 206
4.6 创建带有标注的复杂地图 207
4.6.1 创建数据模型 207
4.6.2 创建复杂地图 207
4.6.3 自定义标注 210
4.6.4 为视图添加细节素材 213
4.7 创建运动动画 216
4.8 创建照片视图 222
4.8.1 创建基本的网格视图 222
4.8.2 实现照片视图的基本功能 225
4.8.3 实现照片视图的滑动条功能 226
4.8.4 对网格视图的改进 228
4.9 创建复杂的网格视图布局 229
4.9.1 工具栏的设置 230
4.9.2 利用Group实现模式切换 231
4.9.3 实现网格视图的基本功能 233
4.9.4 实现网格视图的列数动态变换效果 235
4.10 创建iMessage扩展功能 238
4.11 将应用程序适配到iPadOS和macOS平台 241
4.11.1 创建App的关于面板 241
4.11.2 自定义修饰器 242
4.11.3 将项目迁移到macOS平台 244
第5章 爱上写字 247
5.1 使用Xcode创建项目 247
5.1.1 为项目添加程序图标和相关图片素材 248
5.1.2 为项目添加启动画面 249
5.1.3 整理项目文件架构 250
5.1.4 创建FooterView 251
5.1.5 快速输入自定义代码块 253
5.2 创建自定义导航栏 254
5.2.1 创建导航栏视图 255
5.2.2 设计导航栏中的Logo视图 256
5.2.3 为主场景视图添加导航栏 257
5.3 创建图像滑动视图 260
5.3.1 创建数据模型 260
5.3.2 创建JSON解析方法 261
5.3.3 创建用于滑动的图像视图 261
5.3.4 将图像滑动视图添加到主场景视图 263
5.4 为文具分类创建网格布局视图 264
5.4.1 创建文具分类数据模型 264
5.4.2 创建文具分类子视图 265
5.4.3 创建文具分类网格视图 267
5.4.4 为网格视图创建Header和Footer视图 268
5.5 为商品创建网格布局视图 270
5.5.1 创建可复用的标题组件 270
5.5.2 创建商品的数据模型 272
5.5.3 创建商品子视图 272
5.5.4 创建商品网格视图 274
5.6 创建品牌网格布局视图 275
5.6.1 创建品牌的数据模型 275
5.6.2 创建品牌子视图 276
5.6.3 创建品牌网格视图 277
5.7 创建商品详细页面视图 278
5.7.1 创建产品详细页面视图 278
5.7.2 创建详细页面导航栏 279
5.7.3 创建Header视图 280
5.7.4 创建详细页面的上半部分视图 281
5.7.5 创建详细页面的商品描述视图 283
5.7.6 创建自定义形状 284
5.7.7 创建评星和笔尖规格视图 287
5.7.8 创建数量和“设为爱”视图 290
5.7.9 创建添加到购物车视图 291
5.8 完成后的设置 293
5.8.1 创建Shop类 293
5.8.2 在ContentView类中添加Shop实例 294
5.8.3 实现返回按钮的功能 295
5.8.4 完善详细页面视图功能 297
5.8.5 添加触控反馈特性 299
第6章 奇妙水果机 302
6.1 使用Xcode创建项目 302
6.1.1 为项目添加程序图标和相关图片素材 303
6.1.2 为项目添加启动画面 304
6.2 创建Header视图 305
6.2.1 创建场景页面代码架构 305
6.2.2 单独创建Logo视图 307
6.2.3 添加重置和相关信息按钮 308
6.2.4 创建记分牌视图 310
6.3 创建游戏主界面 314
6.3.1 设计水果机的槽位视图 314
6.3.2 搭建游戏主界面视图 316
6.4 添加Footer视图 318
6.4.1 创建Footer界面 318
6.4.2 重构Footer视图的代码 320
6.5 创建游戏信息视图页面 323
6.5.1 创建信息视图 323
6.5.2 实现关闭信息页面功能 327
6.6 编写游戏逻辑代码 329
6.6.1 实现随机生成槽位水果的逻辑 329
6.6.2 实现判断输赢的逻辑 331
6.6.3 实现玩家选择游戏分值的功能 333
6.6.4 创建游戏结束时的自定义窗口 335
6.7 利用User Defaults存储和获取数据 341
6.8 为游戏添加动画效果 342
6.9 为游戏添加声效和背景音乐 346
第7章 TODO应用程序 350
7.1 使用Xcode创建项目 350
7.1.1 创建Todo项目 350
7.1.2 创建添加待办事项视图页面 353
7.2 了解Core Data特性 357
7.2.1 Core Data简介 357
7.2.2 为项目创建实例 358
7.2.3 Core Date的工作方式 359
7.2.4 为页面添加managedObjectContext 361
7.2.5 改善AddTodoView的用户体验 364
7.2.6 显示待办事项数据信息 365
7.2.7 删除和更新数据记录 367
7.3 显示随机视图 369
7.3.1 创建EmptyListView页面 369
7.3.2 为视图添加微动画 373
7.3.3 显示随机内容 374
7.4 改进表单的外观 375
7.4.1 改进AddTodoView的外观 375
坦白地说,在苹果公司 2017 年和 2018 年的全球开发者大会(WWDC)上,我并没有看到任何惊喜,每次的 WWDC 似乎只是对前一个版本的 Swift 语言进行程式化的升级。但是在 2019年的 WWDC 上,苹果公司发布了基于 Swift 语言建立的声明式框架——SwiftUI,它可以用于iOS、iPadOS、watchOS、tvOS 和 macOS 等苹果公司旗下所有主流平台的应用程序开发。毫无疑问,对于具有 iOS 开发经验或学习 iOS 应用程序开发的人来说,SwiftUI 是近年来 iOS 应用程序开发中为重大的改变。我从事 iOS 程序开发和相关的教学工作已有十多年的时间,已经习惯使用 UIKit 框架搭建用户界面。通过混合使用故事板(Storyboard)和 Swift 代码来构建用户界面,曾经是非常流行和普遍的布局方式。但是,无论你是喜欢使用 Interface Builder 在故事板中以可视化的方式创建用户界面,还是喜欢完全使用 Swift 代码创建用户界面,它们终都会依赖 UIKit 框架实现。可能你会有这样一个疑虑:我为什么非要使用 SwiftUI 框架而抛弃之前的 UIKit 框架来搭建用户界面呢?原因有以下三点。
1.新技术必须掌握
SwiftUI 是苹果公司于 2019 年推出的界面布局框架,目的就是取代之前的 UIKit 框架,从而实现更高效的界面搭建,以适应现在及将来可能推出的更多规格和型号的苹果产品。诚然,SwiftUI 目前依然有很多不足之处,如果你是使用 UIKit 框架的高手,那么利用SwiftUI 搭建界面的确需要花费更多的学习成本。但这就和从 Objective-C 过渡到 Swift 一样,需要一个过程,一旦走过去,你就会发现前方的路“异常平坦”,且“风景如画”。
- 新的框架带来新的设计思路
SwiftUI 类似于 MVVM 架构,它比之前应用程序开发的 MVC 架构更先进,更便于代码的SwiftUI 自学成长笔记 IV 维护,设计思路更清晰。
3.执行效率高,更新迭代快
其实,在 iOS 开发的过程中,耗费时间的并不是代码逻辑,而是对用户界面的处理。SwiftUI 框架可以给你更快速的迭代和测试体验,帮你更快捷地实现你想要的功能。对于我来说,SwiftUI 不仅是一个全新的框架,而且从根本上改变了在 iOS 或其他苹果系统平台上创建用户界面的方法。苹果系统不再使用命令式的编程风格,而是提倡使用声明式、函数式的编程风格;不是确切指定用户界面控件的布局和功能,而是专注于描述在构建用户界面时需要哪些控件,以及通过声明式编程指明需要执行哪些操作。2020 年,苹果公司将更多的功能和用户界面控件添加到了 Xcode 12 的 SwiftUI 框架中,并将设计提升到了一个更高的水准。与之前的 UIKit 相比,我们可以使用更少的代码来开发精美的动画效果。利用 SwiftUI 设计用户界面并不是要求你马上放弃使用 Interface Builder 和 UIKit 框架,但是,SwiftUI 代表了苹果系统各个平台上应用程序开发的未来。为了能够始终站在技术创新的前沿,推荐你从现在开始使用这种新的界面开发方式。
希望本书能够帮助你使用 SwiftUI 框架开发并构建一些令人惊叹的应用程序。
本书共 8 章。第 1 章带领读者制作一个简单的卡片应用程序,了解利用 SwiftUI 实现界面布局的基础知识。第 2 章利用结合北京的地域特色,使用 Tab View 和滚动视图制作一个介绍北京美食和胡同的应用程序。第 3 章制作的“蔬菜百科全书”应用程序涉及导航视图、自定义按钮外观和使用微动画效果提升用户体验。第 4 章将带领读者制作一个介绍中国十大名胜古迹的应用程序,其中会使用到 MapKit 框架呈现地图。第 5 章通过购物应用程序“爱上写字”介绍如何在程序中利用网格视图进行布局并创建自定义形状。第 6 章带领读者制作“奇妙水果机”游戏程序,了解游戏设计的基本原理,并使用 User Defaults 将游戏数据存储到本地。第 7 章会制作一款 Todo 类应用程序,介绍如何使用 Core Data 将数据存储到数据库之中,并由用户自定义应用程序的主题颜色。第 8 章通过制作卡片选择应用程序,让读者了解如何在 SwiftUI 中实现滑动手势。
致谢
感谢伟大到可以改变这个世界的史蒂夫·乔布斯,他的精神对我产生了非常大的影响。感谢刘颖、刘怀羽、张燕,以及我身边的同事们,感谢你们对我的支持与帮助,并时时刻刻给我信心和力量。
谨以此书献给我亲爱的家人,以及众多热爱 iOS 开发的朋友们!
刘铭
2021 年 7 月
评论
还没有评论。