展开全部

主编推荐语

一线移动跨端工程师,一手实战经验,通过7个完整实战项目手把手教你快速入门Flutter。

内容简介

Flutter作为一种新兴的跨端开发技术,其语言和框架都是全新的,并且知识体系比较庞大,学习起来有一定的难度。对于初学者来说,最迫切的愿望就是能够快速上手,将理论知识转化为实际经验,并在不断的实践中扩充完善知识体系。本书旨在帮助Flutter初学者实现这一愿望。

本书突出实战的特点,通过精心选取的大量实例项目,手把手带领读者完成多个Flutter实际应用开发。按照循序渐进的顺序对这些项目进行介绍,从最初的简单番茄计时器、拟物时钟,到后续的笔记应用、Todo应用、技术头条应用,逐步带领读者开发出具备地图、定位、网络、数据库、状态管理等功能的复杂应用,最终使读者能够掌握Flutter的中高级开发能力。

本书适合不同层次的移动端开发工程师、前端开发工程师,以及希望快速入门Flutter移动端开发的读者阅读学习。

目录

  • 版权信息
  • 前言 PREFACE
  • CHAPTER 1 第1章 Flutter基础知识
  • 1.1 移动跨端开发技术
  • 1.1.1 移动端应用开发的一般流程
  • 1.1.2 原生开发与跨端开发
  • 1.1.3 移动跨端开发技术的发展历程
  • 1.1.4 跨端技术难点
  • 1.2 Flutter技术
  • 1.2.1 Flutter技术简介
  • 1.2.2 Flutter整体架构
  • 1.2.3 Flutter与同类方案对比
  • 1.3 如何安装Flutter SDK
  • 1.4 配置Flutter开发环境
  • 1.4.1 使用Android Studio进行Flutter开发
  • 1.4.2 使用Visual Studio Code进行Flutter开发
  • 1.4.3 使用在线环境进行Flutter开发
  • 1.5 创建第一个Flutter应用Hello World
  • 1.5.1 如何创建Flutter工程
  • 1.5.2 配置Android模拟器与真机运行
  • 1.5.3 配置iOS模拟器与真机运行
  • CHAPTER 2 第2章 Dart和Flutter核心概念——零基础开发番茄钟计时器
  • 2.1 番茄钟计时器开发要点
  • 2.2 Dart语言快速上手
  • 2.3 Flutter组件化
  • 2.3.1 组件化思想
  • 2.3.2 无状态组件StatelessWidget
  • 2.3.3 有状态组件StatefulWidget
  • 2.3.4 组件的生命周期
  • 2.3.5 Material和Cupertino组件库
  • 2.4 初识Flutter工程
  • 2.4.1 Flutter工程结构特点
  • 2.4.2 App组件——应用架构的基石
  • 2.4.3 Scaffold组件——页面的骨架
  • 2.5 开发番茄钟
  • 2.5.1 使用Center组件进行居中显示
  • 2.5.2 Text文本展示组件
  • 2.5.3 添加Timer定时器
  • 2.5.4 为按钮添加单击事件控制番茄钟开始
  • 2.6 番茄钟知识扩展
  • CHAPTER 3 第3章 自定义视图和动画——开发精美的拟物时钟
  • 3.1 拟物时钟开发要点
  • 3.1.1 使用Container定制组件展示效果
  • 3.1.2 使用CustomPaint创建Flutter自定义视图
  • 3.1.3 Flutter动画入门与拟物时钟的开发流程
  • 3.2 基于Canvas和CustomPaint绘制表盘
  • 3.2.1 使用Container绘制外表盘
  • 3.2.2 使用Container绘制内表盘
  • 3.2.3 使用CustomPaint绘制表盘刻度
  • 3.3 基于CustomPaint绘制指针
  • 3.3.1 使用CustomPaint绘制时针与分针
  • 3.3.2 使用rotate Transform偏转指针
  • 3.3.3 使用CustomPaint绘制秒针
  • 3.3.4 使用CustomPaint绘制中心装饰物
  • 3.4 让时针动起来
  • 3.4.1 使用DateTime获取时间信息
  • 3.4.2 通过Timer定时器实现时间自动刷新
  • 3.4.3 通过RotationTransition实现指针转动动画
  • 3.5 拟物时钟知识拓展
  • CHAPTER 4 第4章 地图+传感器——开发轨迹计步器
  • 4.1 轨迹计步器开发要点
  • 4.1.1 通过Flutter包管理导入扩展包
  • 4.1.2 Flutter Channel原生通信机制介绍
  • 4.1.3 Column、Row横纵向布局组件介绍
  • 4.1.4 轨迹计步器开发流程
  • 4.2 创建轨迹计步器首页
  • 4.2.1 创建轨迹计步器项目结构
  • 4.2.2 创建仪表面板组件
  • 4.3 基于Pedometer库实现计步功能
  • 4.3.1 Pedometer计步器库介绍
  • 4.3.2 通过Flutter Stream监听步数
  • 4.3.3 实现轨迹计步器的计步功能
  • 4.4 基于geolocator库实现定位功能
  • 4.4.1 geolocator定位库介绍
  • 4.4.2 实现轨迹计步器的定位功能
  • 4.4.3 保存轨迹计步器的定位轨迹历史
  • 4.5 基于flutter_map库实现地图功能
  • 4.5.1 flutter_map地图库介绍
  • 4.5.2 使用FlutterMap组件创建地图
  • 4.5.3 通过MarkerLayerOptions展示当前位置
  • 4.5.4 通过PolylineLayerOptions绘制行进轨迹
  • 4.6 轨迹计步器知识拓展
  • CHAPTER 5 第5章 Socket网络通信——开发属于自己的“微信”聊天工具
  • 5.1 聊天工具开发要点
  • 5.1.1 Dart Socket网络通信框架
  • 5.1.2 Flutter图片资源管理
  • 5.1.3 使用ListView展示长列表数据
  • 5.1.4 通过Navigator进行页面跳转
  • 5.1.5 聊天工具开发流程
  • 5.2 创建首页设置页面
  • 5.2.1 搭建聊天工具Flutter工程
  • 5.2.2 基于NetworkInterface展示本机IP地址
  • 5.2.3 使用TextField实现Server设置项
  • 5.2.4 使用TextField实现Client设置项
  • 5.3 建立Socket通信
  • 5.3.1 创建消息Model并进行JSON序列化
  • 5.3.2 创建Socket通信基类BaseSocketCS
  • 5.3.3 基于ServerSocket创建Socket服务器
  • 5.3.4 基于Socket创建Socket客户端
  • 5.3.5 在_MyAppState中接入Socket框架
  • 5.3.6 双端Socket通信联调
  • 5.4 建立聊天页面
  • 5.4.1 基于ListView实现消息列表
  • 5.4.2 基于Container实现消息组件
  • 5.4.3 基于Navigator实现页面跳转
  • 5.4.4 使用TextField实现消息输入组件
  • 5.5 使用Image组件扩展表情包功能
  • 5.6 聊天工具知识拓展
  • CHAPTER 6 第6章 数据持久化——开发一款支持Markdown的“印象笔记”
  • 6.1 Markdown笔记开发要点
  • 6.1.1 Flutter下的Markdown展示方式
  • 6.1.2 基于flutter_markdown实现Markdown原生渲染
  • 6.1.3 使用shared_preference存储笔记数据
  • 6.1.4 使用InheritedWidget进行状态管理
  • 6.1.5 笔记应用开发流程
  • 6.2 基于InheritedWidget开发状态层
  • 6.2.1 创建笔记Model
  • 6.2.2 基于StatefulWidget创建NoteStore
  • 6.2.3 在_NoteStoreState中实现笔记增删改查
  • 6.2.4 基于InheritedWidget实现_NoteStoreScope
  • 6.2.5 在NoteStore中完善状态访问接口
  • 6.3 创建笔记应用首页
  • 6.3.1 使用didChangeDependencies进行状态关联
  • 6.3.2 基于Scaffold实现首页抽屉导航布局
  • 6.4 创建笔记编辑页
  • 6.4.1 实现_PageEditorState搭建主要布局
  • 6.4.2 实现getAppBar编辑页工具栏
  • 6.4.3 运行编辑页调试功能
  • 6.4.4 使用TextField实现元信息编辑页
  • 6.5 创建笔记预览页
  • 6.6 创建编辑页工具栏
  • 6.7 Markdown笔记应用知识扩展
  • CHAPTER 7 第7章 SQLite数据库——开发一款“奇妙清单”Todo应用
  • 7.1 Todo应用开发要点
  • 7.1.1 使用sqflite进行SQLite数据库开发
  • 7.1.2 使用Provider进行Flutter复杂状态管理
  • 7.1.3 Todo应用的业务流程
  • 7.2 基于sqflite实现SQLite数据层
  • 7.2.1 封装项目Model
  • 7.2.2 封装待办事项Model
  • 7.2.3 sqflite数据库初始化
  • 7.2.4 实现项目数据库操作类ProjectManager
  • 7.2.5 实现待办事项操作类TodoManager
  • 7.3 基于Provider实现状态层
  • 7.3.1 实现待办事项状态类TodoState
  • 7.3.2 实现项目状态类ProjectState
  • 7.3.3 使用MultiProvider对外提供状态
  • 7.4 创建Todo应用首页
  • 7.4.1 使用Consumer实现项目列表
  • 7.4.2 创建待办事项列表项组件
  • 7.4.3 使用Consumer2实现待办事项列表
  • 7.5 创建Todo应用项目编辑页
  • 7.5.1 实现项目编辑页整体Scaffold布局
  • 7.5.2 使用showDatePicker编辑创建和截止时间
  • 7.5.3 访问ProjectState实现项目数据保存
  • 7.6 创建Todo应用待办事项编辑页
  • 7.6.1 实现待办事项编辑页整体Scaffold布局
  • 7.6.2 通过自定义对话框实现项目选择
  • 7.6.3 访问TodoState实现待办事项数据保存
  • 7.7 Todo应用知识扩展
  • CHAPTER 8 第8章 HTTP+WebView——开发“技术头条”让技术先人一步
  • 8.1 技术头条开发要点
  • 8.1.1 Flutter http网络库介绍
  • 8.1.2 GitHub API介绍
  • 8.1.3 使用json_annotation实现高效序列化
  • 8.1.4 Flutter集成WebView实现网页浏览
  • 8.1.5 技术头条的业务流程
  • 8.2 基于http库实现网络层
  • 8.2.1 基于json_annotation创建Model类
  • 8.2.2 基于http库实现GitHub网络访问类
  • 8.2.3 基于Service模式搭建网络层
  • 8.3 创建首页活动Feed流
  • 8.3.1 基于CustomScrollView搭建首页Feed流布局
  • 8.3.2 通过SliverPersistentHeader实现吸顶搜索组件
  • 8.3.3 通过SliverGrid实现九宫格导航
  • 8.3.4 通过SliverList实现Feed流内容展示
  • 8.3.5 接收ScrollNotification事件实现加载更多内容
  • 8.4 创建GitHub公共活动Feed流
  • 8.4.1 基于ListView公共活动Feed流布局
  • 8.4.2 通过listPublicEvents和ScrollNotification加载数据
  • 8.5 通过xpath爬虫实现GitHub Trending页
  • 8.5.1 通过xpath解析GitHub Trending网页
  • 8.5.2 通过ListView对GitHub Trending进行展示
  • 8.5.3 在createGrid中完成路由跳转逻辑
  • 8.6 基于webview_flutter实现WebView页面
  • 8.7 技术头条应用知识扩展
  • 附赠资源 跨平台开发——将Flutter应用扩展到更多平台
  • 1.1 Flutter全平台跨端能力介绍
  • 1.2 使用Flutter开发Web应用
  • 1.2.1 配置Flutter for Web开发环境
  • 1.2.2 实现拟物时钟Web版
  • 1.2.3 实现Markdown笔记Web版
  • 1.2.4 实现技术头条Web版
  • 1.3 使用Flutter开发桌面应用
  • 1.3.1 配置Flutter SDK Windows开发环境
  • 1.3.2 实现拟物时钟桌面版
  • 1.3.3 实现Markdown笔记桌面版
  • 1.3.4 实现技术头条桌面版
  • 1.4 Flutter全平台跨端知识扩展
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

机械工业出版社

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。