书籍作者:亢少军 | ISBN:9787111640127 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:1094 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书由资深架构师撰写,详细讲解Flutter的基本概念和使用技巧。既有基础知识,又有丰富示例,并包括详细案例的操作步骤,实操性强。还有配套网站提供了完整案例代码和视频课程,可帮助读者轻松掌握基础知识,快速进入实战。本书主要内容共16章。第1~2章介绍Flutter的基本概念和重要知识点。第3章简单介绍了Flutter SDK指定的Dart语言。第4~7章介绍Flutter常用组件,以及Material Design风格的组件、Cupertino风格的组件,还介绍了页面布局基础知识和技巧。第8~12章介绍Flutter的高级用法,包括如何处理手势,如何加载、处理、展示资源和图片,路由及导航是如何处理的,装饰和动画的处理等。第13章介绍Flutter插件开发。第14~16章介绍开发工具的使用技巧、测试与发布应用,以及综合案例。
亢少军
资深开发者,创业者。专注于视频通讯技术领域。国内首本Flutter著作《Flutter技术入门与实战》作者。多年从事视频会议、远程教育等技术研发,对于Android、iOS以及跨平台开发技术有比较深入的研究和应用,作为主要程序员开发了多个应用项目,涉及医疗、交通、银行等领域。
本书在上一版的基础上,根据Flutter新版本对代码进行了全面更新,并增加了动画案例、插件理论和案例、Dio网络请求、Fluro企业级路由、Provider状态管理等内容,适合初学者全面掌握Flutter 。
现在,主流的移动开发平台是Android和iOS,每个平台上的开发技术不太一样,针对每个平台开发应用需要特定的人员,但这样一来开发效率会变得低下,因而需要进行跨平台开发。跨平台技术从最开始的Hybrid混合开发技术,到React Native的桥接技术,一直在演进。
Hybrid开发主要依赖于WebView,但WebView是一个重量级的控件,很容易产生内存问题,而且复杂的UI在WebView上显示的性能不好。React Native技术抛开了WebView,利用JavaScript Core来做桥接,将JavaScript调用转为Native调用。React Native最终会生成对应的自定义原生控件。这种策略将框架本身和App开发者捆绑在系统的控件上,不仅框架本身需要处理大量平台相关的逻辑,随着系统版本变化和API的变化,开发者可能也需要处理不同平台间的差异,甚至有些特性只能在部分平台上实现,这使得跨平台特性大打折扣。
Flutter是最新的跨平台开发技术,可以横跨Android、iOS、MacOS、Windows、Linux等多个系统,还可以打包成Web程序运行在浏览器上。Flutter采用了更为彻底的跨平台方案,即自己实现了一套UI框架,然后直接在GPU上渲染UI页面。
笔者最早接触的跨平台技术是Adobe Air,写一套Action Script代码可以运行在PC、Android及iOS三大平台上。笔者与朋友开发视频会议产品,需要最大化地减少前端的开发及维护工作量,所以,我们先后考察过Cordova、React Native及Flutter等技术。我们觉得Flutter方案更加先进,效率更高,后来就尝试用Flutter开发了开源的WebRTC插件(可在GitHub上搜索Flutter WebRTC)。
写作本书的目的是传播Flutter知识(因为Flutter确实优秀),想在为Flutter社区做贡献的同时也为我们的产品打下坚实的技术基础。在写作本书的过程中,笔者查阅了大量的资料,使得知识体系扩大了不少,收获良多。
本书主要内容
第1章介绍Flutter的基本概念、状态生命周期、Flutter框架,并写第一个Flutter程序,来感受一下Flutter之美。
第2章介绍几个重要知识点,如入口程序、Material Design设计风格、Flutter主题、使用包资源、状态管理Provider使用、Http请求处理、Dio库的使用以及Json与数据模型处理。
第3章简单介绍Dart语言。Dart语言是Flutter SDK指定的语言,我们很有必要补充一下它的基础知识,包括语法特性、基本语句、面向对象等。
第4章介绍常用组件。Flutter里有一个非常重要的核心理念:一切皆为组件,本章主要讲解开发中用得最频繁的组件,如容器组件、图片组件、文本组件、图标组件和表单组件等。
第5章介绍Material Design风格的组件。Material Design风格是一种非常有质感的设计风格,并提供一些默认的交互动画。本章将分类介绍这些组件。
第6章介绍Cupertino风格的组件,这是一类iOS风格的组件,如CupertinoTabBar、CupertinoPageScaffold、CupertinoTabScaffold、CupertinoTabView等。
第7章介绍页面布局的基础知识和技巧,如基础布局处理、宽高尺寸处理、列表及表格布局等,最后通过一个综合布局示例来演示如何编写复杂的页面。
第8章介绍如何处理手势,如轻击、拖动和缩放等。Flutter中提供GestureDetector进行手势检测,并为手势检测提供了相应的监听。
第9章介绍如何加载、处理、展示资源和图片,如添加资源和图片、自定义字体等。
第10章介绍组件装饰和视觉效果的处理,如Opacity(透明度处理)、DecoratedBox(装饰盒子)、RotatedBox(旋转盒子)、Clip(剪裁处理)和CustomPainter(自定义画板)。
第11章介绍Flutter原生路由导航处理、Fluro企业级路由导航处理,还介绍了Key-Value(键值对)存储、文件存储以及Sqf?lite等持久化操作。
第12章介绍动画的基本概念和原理,以及Flutter动画基础类的使用。通过字体放大动画、缓动动画、遮罩动画等示例详细介绍如何自定义动画。
第13章介绍Flutter插件开发的入门知识。Flutter插件可以和原生程序交互,比如调用蓝牙、启用WiFi、打开手电筒,等等。通过获取系统版本及电池电量插件的示例详细介绍了插件的基本开发步骤。通过加载网页插件示例详细介绍了Flutter与原生视图集成的方法。
第14章介绍开发工具及使用技巧,并介绍了几款常用的IDE工具,从代码的编写、辅助功能、程序调试、性能分析等多方面讲解工具及使用技巧。
第15章介绍测试与发布应用,包括测试应用、发布Android版和iOS版App。
第16章以实战案例为主。第一个综合案例介绍如何使用Flutter实现即时通信App的界面。第二个综合案例是实现一个企业站App,综合运用了前面的Flutter组件、布局、网络请求、Json处理、数据展示、状态管理、路由导航以及WebSocket等知识。
阅读建议
本书是一本基础入门加实战的书籍,既有基础知识,又有丰富的示例,包括详细的操作步骤,实操性强。由于Flutter大量使用组件,所以本书对组件的讲解很详细,包括基本概念、属性及代码示例。每个组件都配有小例子,力求精简,还提供了配套网站以提供完整代码,复制完整代码就可以看到效果,这样会增强读者的信心,在轻松掌握基础知识的同时快速进入实战。
如果你正在使用类似React Native等跨平台技术,那么学习Flutter会轻松很多。使用Flutter构建应用时,需要用到Android和iOS的相关知识,因为Flutter依赖移动操作系统提供众多功能和配置。Flutter是一种为移动设备构建用户界面的新方式,但它有一个插件机制可与Android和iOS进行数据及任务通信。本书第13章专门讲解Flutter的插件开发技术,可以作为进一步学习的起点。
Flutter引用了大量Web开发的知识,比如FlexBox布局方式、盒模型等,这些都引用了CSS中的一些思想。所以从UI界面的实现角度来说,只需要熟悉Dart语言就能轻松上手Flutter。本书第3章专门介绍Dart语言的基础知识。
建议读者在一开始先把第1~3章介绍的基础理论通读一遍,到第4章时实际操作并运行每个例子,这样就能开发最简单的Flutter界面了。
第5章和第6章通读即可。第7章介绍的构建页面布局都是开发中常用的布局方法,建议读者仔细阅读、实际操作并运行每个例子,尤其是最后的布局综合例子,按步骤执行一遍,就能理解布局的思路。
第8~11章涵盖Flutter的高级用法,在开发中也经常使用。可以根据实际项目开发和学习的需要阅读。
第12章介绍Flutter动画开发。动画可提升用户体验,读者可以先阅读动画的理论知识,然后尝试自定义一个简单动画,最后熟悉Flutter自带的动画组件。
第13章介绍Flutter插件开发。这需要具备原生开发的知识,比如Java、Objective-C 等相关知识。本章对读者的综合编程能力要求较高,需要掌握多门语言及多平台技术。如果读者不需要开发插件,可以略过本章。
第14~15章实操性很强,读者只要根据书中的步骤仔细操作,就能快速掌握。
第16章的两个综合案例,建议读者按书中步骤逐步实现,同时理解项目的代码组织结构,这样才能胜任实际项目的开发工作。
关于随书代码
本书所列代码力求完整,但限于篇幅,书中没有给出全部代码。完整代码可参见以下网址:
http://www.flutter100.net
https://github.com/kangshaojun
亢少军
2019年10月5日
第2版前言
第1章 开启Flutter之旅 1
1.1 Flutter的特点与核心概念 1
1.1.1 一切皆为组件 2
1.1.2 组件嵌套 2
1.1.3 构建 3
1.1.4 处理用户交互 3
1.1.5 状态 4
1.1.6 分层的框架 5
1.2 搭建开发环境 6
1.2.1 Windows环境搭建 6
1.2.2 MacOS环境搭建 12
1.3 写第一个Flutter程序 16
第2章 Flutter基础知识 22
2.1 入口程序 22
2.2 Material Design设计风格 23
2.3 Flutter主题 23
2.3.1 创建应用主题 23
2.3.2 局部主题 25
2.3.3 使用主题 26
2.4 使用包资源 27
2.5 状态管理 31
2.5.1 有状态及无状态组件 31
2.5.2 Provider的使用 33
2.6 HTTP请求 36
2.6.1 HTTP请求方式 37
2.6.2 HttpClient请求方式 38
2.6.3 Dio请求方式 39
第3章 Dart语言简述 47
3.1 Dart的重要概念与常用开发库 47
3.2 变量与基本数据类型 50
3.3 函数 52
3.4 运算符 54
3.5 流程控制语句 58
3.6 异常处理 61
3.7 面向对象 62
第4章 常用组件 75
4.1 容器组件 75
4.2 图片组件 77
4.3 文本组件 79
4.4 图标及按钮组件 81
4.4.1 图标组件 81
4.4.2 图标按钮组件 82
4.4.3 凸起按钮组件 83
4.5 列表组件 84
4.5.1 基础列表组件 85
4.5.2 水平列表组件 86
4.5.3 长列表组件 88
4.5.4 网格列表组件 89
4.6 表单组件 90
第5章 Material Design风格组件 94
5.1 App结构和导航组件 95
5.2 按钮和提示组件 112
5.3 其他组件 121
5.3.1 TextField(文本框组件) 121
5.3.2 Card(卡片组件) 123
第6章 Cupertino风格组件 126
6.1 CupertinoActivityIndicator(加载指示器组件) 126
6.2 CupertinoAlertDialog(对话框组件) 127
6.3 CupertinoButton(按钮组件) 128
6.4 Cupertino(导航组件集) 129
第7章 页面布局 135
7.1 基础布局处理 136
7.2 宽高尺寸处理 157
7.3 列表及表格布局 163
7.4 其他布局处理 169
7.5 布局综合示例 176
第8章 手势 184
8.1 用GestureDetector进行手势检测 184
8.2 用Dismissible实现滑动删除 186
第9章 资源和图片 189
9.1 添加资源和图片 189
9.1.1 指定asset 189
9.1.2 加载asset 190
9.1.3 平台asset 192
9.2 自定义字体 194
第10章 组件装饰和视觉效果 196
10.1 Opacity(透明度处理) 196
10.2 DecoratedBox(装饰盒子) 197
10.3 RotatedBox(旋转盒子) 204
10.4 Clip(剪裁处理) 205
10.5 案例—自定义画板 209
第11章 路由和持久化 227
11.1 路由的基本应用 227
11.2 Fluro企业级路由 235
11.3 Key-Value存储简介 240
11.3.1 shared_preferences的应用 241
11.3.2 shared_preferences的实现原理 244
11.4 文件存储 246
11.5 Sqflite的应用 249
11.5.1 常用操作方法 249
11.5.2 客户表操作示例 251
第12章 动画 256
12.1 动画的基本概念 256
12.2 Flutter的动画相关类 257
12.2.6 动画控制流程 262
12.3 动画示例 262
12.3.1 字体放大动画 262
12.3.2 缓动动画 266
12.3.3 遮罩动画 269
12.3.4 数字变化动画 272
12.3.5 图表动画 274
12.4 动画组件 277
12.4.1 用AnimatedOpacity实现渐变效果 277
12.4.2 用Hero实现页面切换动画 279
第13章 Flutter插件开发 282
13.1 获取系统版本插件 282
13.1.1 新建插件 282
13.1.2 运行插件 285
13.1.3 示例代码分析 286
13.2 电池电量插件 293
13.3 Channel详解 308
第14章 开发工具及使用技巧 324
14.1 IDE集成开发环境 324
14.1.1 Android Studio / IntelliJ 324
14.1.2 Visual Studio Code 330
14.2 Flutter SDK 337
14.3 使用热重载 338
14.4 格式化代码 339
14.5 Flutter组件检查器 340
第15章 测试与发布应用 343
15.1 测试应用 343
15.2 发布Android版App 348
15.3 发布iOS版App 353
第16章 综合案例 362
16.1 即时通信App界面实现 362
16.2 企业站App实现 394
新技术不容错过啊!
2019-11-25
本来想看看第1版,没想到第2版都出了,实在也太快了吧。
2019-11-25
对新手小白来说还是比较适合的,flutter这个新技术目前市场上也没有什么特别好的书,基础的书还是比较没有压力。跟着书一起操作很快就熟悉了各种组件。
2019-11-25
前端就是这么五花八门,各种技术层出不穷,就算不会也得与时俱进了解一下。
2019-11-25
知识点丰富,每个组件搭配小例子。
2019-11-25
内容对得起书名:入门与实战,给4颗星。 看完Flutter和Dart文档再看的这本书。 这本书的定位适合小白程序员,如果是小白级别,推荐看这本书,因为内容简单,结构清晰,每个知识都是以「介绍+示例」的形式讲解。 从看完文档再来看这本书的视角,以下是不推荐非小白程序员看此书的...
2019-09-07 17:06:59