科技
类型
可以朗读
语音朗读
354千字
字数
2021-10-01
发行日期
展开全部
主编推荐语
本书系统讲解使用Flutter进行跨平台开发应具备的知识,包含丰富的代码示例与效果图片,组件功能一目了然。
内容简介
Flutter是谷歌公司推出的跨平台开源UI框架,同时支持Android App与iOS App开发,使用这一框架可以大大提高开发效率。
本书共14章,系统讲解Flutter背景、Dart语言的语法基础、Flutter组件、状态管理、事件处理、路由管理、动画、网络编程、数据存储、相机、主题与国际化、混合开发等核心内容,并通过多个案例以及“天气预报”App和“我的视频”App两个完整的实战项目,将理论知识与实践结合,提升读者的实战开发能力。
通过对本书的学习,读者将会对Flutter框架以及跨平台开发有全面的认识,并可在实践中使用Flutter大大提高移动开发效率。
本书适合正在使用Flutter以及对Flutter感兴趣的开发人员阅读和参考。
目录
- 版权信息
- 内容提要
- 序
- 前 言
- 资源与支持
- 第1章 初识Flutter
- 1.1 Flutter简介
- 1.2 Flutter的优势
- 1.2.1 跨平台性
- 1.2.2 高帧率的流畅UI
- 1.2.3 热重载
- 1.2.4 对开发环境要求不高
- 1.2.5 高性能
- 1.2.6 学习成本低
- 1.3 Flutter的技术特性
- 1.4 Flutter的架构
- 1.4.1 Flutter框架
- 1.4.2 Flutter引擎
- 1.5 开发环境的搭建
- 1.5.1 安装Android Studio
- 1.5.2 在Android Studio中安装Flutter开发库
- 1.5.3 在VSCode中安装Flutter开发库
- 1.5.4 搭建Dart语言开发环境
- 1.5.5 通过IntelliJ IDEA搭建纯Dart语言开发环境
- 1.6 创建第一个Flutter项目
- 1.7 体验热重载
- 1.8 习题
- 第2章 Dart语言:一切皆对象
- 2.1 Dart语言简介
- 2.1.1 一切皆对象
- 2.1.2 面向接口编程
- 2.1.3 类型可选
- 2.2 Hello World
- 2.3 变量与常量
- 2.3.1 变量
- 2.3.2 常量
- 2.4 内置类型
- 2.4.1 数值类型
- 2.4.2 布尔类型
- 2.4.3 字符串类型
- 2.4.4 列表类型
- 2.4.5 键值对类型
- 2.4.6 动态类型与Object
- 2.4.7 符号字符
- 2.4.8 符号
- 2.5 运算符
- 2.5.1 三目运算符
- 2.5.2 取商运算符
- 2.5.3 自定义类操作符
- 2.5.4 级联操作符
- 2.6 get和set方法
- 2.7 异常捕获
- 2.7.1 throw
- 2.7.2 try-catch
- 2.8 循环语句
- 2.8.1 for循环
- 2.8.2 while循环
- 2.8.3 do-while循环
- 2.9 switch语句
- 2.10 函数
- 2.10.1 main()函数
- 2.10.2 可选参数
- 2.10.3 必选参数
- 2.10.4 可选位置参数
- 2.10.5 默认参数
- 2.10.6 函数作为参数传递
- 2.10.7 函数作为变量
- 2.10.8 级联
- 2.11 异步编程
- 2.11.1 Future
- 2.11.2 async和await
- 2.12 抽象方法和抽象类
- 2.13 接口
- 2.14 继承
- 2.15 mixin
- 2.16 泛型
- 2.17 库
- 2.17.1 导入库
- 2.17.2 拆分库
- 2.18 习题
- 第3章 Flutter组件
- 3.1 基础组件
- 3.1.1 Text
- 3.1.2 Button
- 3.1.3 Icon
- 3.1.4 Image
- 3.1.5 FlutterLogo
- 3.2 单一子元素组件
- 3.2.1 Container
- 3.2.2 Padding
- 3.2.3 Align
- 3.2.4 Center
- 3.2.5 FittedBox
- 3.2.6 AspectRatio
- 3.2.7 SingleChildScrollView
- 3.2.8 FractionallySizedBox
- 3.2.9 ConstrainedBox
- 3.2.10 Baseline
- 3.3 多子元素组件
- 3.3.1 Scaffold
- 3.3.2 AppBar
- 3.3.3 Row和Column
- 3.3.4 ListView
- 3.3.5 GridView
- 3.3.6 CustomScrollView
- 3.3.7 CustomMultiChildLayout
- 3.3.8 Stack
- 3.3.9 IndexedStack
- 3.3.10 Table
- 3.3.11 Flex
- 3.3.12 Wrap
- 3.3.13 Flow
- 3.4 其他常用组件的应用
- 3.4.1 TextField
- 3.4.2 TextFormField
- 3.4.3 侧滑菜单
- 3.4.4 轮播广告
- 3.4.5 折叠相册
- 3.5 习题
- 第4章 状态管理
- 4.1 状态管理组件
- 4.1.1 Widget树
- 4.1.2 Context树
- 4.1.3 StatelessWidget
- 4.1.4 StatefulWidget
- 4.2 State
- 4.3 Key
- 4.3.1 GlobalKey
- 4.3.2 LocalKey
- 4.4 InheritedWidget
- 4.5 包管理
- 4.6 习题
- 第5章 事件处理
- 5.1 原始指针事件
- 5.1.1 基本用法
- 5.1.2 忽略PointerEvent
- 5.1.3 命中测试
- 5.2 GestureDetector
- 5.2.1 基本用法
- 5.2.2 常用事件
- 5.2.3 GestureDetector实战
- 5.2.4 手势冲突
- 5.3 事件通知
- 5.3.1 通知冒泡
- 5.3.2 通知栏消息
- 5.3.3 通知数提醒
- 5.4 习题
- 第6章 路由管理
- 6.1 路由简介
- 6.1.1 基本用法
- 6.1.2 静态路由
- 6.1.3 动态路由
- 6.1.4 参数回传
- 6.2 路由栈
- 6.2.1 路由栈详解
- 6.2.2 pushReplacementNamed()方法
- 6.2.3 popAndPushNamed()与pushReplacement()方法
- 6.2.4 pushNamedAndRemoveUntil()方法
- 6.2.5 popUntil()方法
- 6.3 fluro库
- 6.3.1 创建路由管理类
- 6.3.2 实现路由跳转
- 6.4 习题
- 第7章 动画
- 7.1 动画的原理
- 7.1.1 帧
- 7.1.2 插值器
- 7.2 Flutter动画核心类
- 7.2.1 Animation
- 7.2.2 Animatable
- 7.2.3 AnimationController
- 7.3 Tween类
- 7.3.1 Tween.animate
- 7.3.2 Curve
- 7.4 动画的封装与简化
- 7.4.1 AnimatedWidget
- 7.4.2 AnimatedBuilder
- 7.4.3 ScaleTransition
- 7.5 路由动画
- 7.5.1 Hero
- 7.5.2 Hero动画原理
- 7.5.3 自定义路由动画
- 7.6 组合动画
- 7.7 动画实战
- 7.7.1 实现支付宝“咻一咻”动画
- 7.7.2 Flare动画
- 7.8 习题
- 第8章 网络编程
- 8.1 网络协议基础
- 8.1.1 HTTP
- 8.1.2 URL和URI
- 8.1.3 Get和Post
- 8.1.4 为什么普及HTTP 2.0
- 8.1.5 HTTPS
- 8.2 网络编程
- 8.2.1 HttpClient库
- 8.2.2 http库
- 8.3 JSON解析
- 8.3.1 手动解析JSON数据
- 8.3.2 手动将JSON数据显示到界面
- 8.3.3 自动解析
- 8.4 dio库
- 8.4.1 基本用法
- 8.4.2 单例模式
- 8.4.3 拦截器
- 8.4.4 适配器
- 8.5 异步编程
- 8.5.1 隔离
- 8.5.2 事件循环
- 8.5.3 线程模型
- 8.5.4 事件流
- 8.5.5 创建并使用隔离
- 8.5.6 使用compute()函数
- 8.5.7 FutureBuilder
- 8.6 网络状态判断
- 8.7 习题
- 第9章 数据存储
- 9.1 SharedPreferences
- 9.1.1 基本操作
- 9.1.2 实现登录账号存储功能
- 9.2 文件存储
- 9.2.1 基本操作
- 9.2.2 实现留言板功能
- 9.2.3 自定义外部存储目录路径
- 9.2.4 实现文件浏览器功能
- 9.2.5 实现文件夹的添加和删除功能
- 9.3 SQLite数据库
- 9.3.1 基本操作
- 9.3.2 封装数据库操作
- 9.3.3 用sqflite库实现添加客户信息功能
- 9.4 访问服务器端数据库
- 9.4.1 基本操作
- 9.4.2 访问云端数据库实战
- 9.5 习题
- 第10章 相机
- 10.1 camera库
- 10.1.1 基本用法
- 10.1.2 使用takePicture ()方法拍照
- 10.1.3 切换摄像头
- 10.1.4 录制视频
- 10.2 视频播放
- 10.2.1 本地视频播放
- 10.2.2 网络视频播放
- 10.2.3 视频资源播放
- 10.2.4 视频样式
- 10.3 浏览图片和视频
- 10.3.1 调用相机拍摄图片
- 10.3.2 调用相机拍摄视频
- 10.3.3 选择图片与视频
- 10.3.4 完善自定义相机
- 10.4 下载图片和视频
- 10.5 识别二维码和条形码
- 10.6 生成二维码
- 10.6.1 qr_flutter库的基本用法
- 10.6.2 实现二维码生成器
- 10.7 习题
- 第11章 主题与国际化
- 11.1 主题换肤
- 11.1.1 ThemeData组件的属性
- 11.1.2 全局主题应用
- 11.1.3 局部主题应用
- 11.1.4 主题换肤实战
- 11.2 第三方库换肤
- 11.2.1 状态管理配置
- 11.2.2 变更主题样式
- 11.2.3 第三方库换肤实战
- 11.3 国际化
- 11.3.1 自定义LocalizationsDelegate类
- 11.3.2 通过MyLocalizations类国际化
- 11.4 第三方库easy_localization
- 11.4.1 初始化配置
- 11.4.2 手动切换语言实战
- 11.5 习题
- 第12章 混合开发
- 12.1 在Android原生项目中嵌入Flutter技术
- 12.1.1 创建Flutter模块
- 12.1.2 关联Flutter模块
- 12.2 Flutter与Android交互
- 12.2.1 Activity嵌入Flutter界面
- 12.2.2 Flutter向Activity传递参数
- 12.2.3 Activity向Flutter回传参数
- 12.2.4 Flutter向Activity回传参数
- 12.2.5 Flutter与Fragment
- 12.3 FlutterBoost框架
- 12.3.1 FlutterBoost架构
- 12.3.2 配置FlutterBoost框架的开发环境
- 12.3.3 使用FlutterBoost框架进行混合开发
- 12.4 aar模块化打包
- 12.5 习题
- 第13章 实战项目1:“天气预报”App
- 13.1 需求分析及技术获取
- 13.1.1 获取定位信息
- 13.1.2 获取天气数据
- 13.1.3 项目使用的库
- 13.1.4 项目目录结构
- 13.2 业务功能开发
- 13.2.1 获取当前城市名称
- 13.2.2 获取天气数据
- 13.2.3 存储天气数据
- 13.3 主界面开发
- 13.3.1 背景动画
- 13.3.2 标题栏
- 13.3.3 当前天气详情
- 13.3.4 横向ListView组件
- 13.3.5 纵向ListView组件
- 13.3.6 HomePage代码
- 13.4 城市天气切换
- 13.4.1 路由管理
- 13.4.2 切换城市界面
- 13.5 城市搜索匹配
- 13.5.1 SearchDelegate类
- 13.5.2 实现SearchDelegate类
- 13.5.3 搜索文本框默认显示内容
- 13.6 导出App
- 13.6.1 使用命令行创建一个签名文件
- 13.6.2 在android目录下创建一个key.properties文件
- 13.6.3 修改android/app/build.gradle文件内容
- 13.6.4 导出APK文件
- 第14章 实战项目2:“我的视频”App
- 14.1 实战项目概述
- 14.1.1 项目结构
- 14.1.2 界面分析
- 14.2 启动界面与主界面
- 14.2.1 启动界面
- 14.2.2 主界面
- 14.2.3 主界面内容
- 14.3 网络与JSON数据
- 14.4 路由管理
- 14.5 视频播放界面
- 14.6 短视频
- 14.7 个人中心界面
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。