新書推薦:
《
无端欢喜
》
售價:NT$
347.0
《
股票大作手操盘术
》
售價:NT$
245.0
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:NT$
398.0
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:NT$
203.0
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:NT$
611.0
《
养育女孩 : 官方升级版
》
售價:NT$
230.0
《
跨界:蒂利希思想研究
》
售價:NT$
500.0
《
千万别喝南瓜汤(遵守规则绘本)
》
售價:NT$
203.0
|
編輯推薦: |
《Flutter2开发实例精解》内容涵盖了100多个短小精悍的实例,以帮助读者学习Flutter,这些实例包含Flutter为重要的特性,进而开发真实的应用程序。在每个实例中,介绍并使用一些有用的工具,包括微件、状态管理、异步编程、连接Web服务、数据持久化、动画生成、Firebase应用、机器学习,以及工作于不同平台(包括桌面平台和Web平台)的响应式应用程序。
|
內容簡介: |
《Flutter2开发实例精解》详细阐述了与Flutter 2相关的基本解决方案,主要包括Dart编程语言、微件简介、布局和微件树、向应用程序中添加交互性和导航、基本的状态管理、异步编程、基于互联网的数据持久化和通信、基于流的高级状态管理、使用Flutter包、向应用程序中添加动画、使用Firebase、基于Firebase ML Kit的机器学习、发布移动应用程序、Flutter Web和桌面应用程序等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
|
目錄:
|
第1章 开启Flutter之旅 1
1.1 技术需求 2
1.2 如何使用Git管理Flutter SDK 2
1.3 设置命令行并保存路径变量 3
1.4 使用Flutter Doctor检查配置环境 6
1.5 配置iOS SDK 7
1.6 配置Android SDK 11
1.7 选择IDE/编辑器 16
1.8 选择正确的通道 19
1.9 创建Flutter应用程序 20
1.10 本章小结 28
第2章 Dart编程语言 29
2.1 技术需求 29
2.2 声明变量—var、final和const 30
2.3 字符串和字符串插值 35
2.4 编写函数 40
2.5 利用闭包将函数用作变量 44
2.6 创建类并使用类构造函数的简洁形式 46
2.7 利用集合分组和操控数据 49
2.8 利用高阶函数编写较少的代码 54
2.9 使用级联运算符(..)实现构建器模式 62
2.10 Dart语言中的空安全 65
第3章 微件简介 73
3.1 技术需求 73
3.2 创建不可变的微件 73
3.3 使用Scaffold 79
3.4 使用Container微件 85
3.5 在屏幕上输出样式文本 90
3.6 向应用程序中导入字体和图像 96
第4章 布局和微件树 101
4.1 逐个放置微件 101
4.2 基于Flexible和Expanded微件的成比例间距 108
4.3 利用CustomPaint绘制形状 116
4.4 嵌套的复杂微件树 122
4.5 重构微件树以改进可读性 127
4.6 应用全局主题 133
第5章 向应用程序中添加交互性和导航 141
5.1 向应用程序中添加状态 141
5.2 与按钮交互 147
5.3 生成滚动效果 151
5.4 利用列表构造器处理大型数据集 157
5.5 处理TextField 160
5.6 导航至下一个屏幕 166
5.7 通过名称调用导航路由 168
5.8 在屏幕上显示对话框 171
5.9 显示底部动作条 176
第6章 基本的状态管理 181
6.1 技术需求 181
6.2 模型-视图分离 181
6.3 利用InheritedWidget管理数据层 188
6.4 在多个屏幕间使得应用程序状态可见 192
6.5 设计n层框架(第1部分)—控制器 196
6.6 设计n层框架(第2部分)—存储库 202
6.7 设计n层框架(第3部分)—服务 205
第7章 异步编程 213
7.1 技术需求 213
7.2 使用Future 214
7.3 使用async/await移除回调 220
7.4 完成Future 223
7.5 同时引发多个Future 226
7.6 处理异步代码中的错误 228
7.7 基于StatefulWidget的Future应用 231
7.8 使用FutureBuilder管理Future 234
7.9 将导航路由转换为异步函数 236
7.10 从对话框中获取结果 240
第8章 基于互联网的数据持久化和通信 245
8.1 技术需求 245
8.2 将Dart模型转换为JSON格式 246
8.3 处理与模型不兼容的JSON模式 256
8.4 捕捉常见的JSON错误 262
8.5 简单地利用SharedPreferences保存数据 264
8.6 访问文件系统(第1部分)—path_provider 269
8.7 访问文件系统(第2部分)—与目录协同工作 272
8.8 使用安全存储保存数据 276
8.9 设计HTTP客户端并获取数据 279
8.10 POST数据 285
8.11 PUT数据 292
8.12 DELETE数据 295
第9章 基于流的高级状态管理 299
9.1 技术需求 299
9.2 如何使用Dart流 300
9.3 使用流控制器和接收器 305
9.4 将数据转换注入流中 310
9.5 订阅流事件 313
9.6 支持多重流订阅 317
9.7 使用StreamBuilder创建响应式用户界面 320
9.8 使用BLoC模式 324
第10章 使用Flutter包 331
10.1 技术需求 332
10.2 导入包和依赖项 332
10.3 创建自己的包(第1部分) 335
10.4 创建自己的包(第2部分) 341
10.5 创建自己的包(第3部分) 343
10.6 向谷歌地图中添加应用程序 346
10.7 使用位置服务 351
10.8 向应用程序中添加标记 354
第11章 向应用程序中添加动画 359
11.1 创建基本的容器动画 359
11.2 设计动画(第1部分)—VSync和AnimationController 364
11.3 设计动画(第2部分)—添加多重动画 369
11.4 设计自己的动画(第3部分)—曲线 371
11.5 优化动画 374
11.6 使用Hero动画 376
11.7 使用预置动画转变 381
11.8 使用AnimatedList微件 385
11.9 利用Dismissible微件实现滑动手势 391
11.10 使用Flutter动画包 394
第12章 使用Firebase 399
12.1 配置Firebase应用程序 399
12.2 创建登录表单 404
12.3 添加谷歌Sign-in 413
12.4 集成Firebase Analytics 419
12.5 使用Firebase Cloud Firestore 424
12.6 利用Firebase Cloud Messaging(FCM)发送Push Notifications 430
12.7 将文件存储至云端 434
第13章 基于Firebase ML Kit的机器学习 441
13.1 使用设备的摄像头 441
13.2 从图像中识别文本 450
13.3 读取条形码 454
13.4 图像标记功能 456
13.5 构建面部检测器并检测面部表情 459
13.6 识别语言 463
13.7 使用TensorFlow Lite 467
第14章 发布移动应用程序 473
14.1 技术需求 474
14.2 在App Store Connect上注册iOS应用程序 474
14.3 在Google Play上注册Android应用程序 478
14.4 安装和配置fastlane 480
14.5 生成iOS代码签名许可证书和配置文件 484
14.6 生成Android发布许可证书 486
14.7 自动递增Android版本号 488
14.8 配置应用程序元数据 491
14.9 向应用程序中添加图标 493
14.10 在Google Play Store中发布应用程序的beta版本 495
14.11 使用TestFlight发布iOS应用程序的beta版本 498
14.12 将应用程序发布至应用程序商店中 501
第15章 Flutter Web和桌面应用程序 503
15.1 利用Flutter Web创建响应式应用程序 503
15.2 在macOS上运行应用程序 512
15.3 在Windows上运行应用程序 515
15.4 部署Flutter站点 517
15.5 响应Flutter桌面中的鼠标事件 520
15.6 与桌面菜单交互 524
|
內容試閱:
|
本书内容涵盖了100多个短小精悍的实例,以帮助读者学习Flutter,这些实例包含Flutter为重要的特性,进而开发真实的应用程序。在每个实例中,介绍并使用一些有用的工具,包括微件、状态管理、异步编程、连接Web服务、数据持久化、动画生成、Firebase应用、机器学习,以及工作于不同平台(包括桌面平台和Web平台)的响应式应用程序。
Flutter是谷歌发布的开发人员友好的开源工具集,我们可在Android和iOS设备上构建应用程序。在编写本书时,谷歌已经发布了Flutter 2.2。此外,我们还可针对Web和桌面平台使用相同的代码库。
本书包含15章且每章涵盖了独立的内容,分别强调和使用Flutter的各种特性。另外,读者也可略过所熟悉的章节。
Flutter采用Dart作为编程语言,第2章介绍Dart语言、语法、模式,以使读者了解Flutter中的Dart基础知识。
后续章节介绍一些高级案例,并通过代码获取Flutter工具的实际操作经验。
适用读者
本书希望读者具备面向对象编程语言背景,包括变量、函数、类和对象等概念。
本书不要求读者拥有Dart语言方面的知识,第2章会对此加以介绍。
如果读者了解和使用过Java、C#、Swift、Kotlin和JavaScript语言,那么就会发现Dart学习起来十分容易。
本书内容
第1章主要讨论如何试着开发环境。
第2章介绍Dart语言、语法和模式。
第3章利用Flutter构建简单的用户界面。
第4章展示如何构建由多个微件构成的复杂屏幕。
第5章通过多个实例向应用程序中添加交互行为,包括与按钮交互、从TextField中读取文本、修改屏幕和显示警告信息。
第6章介绍Flutter中的状态,除了显示微件的屏幕,本章还介绍如何构建保存和管理数据的屏幕。
第7章包含多个实例,其中一个有用的特性是任务的异步执行。
第8章通过相关工具连接Web服务并将数据持久化至机器中。
第9章讨论如何处理流。流可认为是创建响应式应用程序的工具。
第10章考查如何选择、使用、构建和发布Flutter包。
第11章通过特定的工具在应用程序中实现动画效果。
第12章展示如何使用功能强大的后端且无须编写任何代码。
第13章讨论如何利用Firebase向应用程序中添加机器学习这一特性。
第14章探讨将应用程序发布至Google Play Store和Apple App Store所需的各项步骤。
第15章考查如何使用相同的代码库针对Web和桌面平台构建应用程序。
技术需求
在阅读本书时,建议读者至少拥有一种面向对象编程语言的经验。
在考查相关代码时,需要使用连接至Web的Windows PC、Mac、Linux或Chrome OS操作环境,且至少包含8GB RAM以及软件的安装权限。
由于存在可运行于机器上的仿真器/模拟器,因此Android或iOS并非必需。
第1章详细解释具体的安装步骤,其中包括如表P-1所示的内容。
表P-1
本书涉及的软件和硬件 操作系统需求
Visual Studio Code、Android Studio或IntelliJ Idea Windows、macOS或Linux
Flutter SDK Windows、macOS或Linux
模拟器/仿真器、iOS设备或Android设备 Windows、macOS或Linux(macOS仅用于iOS)
需要说明的是,当开发iOS应用程序时,读者需要配置一台Mac机器。
下载本书资源
读者可访问GitHub下载本书的代码文件,对应网址为https://github.com/PacktPublishing/ Flutter-Cookbook,且代码实现了同步更新。
此外,读者还可访问https://github.com/PacktPublishing/查看本书的代码包。
同时,我们还提供了本书屏幕截屏/图表的彩色图像的PDF文件,读者可访问https:// static.packt-cdn.com/downloads/9781838823382_ColorImages. pdf予以下载。
图标表示警告或重要的注意事项。
图标表示提示信息和操作技巧。
读者反馈和客户支持
欢迎读者对本书提出建议或意见并予以反馈。
对此,读者可向customercare@packtpub.com发送邮件,并以书名作为邮件标题。
勘误表
尽管我们希望将此书做到尽善尽美,但其中疏漏在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对此,读者可访问http://www.packtpub.com/ submit-errata,选取对应书籍,单击Errata Submission超链接,输入并提交相关问题的详细内容。
版权须知
一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现任意形式的本书副本,请告知我们网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至copyright@packtpub.com。
若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问authors.packtpub.com。
问题解答
若读者对本书有任何疑问,均可发送邮件至questions@packtpub.com,我们将竭诚为您服务。
|
|