新書推薦:
《
吕著中国通史
》
售價:HK$
62.7
《
爱琴海的光芒 : 千年古希腊文明
》
售價:HK$
199.4
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:HK$
66.1
《
SDGSAT-1卫星热红外影像图集
》
售價:HK$
445.8
《
股市趋势技术分析(原书第11版)
》
售價:HK$
221.8
《
汉匈战争全史
》
售價:HK$
99.7
《
恶的哲学研究(社会思想丛书)
》
售價:HK$
109.8
《
不止江湖
》
售價:HK$
98.6
|
編輯推薦: |
很系统:从Dart到Flutter,破解上百个知识点
很专业:凝聚作者6年移动前端开发经验
很易学:面向零基础的读者,从代码编写到案例实战
很实用:包括100余个实例,涵盖移动开发的方方面面
|
內容簡介: |
本书采用实践为主,理论为辅,二者相结合的方式,阐述了Dart编程语言的基础和高级用法,以及Flutter 框架的开发。图文并茂,通俗易懂。从*基础的编程语言语法开始,逐步实现从0到1,开发出一款App的目标。无论是想要入门跨平台开发的朋友,还是有一定编程基础的开发者,都能从本书获益。为读者带来充满轻松与喜乐的学习体验。
|
關於作者: |
萧文翰,Android架构师技术顾问。从2013年开始从事移动前端开发工作,主攻Android和跨平台开发技术,具有丰富的实战项目经验。萧文翰是国内7项专利的共同发明人,从2017年年底至2019年年底,在担任天津广州三星通信研究院代码优化工程师期间,6次当选Best Technical-Report,曾推动App性能优化活动,实现性能类别解决方案同比增长60%,总体解决方案领先于全球研究院。他还是CSDN博客专家&认证讲师、知乎专栏作家。
|
目錄:
|
目 录
第1章 Flutter简介 1
1.1 移动App开发的前世今生 2
1.2 为什么选择Flutter 3
1.2.1 Flutter的优势 3
1.2.2 Flutter强大的跨平台特性 4
1.2.3 Flutter的明天 5
1.3 Flutter的体系结构 6
第2章 初次遇见Flutter 8
2.1 开发环境搭建 8
2.1.1 下载JDK 9
2.1.2 安装JDK 9
2.1.3 安装和配置Xcode 10
2.1.4 下载Flutter SDK 11
2.1.5 配置Flutter SDK 11
2.1.6 配置必备组件 12
2.2 集成开发环境的选择 12
2.2.1 配置Android Studio 13
2.2.2 配置Visual Studio Code 17
2.3 第一个程序Hello World 18
2.3.1 运行自诊断脚本 18
2.3.2 启动Android模拟器 19
2.3.3 将项目运行在模拟器上 21
2.3.4 探索Flutter热修复特性 22
2.4 升级Flutter 23
2.5 练习 24
第3章 Dart语言基础 25
3.1 Dart语言简介 25
3.1.1 Dart发展史 25
3.1.2 Dart重要概念 26
3.1.3 Hello Dart 27
3.2 变量与常量 29
3.2.1 变量 29
3.2.2 常量 30
3.3 基本数据类型 31
3.3.1 数值型 31
3.3.2 字符串 32
3.3.3 布尔 34
3.3.4 集合 34
3.3.5 UTF-32编码表示法 39
3.4 方法 39
3.4.1 定义一个方法 39
3.4.2 参数 40
3.4.3 主方法 42
3.4.4 作用域 42
3.4.5 闭包 42
3.4.6 检查两个方法是否相等 43
3.4.7 返回值 43
3.5 运算符 43
3.5.1 算术运算符 45
3.5.2 关系运算符 46
3.5.3 类型判定运算符 47
3.5.4 赋值运算符 48
3.5.5 逻辑运算符 49
3.5.6 位操作运算符 50
3.5.7 条件表达式 51
3.5.8 级联运算符 52
3.5.9 其他运算符 52
3.6 流程控制 52
3.6.1 if-else条件语句 53
3.6.2 for循环 53
3.6.3 while循环和do-while循环 54
3.6.4 break语句和continue语句 55
3.6.5 switch-case条件语句 56
3.6.6 断言 58
3.7 异常 59
3.7.1 Throw 59
3.7.2 Catch 60
3.7.3 Finally 62
3.8 练习 62
第4章 Dart语言的面向对象应用 63
4.1 类 63
4.1.1 类的实例化 63
4.1.2 实例变量 65
4.1.3 getter方法和setter方法 66
4.1.4 静态变量 67
4.1.5 构造方法 67
4.1.6 实例方法 73
4.1.7 静态方法 73
4.1.8 扩展类 74
4.1.9 可复写的运算符 77
4.1.10 抽象方法 78
4.1.11 抽象类 80
4.1.12 接口 80
4.1.13 利用Mixin特性扩展类 82
4.1.14 枚举 83
4.2 泛型 84
4.2.1 泛型的作用 84
4.2.2 泛型的使用示例 85
4.2.3 限制泛型类型范围 85
4.2.4 使用泛型方法 86
4.3 练习 87
第5章 Dart语言的高级使用技巧 88
5.1 库 88
5.1.1 使用库 89
5.1.2 创建库 91
5.2 异步处理 91
5.2.1 声明异步的方法 92
5.2.2 使用await表达式 93
5.2.3 异步在循环中的使用 93
5.3 可调用的类 93
5.4 Dart的isolates运行模式 94
5.5 方法类型定义 94
5.6 元数据 96
5.7 注释 96
5.7.1 单行注释 96
5.7.2 多行注释 97
5.7.3 文档注释 97
5.8 编写更有效的Dart代码 97
5.9 练习 98
第6章 绘制赏心悦目的界面 99
6.1 第一个Flutter项目 99
6.1.1 Flutter项目的结构 100
6.1.2 日志工具的使用 100
6.2 Flutter基础 101
6.2.1 Flutter框架结构 101
6.2.2 App启动入口 101
6.2.3 一切皆为组件 102
6.2.4 组件的组合运用 102
6.2.5 何为状态 103
6.2.6 自定义组件 114
6.3 基本组件 120
6.3.1 基本组件简介 120
6.3.2 文本组件 120
6.3.3 按钮组件 124
6.3.4 图片组件 126
6.3.5 开关和复选框组件 129
6.3.6 单选框组件 130
6.3.7 输入框组件和表单组件 131
6.4 多元素布局组件 147
6.4.1 布局类组件 147
6.4.2 线性布局 149
6.4.3 堆叠布局 152
6.4.4 弹性布局 155
6.4.5 流式布局 156
6.5 容器类组件 159
6.5.1 内边距 159
6.5.2 约束 160
6.5.3 装饰 161
6.5.4 变换 164
6.5.5 容器 165
6.6 滚动列表组件 166
6.6.1 滚动列表组件简介 166
6.6.2 单个子组件的滚动视图 166
6.6.3 线性列表组件 168
6.6.4 网格列表组件 174
6.6.5 自定义滚动组件 177
6.6.6 滚动的控制及实时状态监听 178
6.7 其他重要的组件 181
6.7.1 拦截返回键 181
6.7.2 在组件树之间共享数据 183
6.7.3 触摸事件监听 186
6.7.4 手势识别 188
6.7.5 通知组件 190
6.7.6 全局事件广播 193
6.8 App资源管理 196
6.8.1 放置资源 196
6.8.2 使用资源 197
6.8.3 跨平台使用共享资源 197
6.9 动画 200
6.9.1 基本概念 200
6.9.2 补间动画 200
6.9.3 物理模拟动画 202
6.9.4 非线性动画 202
6.9.5 共享元素过渡动画 203
6.9.6 多个动画的叠加 206
6.10 字体 210
6.10.1 放置字体 210
6.10.2 使用字体 211
6.11 主题 211
6.11.1 使用主题 211
6.11.2 全局主题 212
6.11.3 局部主题 212
6.11.4 扩展现有主题 213
6.12 练习 213
第7章 数据的传递和持久化保存 214
7.1 页面跳转 214
7.1.1 页面的跳转和返回 214
7.1.2 数据的传递和返回 216
7.2 本地文件 221
7.2.1 本地文件的路径 222
7.2.2 本地文件的读写 222
7.3 网络请求 225
7.3.1 发起HTTP请求 226
7.3.2 Json解析 228
7.4 保存用户设置 239
7.5 数据库操作 240
7.6 练习 248
第8章 使用设备硬件实现更多功能 249
8.1 GPS定位技术 249
8.2 相机 252
8.3 蓝牙 254
8.4 音视频 259
8.4.1 音频录放 259
8.4.2 视频录放 262
8.5 距离传感器 263
8.6 NFC近场通信 265
8.7 练习 269
第9章 使App更加通用国际化的实现 270
9.1 识别当前系统的首选语言 270
9.2 使App支持多语言环境 272
9.3 练习 276
第10章 与原生代码交互 277
10.1 平台通道 277
10.1.1 平台通道的概念 278
10.1.2 平台通道支持的数据类型和解码器 278
10.2 与Android原生代码交互 279
10.2.1 使用Java语言实现 283
10.2.2 使用Kotlin语言实现 285
10.3 与iOS原生代码交互 287
10.3.1 使用Objective-C语言实现 287
10.3.2 使用Swift语言实现 289
10.4 练习 290
第11章 Material Design(Android)风格设计 291
11.1 脚手架组件 291
11.2 顶部程序栏组件 294
11.3 水平选项卡与内容视图组件 296
11.4 底部导航栏组件 298
11.5 抽屉组件 300
11.6 浮动悬停按钮组件 302
11.7 扁平按钮组件 303
11.8 图标按钮组件 303
11.9 浮动动作按钮组件 305
11.10 弹出式菜单组件 305
11.11 滑块组件 307
11.12 日期时间选择组件 309
11.13 简单对话框 312
11.14 提示框 314
11.15 可展开的列表组件 315
11.16 底部提示组件 317
11.17 标签组件 318
11.18 帮助提示组件 320
11.19 卡片组件 320
11.20 水平和圆形进度组件 322
11.21 练习 323
第12章 Cupertino(iOS)风格设计 324
12.1 脚手架组件 324
12.2 顶部导航栏组件 326
12.3 底部导航栏组件 329
12.4 操作表单组件 332
12.5 动作指示器组件 335
12.6 提示框组件 336
12.7 按钮组件 338
12.8 时间日期选择组件 340
12.9 时间选择组件 341
12.10 选择器组件 342
12.11 滑块组件 344
12.12 练习 345
第13章 实战演练:头条新闻 346
13.1 功能需求和技术可行性分析 346
13.1.1 功能需求分析 347
13.1.2 技术可行性分析 347
13.2 绘制产品原型图 349
13.3 将代码托管到Git 350
13.3.1 注册GitHub账号 351
13.3.2 新建代码仓库 351
13.3.3 代码仓库的克隆 353
13.3.4 代码的提交 354
13.4 数据的获取和解析 355
13.4.1 HTTP请求和返回处理 355
13.4.2 Json解析 356
13.4.3 定义新闻频道列表 358
13.5 绘制界面 359
13.5.1 构建和绘制新闻标题列表 359
13.5.2 跳转查看新闻详情 363
13.6 进一步:还可以做些什么 370
第14章 测试与调试应用 371
14.1 测试概述 371
14.2 单元测试 372
14.2.1 添加测试库 372
14.2.2 创建测试类和被测试类 372
14.2.3 开发业务逻辑 373
14.2.4 开发测试类 373
14.2.5 运行测试类 374
14.3 组件测试 374
14.3.1 添加测试库 374
14.3.2 创建要被测试的组件 375
14.3.3 创建组件测试类 375
14.3.4 使用WidgetTester创建组件 375
14.3.5 使用find查找组件 375
14.3.6 使用Matcher验证结果 376
14.4 集成测试 377
14.4.1 创建要测试的App 378
14.4.2 添加必要的测试库 379
14.4.3 创建测试类 380
14.4.4 构建指令化的Flutter应用程序类 380
14.4.5 构建集成测试用到的类 381
14.4.6 运行测试 382
14.5 Dart分析器 382
14.6 Dart单步调试法 383
14.7 调试应用程序的层 386
14.7.1 组件层 386
14.7.2 渲染层 389
14.7.3 转储层级关系 391
14.7.4
|
內容試閱:
|
前言
十几年前,iPhone的诞生开启了全新的移动互联网时代。移动互联网产品以迅雷不及掩耳之势迅速占领市场,改变人们生活的同时默默地冲击着传统互联网行业。大到世界500强的公司,小到摊贩,都能享受到移动互联网的便捷。同时,移动开发领域的竞争也在日益加剧,做出一款易用、美观、稳定的App已成为企业追求的目标。这就要求开发者能够适应加快产品上线的步伐、快速进行更新迭代的需求,本书便为企业和开发者提供了一套解决方案Flutter跨平台开发。
本书以实践为主,理论为辅,二者相结合的方式,阐述了Dart编程语言的基础和高级用法,以及Flutter框架的开发。本书图文并茂、通俗易懂,从最基础的编程语言语法开始,逐步实现从0到1开发出一款App的目标。无论是想要入门跨平台开发的朋友,还是有一定编程基础的开发者,都能从本书中获益。
本书特色
1.侧重基础,学习无门槛
本书内容涵盖了开发Flutter App必需的Dart编程语言知识,从内容上特别注重对基础知识的理解和把握。万丈高楼平地起,没有稳固扎实的地基是不行的。
2.示例贴近生活,贴近实际开发场景
本书采用的示例,大多是生活或开发中的典型示例,更易于理解,也更贴近实际开发场景。在某些章节的练习中,还可以自己动手设计。
3.运用大量实际运行效果图,内容翔实
本书在讲解Flutter的知识点时,运用了大量的实际运行效果图。这一方面可以直观地查看运行结果;另一方面在你自行练习时,也可以直接对照效果图,自行编写代码,而后对照。实现需求的方法不止一个,而这种根据图片编写代码的方法更能激发你的思考。
本书内容及体系结构
第1章 Flutter简介
本章回顾了移动开发的历史和现状,详细分析了Flutter的优点,同时还介绍了Flutter框架的整体架构模型,以便可以在了解跨平台移动开发历史的同时了解Flutter框架的重要概念。
第2章 初次遇见Flutter
本章以mac OS系统为例,详细讲解了开发Flutter App所需要的环境搭建过程。对于某些需要注意的地方和容易出错的位置均做了注明,对于常识性的知识也做了简明扼要的讲解。通过本章的学习,你可以实现在Android和iOS平台上运行起简单的Flutter App计数器。此外,本章还介绍了Flutter的热修复特性。
第3章 Dart语言基础
本章讲解了Dart编程语言的基础知识。Dart语言本身易于学习和使用,但是为了打好基础,还是需要对这部分知识进行系统的学习。
第4章 Dart语言的面向对象应用
本章讲解Dart语言的面向对象特性,该特性是Dart编程语言的重要特性之一,在实际开发中也会经常用到。
第5章 Dart语言的高级使用技巧
本章介绍了库的概念、异步处理的方法等,它们在实际开发中都会经常使用。
第6章 绘制赏心悦目的界面
本章详细描述了Flutter框架提供的常用布局和组件,以及动画等界面相关的内容。通过本章的学习,你可以做出各式各样的界面样式,因此这部分内容既可以用来学习使用各种组件,也可以用来作为工具书,以便在日后的开发中随时查阅。
第7章 数据的传递和持久化保存
本章详细描述了如何使用Flutter框架提供的功能实现数据的保存和网络请求,具体涉及本地文件的读写、数据库的增删改查、保存App设置参数,以及HTTP请求响应处理等。
第8章 使用设备硬件实现更多功能
在本章中,你可以通过运用多种库实现设备硬件的访问。比如,GPS定位芯片、摄像头、蓝牙模块、距离传感器及NFC等。
第9章 使App更加通用国际化的实现
本章详细讲解了如何添加App的多语言功能,实现在不同语言环境下自适应语言显示的目的,这对于需要在多个国家上线的App来说格外重要。
第10章 与原生代码交互
本章详细介绍如何让数据在Flutter框架和原生代码之间传递,以及方法的调用。
第11章 Material Design(Android)风格设计
除基本组件外,Flutter提供了完全符合Android平台设计哲学的界面库。如果想要打造完全Android风格的App,本章的内容就不能错过。
第12章 Cupertino(iOS)风格设计
本章主要介绍iOS风格的组件库。同样地,如果想要打造完全iOS风格的App,本章的内容也是不能错过的。
第13章 实战演练:头条新闻
本章通过实际开发案例带你体会一个App从0到1的诞生过程。同时,在最后提出了更多产品化的要求,你可以结合自身使用习惯继续完善这个App。
第14章 测试与调试应用
本章主要介绍如何对代码进行调试和对App进行测试。无论是测试过程还是代码调试过程,有一套好用的工具尤为重要,本章将为你介绍这些工具。
第15章 发布应用
本章针对Android平台和iOS平台,分别介绍了如何将App打包发布到应用市场中。
本书读者对象
? 想要从事Flutter App开发的朋友。
? 想要入门移动互联网开发的0基础学员。
? 有一定编程经验,想要多掌握一门语言或涉足移动开发领域的开发者。
? 对移动App开发有浓厚兴趣的学生。
? 各企业负责移动App研发的产品经理和项目经理。
|
|