热门关键字:  听力密码  听力密码  新概念美语  单词密码  巧用听写练听力

SwiftUI完全开发

中国水利水电出版社
    【作 者】李智威 著 【I S B N 】978-7-5226-1822-7 【责任编辑】王开云 【适用读者群】科技 【出版时间】2023-11-22 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】568 【千字数】857 【印 张】35.5 【定 价】118 【丛 书】暂无分类 【备注信息】
图书详情

    内 容 提 要

    SwiftUI是苹果公司推出的跨平台开源UI框架,同时支持iOS、macOS、watchOS、tvOS等多平台应用开发,使用这一框架可以使用很少的代码实现复杂的交互和功能,极大地提高了开发效率。

    本书共29章,由浅到深系统性讲解了SwiftUI的背景、Swift语言的语法基础、SwiftUI基础组件、交互操作、数据存储、网络请求、硬件设备、付费模式、应用上架等内容,并在每个章节中结合生动有趣的案例进行讲解,提高书籍的趣味性。

    通过对本书的学习,读者将会对SwiftUI框架及多平台开发有全面的认识,并能够使用SwiftUI进行独立开发。本书适合正在学习Swift+SwiftUI以及对SwiftUI感兴趣的开发人员阅读和参考。

    可能你无法想象,这本书是一名产品经理写的。

    创作缘由

    四年前,由于机缘巧合,我开始接触和了解iOS编程。由于当时公司缺少iOS开发工程师,在我的自告奋勇下,技术总监同意了我在产品本职工作之余,协助开发公司iOS版本应用的一些基本功能的请求。

    虽然那时的我,除了大学时期学习过C#、C++编程语言,毕业后从事的工作中没有使用过任何一种编程语言,但我很乐观,向技术总监“讨要”了一本编程书籍,便开始了蒙头摸索之路。

    当时公司使用的是Swift+UIKit的编程方式,各种协议和样式约束让我头疼不已,每次实现一个小功能或者小页面,都几乎需要花费我一整晚的时间。后面慢慢熟悉其语法特征后,我能实现一些基本的功能了,也能和其他研发同事就某些技术问题深入讨论,这算是意想不到的收获。

    说实话,从安装官方的开发工具写下第一行HelloWorld,到在模拟器中运行测试第一个待发版的App,我既懵懂又兴奋。项目在模拟器“跑”起来的那一刻,我感觉自己突破了产品经理的极限,成为了一名“懂技术”的产品经理。

    之后由于对iOS编程的浓厚兴趣,我开始接触Swift+SwiftUI的编程方式。

    SwiftUI是苹果公司在2019年度WWDC全球开发者大会上发布的全新框架,在国内还较少有企业用于自家商用产品的开发,而且在国内能找到的相关开发书籍特别少,因而我在学习过程中花费了很长一段时间,也为此“掉了不少头发”。

    为了后续方便学习和回顾,我开始在掘金技术社区发表专栏文章,用来记录SwiftUI的学习过程。在经历了大半年在平台上更新了5个专栏约150篇文章后,我有幸和掘金技术社区签约成为签约作者。后来有幸收到了中国水利水电出版社编辑的邀请,便萌生了写作出版的想法。

    这便是本书的由来。

    想法和尝试

    在准备写这本书之前,我一直在想如何才能让这本书生动而有趣。

    虽然这本书的目标读者更多的是iOS开发工程师,或是计算机专业毕业的学生,或是想要学习iOS编程的其他从业者,但我希望这本书能够适用于所有人,而不仅是程序员。

    人人都应该学会编程,人人都可以通过编程学会如何独立思考,如何分析问题和解决问题。

    我不希望这是一本枯燥的书籍,也不希望读者跟着书本的内容学到了最后,还是没有办法独立开发一款理想中的App。

    当初还在学习之初的我,找了很多国内外免费或付费的书籍和教程,跟着项目案例一行一行敲代码,到最后也只是实现了案例里的内容,却无法开发出一个完整的App。

    这对于一个想要通过努力实现理想和抱负的人是一种很大的打击。

    我理想中的书籍是,当我们一步步跟着书本学习,最后能开发出一款可以上架App Store的App;当我们编程遇到问题了,可以很快在书本对应的段落找到解决方案;当我们学习完最后一章或学到中途,就可以开发出自己想要的App,而不是仅能完成书本中的案例……当然,书本中的知识点应该是最新的。

    因此,本书既会包含基础知识,也会包含一些实战案例,我们会实现一个个很小很小的精美页面,并通过对编程中复杂概念的解析,讲述如何使用SwiftUI这一响应式UI框架搭建心中的“理想国”。

    勘误和反馈

    由于是第一次写书,编写能力略显稚嫩,书中难免会有一些错误或者不清晰的地方,在请读者见谅的同时,也欢迎给予指正和反馈。书中的所有案例都可以从GitHub(https://github.com/ RicardoWesleyli/SwiftUI.git)中下载,如果你有任何宝贵的想法和建议,也可以直接发送邮件至16620164429@163.com,期待与你的相遇。

    致谢

    感谢一直支持着我的江佩琦小姐,你的李智威先生已经写完这本书啦!

    感谢中国水利水电出版社万水分社的编辑王新宇老师,在我写作过程中给予的鼓励和帮助,让我能顺利完成全部书稿。

    最后感谢我的父母、琦琦的父母,还有我那准备步入职场的妹妹,以及在我人生道路上指引我的张勇老师、叶泳成老师、许治老师,感谢你们对我的支持和帮助,为我照亮未来的路。

    谨以此书献给我最亲爱的家人,以及众多热爱iOS的朋友们!

    李智威

    2023年7月于深圳



    第1章 开启全新体验,你的第一个SwiftUI项目 1
    1.1 初识Swift和SwiftUI 1
    1.2 Xcode,你的官方开发工具 1
    1.3 快来创建第一个SwiftUI项目 3
    1.4 简单了解下Xcode的操作和项目结构 5
    1.5 预览你的第一个项目 8
    1.6 简单分析视图文件代码 11
    1.7 本章小结 12
    第2章 文字的魅力,Text文字的使用 13
    2.1 创建一个新的视图文件 13
    2.2 使用修饰符格式化文字 15
    2.3 更多修饰符和使用场景 17
    2.4 在项目中使用自定义字体 19
    2.5 多个文字控件的组合使用 24
    2.6 本章小结 26
    第3章 视觉传达,Image图片的使用 27
    3.1 展示一张本地图片 27
    3.2 使用修饰符格式化图片 31
    3.3 更多修饰符和使用场景 34
    3.4 在项目中使用SF Symbols图标库 37
    3.5 从互联网上获得一张图片 41
    3.6 本章小结 43
    第4章 图文排版,Stack布局容器的使用 44
    4.1 实战案例:启动页 44
    4.2 实战案例:缺省页 50
    4.3 实战案例:状态显示页 52
    4.4 小知识:如何收起代码块 56
    4.5 本章小结 57
    第5章 Swift语法初探,磨刀不误砍柴工 59
    5.1 常量和变量 59
    5.2 Swift中的数据类型 63
    5.3 运算符及使用场景 66
    5.3.1 常用的运算符 66
    5.3.2 赋值运算符和算术运算符 66
    5.3.3 三元运算符 67
    5.3.4 比较运算符和逻辑运算符 69
    5.3.5 空合运算符 70
    5.4 本章小结 71
    第6章 点击交互,Button按钮的使用 73
    6.1 创建一个简单的按钮 73
    6.2 创建一个渐变色的按钮 76
    6.3 万物皆可变成按钮 77
    6.4 小知识:参数值类型转换 80
    6.5 使用onTapGesture修饰符 81
    6.6 小知识:如何批量重命名参数名称 82
    6.7 本章小结 84
    第7章 文本输入,TextField文本框的使用 85
    7.1 声明文本框参数 85
    7.2 创建一个简单的文本框 86
    7.3 使用修饰符格式化文本框 88
    7.4 实战案例:登录页面 90
    7.5 实战案例:搜索框 93
    7.6 小知识:实现隐藏键盘 94
    7.7 TextEditor多行文本框的使用 96
    7.8 本章小结 99
    第8章 数据呈现,List列表的使用 101
    8.1 创建一个简单的列表 101
    8.2 遍历数组中的数据 103
    8.3 定义Model数据模型 104
    8.4 使用数据模型展示数据 107
    8.5 拖动排序和滑动删除 110
    8.6 使用修饰符格式化List列表样式 115
    8.7 本章小结 118
    第9章 页面顶部,NavigationView导航视图的使用 119
    9.1 导航标题和导航按钮 119
    9.2 实战案例:设置页面 126
    9.3 基于顶部导航的页面跳转 129
    9.4 自定义返回按钮 133
    9.5 实现侧滑返回 137
    9.6 本章小结 138
    第10章 页面底部,TabView选项卡视图的使用 139
    10.1 创建一个简单的底部导航 140
    10.2 使用修饰符格式化底部导航 144
    10.3 实战案例:引导页 146
    10.4 实战案例:轮播图 153
    10.5 本章小结 156
    第11章 基础表单,Form表单的使用 157
    11.1 创建一个简单的表单视图 158
    11.2 在Form表单中使用Toggle开关 160
    11.3 在Form表单中使用Picker选择器 163
    11.4 Stepper步进器和Slider滑块选择器 166
    11.5 实战案例:RGB色卡 168
    11.6 ColorPicker颜色选择器的使用 172
    11.7 本章小结 175
    第12章 提示弹窗,那些弹出的信息 177
    12.1 实战案例:内容列表 177
    12.2 Sheet模态弹窗 182
    12.3 FullScreenCover全屏弹窗 188
    12.4 ActionSheet选项弹窗 189
    12.5 Alert警告弹窗 192
    12.6 ContextMeun点按弹窗 195
    12.7 本章小结 198
    第13章 屏幕延伸,ScrollView滚动布局容器的使用 199
    13.1 创建一个简单的滚动页面 200
    13.2 实战案例:电商首页之轮播图 206
    13.3 实战案例:电商首页之快捷按钮组 208
    13.4 实战案例:电商首页之商品推荐列表 210
    13.5 DisclosureGroup拓展折叠视图 214
    13.6 本章小结 219
    第14章 点击、长按、拖拽、缩放、旋转 220
    14.1 快速了解手势修饰符 220
    14.2 TapGesture点击手势 221
    14.3 LongPressGesture长按手势 225
    14.4 DragGesture拖拽手势 230
    14.5 MagnificationGesture缩放手势 234
    14.6 RotationGesture旋转手势 238
    14.7 组合手势的运用 240
    14.8 本章小结 244
    第15章 自定义颜色,打造你的独特风格 245
    15.1 前景色 245
    15.2 背景色 249
    15.3 边框色 252
    15.4 渐变色 254
    15.5 十六进制颜色 259
    15.6 本章小结 262
    第16章 数据流动,页面之间的数据交互 263
    16.1 @State状态的使用 263
    16.2 @Binding绑定的使用 266
    16.3 @Environment环境的使用 271
    16.4 @AppStorage数据持久化的使用 276
    16.5 本章小结 278
    第17章 网络请求,URLSession框架的使用 280
    17.1 实战案例:色卡列表 280
    17.2 初识JSON数据格式 285
    17.3 URLSession框架的使用 291
    17.4 MVVM架构模式的使用 293
    17.5 小知识:如何实现随机展示数据 296
    17.6 本章小结 297
    第18章 数据持久化,FileManager框架的使用 298
    18.1 实战案例:笔记应用样式 298
    18.2 @AppStorage应用存储包装器 309
    18.3 FileManager本地文件存储框架 313
    18.3.1 准备数据模型 313
    18.3.2 获得沙盒地址及文件地址 313
    18.3.3 读取本地文件 314
    18.3.4 存储数据到本地文件 315
    18.3.5 新增、编辑、删除方法 316
    18.3.6 获得当前日期方法 317
    18.4 实战案例:新增笔记操作 318
    18.5 实战案例:编辑笔记操作 322
    18.6 实战案例:删除笔记操作 325
    18.7 本章小结 326
    第19章 图形绘制,Path路径和Shape形状的使用 328
    19.1 SwiftUI中的基础形状 328
    19.1.1 Circle圆形 328
    19.1.2 Ellipse椭圆形 331
    19.1.3 Rectangle矩形 333
    19.1.4 RoundedRectangle圆角矩形 335
    19.1.5 Capsule胶囊矩形 336
    19.2 使用Path路径绘制图形 338
    19.2.1 addLine绘制直线 338
    19.2.2 addQuadCurve绘制贝塞尔曲线 339
    19.2.3 addCurve绘制二次贝塞尔曲线 340
    19.2.4 addArc绘制圆弧 341
    19.3 使用Shape自定义形状 344
    19.4 实战案例:倒计时圆环 345
    19.5 本章小结 350
    第20章 设备功能初探,拍摄、上传、保存、分享 351
    20.1 从相册中选择图片 351
    20.1.1 创建ImagePicker方法 351
    20.1.2 使用ImagePicker方法 356
    20.2 使用相机拍摄图片 360
    20.2.1 设置选择器sourceType 360
    20.2.2 在真机上预览效果 362
    20.3 保存图片至本地相册 362
    20.3.1 View转换为UIImage 363
    20.3.2 展示UIImage模型对象 364
    20.3.3 保存UIImage模型对象 366
    20.4 分享图片到其他平台 369
    20.4.1 创建ShareSheet方法 369
    20.4.2 使用ShareSheet方法 370
    20.5 本章小结 372
    第21章 FaceID,LocalAuthentication身份认证框架的使用 373
    21.1 创建一个配置开关 373
    21.2 创建一个解锁页面 375
    21.3 实现身份认证方法 376
    21.4 在Info.plist中配置权限 378
    21.5 实现登录身份认证交互 379
    21.6 逻辑优化 382
    21.7 本章小结 385
    第22章 播放声音和视频,增强你的感官体验 386
    22.1 实战案例:电子木鱼 386
    22.2 实现播放声音方法 390
    22.3 实战案例:文字转语音 393
    22.4 创建一个帮助教程页面 397
    22.5 实现播放视频方法 400
    22.6 本章小结 403
    第23章 新历和农历,使用DateFormatter格式化日期 404
    23.1 实战案例:数字时钟 404
    23.2 格式化日期 408
    23.3 如何使用中国历法 413
    23.4 本章小结 417
    第24章 自定义样式,ViewModifier协议的使用 418
    24.1 创建自定义视图 418
    24.2 自定义视图修饰器 421
    24.3 实战案例:注册页面 425
    24.4 实战案例:自定义Toast弹窗 429
    24.5 知识拓展:修改Toggle控件样式 434
    24.6 本章小结 437
    第25章 让应用“动”起来,加入Animation动画魔法 438
    25.1 为视图添加隐性动画 438
    25.2 在组合视图中使用隐性动画 441
    25.3 为视图添加显性动画 444
    25.4 实战案例:计时器按钮组 445
    25.5 实战案例:Loading加载动画 450
    25.6 实战案例:3D旋转动画 452
    25.7 本章小结 454
    第26章 CoreData和CloudKit,帮你更好地管理数据 455
    26.1 初探CoreData框架 455
    26.2 实战案例:ToDo应用 459
    26.2.1 创建ToDoModel数据模型 460
    26.2.2 创建ToDoListRow视图 461
    26.2.3 实现toggleToDoItemCompleted方法 463
    26.2.4 创建InputTextField视图 464
    26.2.5 实现addToDoItem方法 465
    26.2.6 实现deleteTodoItem方法 467
    26.3 创建实体模型 468
    26.4 创建Persistence单例 472
    26.5 实现CoreData本地数据存储 473
    26.5.1 在项目中使用CoreData容器 473
    26.5.2 修改addToDoItem方法 477
    26.5.3 修改deleteToDoItem方法 478
    26.5.4 修改toggleToDoItemCompleted方法 480
    26.6 实现iCloud云端数据存储 482
    26.6.1 添加iCloud数据库容器 482
    26.6.2 添加Background Modes能力 484
    26.6.3 设置CloudKit云存储开发 486
    26.7 本章小结 487
    第27章 轻量互动,Widget桌面小组件的使用 488
    27.1 创建Widget小组件项目 489
    27.2 小组件项目文件详解 491
    27.2.1 MyWidgetBundle文件 491
    27.2.2 MyWidgetLiveActivity文件 492
    27.2.3 MyWidget文件 492
    27.2.4 MyWidget.intentdefinition文件 498
    27.2.5 Assets.xcassets文件 499
    27.3 实战案例:跳转微信扫一扫 500
    27.4 实战案例:每日一句 503
    27.4.1 完成OneWord项目 503
    27.4.2 使用App Group实现数据共享 507
    27.4.3 完成OneWordWidget项目 509
    27.5 本章小结 515
    第28章 赚取第一桶金,在应用中添加内购和订阅 516
    28.1 了解应用付费机制 516
    28.1.1 付费购买 517
    28.1.2 应用内购 517
    28.1.3 应用订阅 518
    28.1.4 广告 519
    28.2 实战案例:内购页面 519
    28.3 在项目中集成内购功能 526
    28.3.1 创建内购测试文件 526
    28.3.2 创建StoreKit框架引用文件 529
    28.3.3 实现应用内购功能 534
    28.3.4 实现恢复购买功能 539
    28.4 本章小结 540
    第29章 应用上架,发布你的第一款App 541
    29.1 AppIcon应用图标 541
    29.2 商店预览图 544
    29.3 技术支持网址URL 545
    29.4 隐私政策网址URL 547
    29.5 协议、税务和银行业务设置 549
    29.6 正式提交上架 550
    29.7 本章小结 558





最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册