Flutter从0基础到App上线 封面

Flutter从0基础到App上线

评分 3.8
字数
10.9万字
章节数
323
ISBN
9787121382963

标签

内容简介

在移动互联网高速发展的今天,跨平台的移动开发框架层出不穷。为了帮助广大开发者快速掌握跨平台的移动开发并降低互联网公司的产品研发成本,本书从开发环境的搭建、Dart编程语言基础和高级应用、Flutter框架中的组件(包括通用组件、Android风格和iOS风格的组件)、Flutter App中的数据持久化方案、多语言国际化、使用设备传感器、和原生代码通信、App的测试和Dart调试技巧及App上线流程等方面,全面阐述了Flutter框架的开发技巧。在多个章节后面都附有练习题,你可以通过练习来巩固相应知识。

编辑推荐

《Flutter从0基础到App上线》是一本面向移动开发初学者的实践指南。作者萧文翰凭借其一线开发经验,将Flutter这一由谷歌推出的跨平台UI框架进行了系统化梳理。本书并非简单罗列API,而是以"从0到1"的项目驱动方式,带领读者逐步构建一个完整的应用,直至最终发布上线。其内容编排体现了清晰的工程思维:从Dart语言基础,Flutter核心组件入手,逐步深入到状态管理,网络请求,本地存储等实战模块,最后详细讲解了打包,测试与发布流程。

作为电子工业出版社的技术书籍,其内容扎实且紧跟当时(出版时)的Flutter稳定版本。对于希望快速掌握Flutter并产出实际作品的开发者而言,本书提供了高效的路径。它避免了过于深奥的理论探讨,侧重于"怎么做"和"为什么这么做",代码示例较为完整,解释也力求平实。不过,技术框架迭代迅速,读者需注意书中基于特定版本(如Flutter 1.x或2.x初期)的细节可能与最新版本存在差异,但核心设计思想与开发模式依然具有很高的参考价值。总体而言,这是一本称职的入门到进阶的实践手册,能帮助开发者建立对Flutter开发全貌的认知并付诸实践。

适合谁读

适合

  • 具备任意一门编程语言基础,希望转向移动应用开发的初学者
  • 有Android或iOS原生开发经验,想探索跨平台解决方案的开发者
  • 需要快速上手Flutter并完成一个完整项目上线的学习者
  • 寻求结构化学习路径,偏好按步骤实践而非零散查阅文档的读者

不适合

  • 寻求深入Flutter底层原理或框架源码剖析的高级开发者
  • 希望了解Flutter最新版本(如3.x以后)所有特性和最佳实践的读者

阅读建议

  1. 建议按照章节顺序阅读并同步动手实践,书中项目代码是学习的主线
  2. 对于有经验的开发者,可快速浏览Dart和基础组件部分,重点阅读状态管理,混合开发及上线章节
  3. 阅读时善用Flutter官方文档以对照和查询API的最新变化,弥补书籍因出版周期产生的信息延迟

出版社简介

电子工业出版社 中国 · 成立于 1982 年

电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。

目录

  1. 版权信息
  2. 作者简介
  3. 内容简介
  4. 前言
  5. 第1章 Flutter简介
  6. 1.1 移动App开发的前世今生
  7. 1.2 为什么选择Flutter
  8. 1.2.1 Flutter的优势
  9. 1.2.2 Flutter强大的跨平台特性
  10. 1.2.3 Flutter的明天
  11. 1.3 Flutter的体系结构
  12. 第2章 初次遇见Flutter
  13. 2.1 开发环境搭建
  14. 2.1.1 下载JDK
  15. 2.1.2 安装JDK
  16. 2.1.3 安装和配置Xcode
  17. 2.1.4 下载Flutter SDK
  18. 2.1.5 配置Flutter SDK
  19. 2.1.6 配置必备组件
  20. 2.2 集成开发环境的选择
  21. 2.2.1 配置Android Studio
  22. 2.2.2 配置Visual Studio Code
  23. 2.3 第一个程序——Hello World
  24. 2.3.1 运行自诊断脚本
  25. 2.3.2 启动Android模拟器
  26. 2.3.3 将项目运行在模拟器上
  27. 2.3.4 探索Flutter热修复特性
  28. 2.4 升级Flutter
  29. 2.5 练习
  30. 第3章 Dart语言基础
  31. 3.1 Dart语言简介
  32. 3.1.1 Dart发展史
  33. 3.1.2 Dart重要概念
  34. 3.1.3 Hello Dart
  35. 3.2 变量与常量
  36. 3.2.1 变量
  37. 3.2.2 常量
  38. 3.3 基本数据类型
  39. 3.3.1 数值型
  40. 3.3.2 字符串
  41. 3.3.3 布尔
  42. 3.3.4 集合
  43. 3.3.5 UTF-32编码表示法
  44. 3.4 方法
  45. 3.4.1 定义一个方法
  46. 3.4.2 参数
  47. 3.4.3 主方法
  48. 3.4.4 作用域
  49. 3.4.5 闭包
  50. 3.4.6 检查两个方法是否相等
  51. 3.4.7 返回值
  52. 3.5 运算符
  53. 3.5.1 算术运算符
  54. 3.5.2 关系运算符
  55. 3.5.3 类型判定运算符
  56. 3.5.4 赋值运算符
  57. 3.5.5 逻辑运算符
  58. 3.5.6 位操作运算符
  59. 3.5.7 条件表达式
  60. 3.5.8 级联运算符
  61. 3.5.9 其他运算符
  62. 3.6 流程控制
  63. 3.6.1 if-else条件语句
  64. 3.6.2 for循环
  65. 3.6.3 while循环和do-while循环
  66. 3.6.4 break语句和continue语句
  67. 3.6.5 switch-case条件语句
  68. 3.6.6 断言
  69. 3.7 异常
  70. 3.7.1 Throw
  71. 3.7.2 Catch
  72. 3.7.3 Finally
  73. 3.8 练习
  74. 第4章 Dart语言的面向对象应用
  75. 4.1 类
  76. 4.1.1 类的实例化
  77. 4.1.2 实例变量
  78. 4.1.3 getter()方法和setter()方法
  79. 4.1.4 静态变量
  80. 4.1.5 构造方法
  81. 4.1.6 实例方法
  82. 4.1.7 静态方法
  83. 4.1.8 扩展类
  84. 4.1.9 可复写的运算符
  85. 4.1.10 抽象方法
  86. 4.1.11 抽象类
  87. 4.1.12 接口
  88. 4.1.13 利用Mixin特性扩展类
  89. 4.1.14 枚举
  90. 4.2 泛型
  91. 4.2.1 泛型的作用
  92. 4.2.2 泛型的使用示例
  93. 4.2.3 限制泛型类型范围
  94. 4.2.4 使用泛型方法
  95. 4.3 练习
  96. 第5章 Dart语言的高级使用技巧
  97. 5.1 库
  98. 5.1.1 使用库
  99. 5.1.2 创建库
  100. 5.2 异步处理
  101. 5.2.1 声明异步的方法
  102. 5.2.2 使用await表达式
  103. 5.2.3 异步在循环中的使用
  104. 5.3 可调用的类
  105. 5.4 Dart的isolates运行模式
  106. 5.5 方法类型定义
  107. 5.6 元数据
  108. 5.7 注释
  109. 5.7.1 单行注释
  110. 5.7.2 多行注释
  111. 5.7.3 文档注释
  112. 5.8 编写更有效的Dart代码
  113. 5.9 练习
  114. 第6章 绘制赏心悦目的界面
  115. 6.1 第一个Flutter项目
  116. 6.1.1 Flutter项目的结构
  117. 6.1.2 日志工具的使用
  118. 6.2 Flutter基础
  119. 6.2.1 Flutter框架结构
  120. 6.2.2 App启动入口
  121. 6.2.3 一切皆为组件
  122. 6.2.4 组件的组合运用
  123. 6.2.5 何为状态
  124. 6.2.6 自定义组件
  125. 6.3 基本组件
  126. 6.3.1 基本组件简介
  127. 6.3.2 文本组件
  128. 6.3.3 按钮组件
  129. 6.3.4 图片组件
  130. 6.3.5 开关和复选框组件
  131. 6.3.6 单选框组件
  132. 6.3.7 输入框组件和表单组件
  133. 6.4 多元素布局组件
  134. 6.4.1 布局类组件
  135. 6.4.2 线性布局
  136. 6.4.3 堆叠布局
  137. 6.4.4 弹性布局
  138. 6.4.5 流式布局
  139. 6.5 容器类组件
  140. 6.5.1 内边距
  141. 6.5.2 约束
  142. 6.5.3 装饰
  143. 6.5.4 变换
  144. 6.5.5 容器
  145. 6.6 滚动列表组件
  146. 6.6.1 滚动列表组件简介
  147. 6.6.2 单个子组件的滚动视图
  148. 6.6.3 线性列表组件
  149. 6.6.4 网格列表组件
  150. 6.6.5 自定义滚动组件
  151. 6.6.6 滚动的控制及实时状态监听
  152. 6.7 其他重要的组件
  153. 6.7.1 拦截返回键
  154. 6.7.2 在组件树之间共享数据
  155. 6.7.3 触摸事件监听
  156. 6.7.4 手势识别
  157. 6.7.5 通知组件
  158. 6.7.6 全局事件广播
  159. 6.8 App资源管理
  160. 6.8.1 放置资源
  161. 6.8.2 使用资源
  162. 6.8.3 跨平台使用共享资源
  163. 6.9 动画
  164. 6.9.1 基本概念
  165. 6.9.2 补间动画
  166. 6.9.3 物理模拟动画
  167. 6.9.4 非线性动画
  168. 6.9.5 共享元素过渡动画
  169. 6.9.6 多个动画的叠加
  170. 6.10 字体
  171. 6.10.1 放置字体
  172. 6.10.2 使用字体
  173. 6.11 主题
  174. 6.11.1 使用主题
  175. 6.11.2 全局主题
  176. 6.11.3 局部主题
  177. 6.11.4 扩展现有主题
  178. 6.12 练习
  179. 第7章 数据的传递和持久化保存
  180. 7.1 页面跳转
  181. 7.1.1 页面的跳转和返回
  182. 7.1.2 数据的传递和返回
  183. 7.2 本地文件
  184. 7.2.1 本地文件的路径
  185. 7.2.2 本地文件的读写
  186. 7.3 网络请求
  187. 7.3.1 发起HTTP请求
  188. 7.3.2 Json解析
  189. 7.4 保存用户设置
  190. 7.5 数据库操作
  191. 7.6 练习
  192. 第8章 使用设备硬件实现更多功能
  193. 8.1 GPS定位技术
  194. 8.2 相机
  195. 8.3 蓝牙
  196. 8.4 音视频
  197. 8.4.1 音频录放
  198. 8.4.2 视频录放
  199. 8.5 距离传感器
  200. 8.6 NFC近场通信
  201. 8.7 练习
  202. 第9章 使App更加通用——国际化的实现
  203. 9.1 识别当前系统的首选语言
  204. 9.2 使App支持多语言环境
  205. 9.3 练习
  206. 第10章 与原生代码交互
  207. 10.1 平台通道
  208. 10.1.1 平台通道的概念
  209. 10.1.2 平台通道支持的数据类型和解码器
  210. 10.2 与Android原生代码交互
  211. 10.2.1 使用Java语言实现
  212. 10.2.2 使用Kotlin语言实现
  213. 10.3 与iOS原生代码交互
  214. 10.3.1 使用Objective-C语言实现
  215. 10.3.2 使用Swift语言实现
  216. 10.4 练习
  217. 第11章 Material Design(Android)风格设计
  218. 11.1 脚手架组件
  219. 11.2 顶部程序栏组件
  220. 11.3 水平选项卡与内容视图组件
  221. 11.4 底部导航栏组件
  222. 11.5 抽屉组件
  223. 11.6 浮动悬停按钮组件
  224. 11.7 扁平按钮组件
  225. 11.8 图标按钮组件
  226. 11.9 浮动动作按钮组件
  227. 11.10 弹出式菜单组件
  228. 11.11 滑块组件
  229. 11.12 日期时间选择组件
  230. 11.13 简单对话框
  231. 11.14 提示框
  232. 11.15 可展开的列表组件
  233. 11.16 底部提示组件
  234. 11.17 标签组件
  235. 11.18 帮助提示组件
  236. 11.19 卡片组件
  237. 11.20 水平和圆形进度组件
  238. 11.21 练习
  239. 第12章 Cupertino(iOS)风格设计
  240. 12.1 脚手架组件
  241. 12.2 顶部导航栏组件
  242. 12.3 底部导航栏组件
  243. 12.4 操作表单组件
  244. 12.5 动作指示器组件
  245. 12.6 提示框组件
  246. 12.7 按钮组件
  247. 12.8 时间日期选择组件
  248. 12.9 时间选择组件
  249. 12.10 选择器组件
  250. 12.11 滑块组件
  251. 12.12 练习
  252. 第13章 实战演练:头条新闻
  253. 13.1 功能需求和技术可行性分析
  254. 13.1.1 功能需求分析
  255. 13.1.2 技术可行性分析
  256. 13.2 绘制产品原型图
  257. 13.3 将代码托管到Git
  258. 13.3.1 注册GitHub账号
  259. 13.3.2 新建代码仓库
  260. 13.3.3 代码仓库的克隆
  261. 13.3.4 代码的提交
  262. 13.4 数据的获取和解析
  263. 13.4.1 HTTP请求和返回处理
  264. 13.4.2 Json解析
  265. 13.4.3 定义新闻频道列表
  266. 13.5 绘制界面
  267. 13.5.1 构建和绘制新闻标题列表
  268. 13.5.2 跳转查看新闻详情
  269. 13.6 进一步:还可以做些什么
  270. 第14章 测试与调试应用
  271. 14.1 测试概述
  272. 14.2 单元测试
  273. 14.2.1 添加测试库
  274. 14.2.2 创建测试类和被测试类
  275. 14.2.3 开发业务逻辑
  276. 14.2.4 开发测试类
  277. 14.2.5 运行测试类
  278. 14.3 组件测试
  279. 14.3.1 添加测试库
  280. 14.3.2 创建要被测试的组件
  281. 14.3.3 创建组件测试类
  282. 14.3.4 使用WidgetTester创建组件
  283. 14.3.5 使用find查找组件
  284. 14.3.6 使用Matcher验证结果
  285. 14.4 集成测试
  286. 14.4.1 创建要测试的App
  287. 14.4.2 添加必要的测试库
  288. 14.4.3 创建测试类
  289. 14.4.4 构建指令化的Flutter应用程序类
  290. 14.4.5 构建集成测试用到的类
  291. 14.4.6 运行测试
  292. 14.5 Dart分析器
  293. 14.6 Dart单步调试法
  294. 14.7 调试应用程序的层
  295. 14.7.1 组件层
  296. 14.7.2 渲染层
  297. 14.7.3 转储层级关系
  298. 14.7.4 语义调试
  299. 14.7.5 调试调度
  300. 14.8 可视化调试
  301. 14.9 调试动画
  302. 14.10 性能优化
  303. 14.10.1 启动时间分析
  304. 14.10.2 代码执行时间分析
  305. 14.11 使用性能图表
  306. 14.12 Material基线网格
  307. 14.13 使用组件检查器
  308. 第15章 发布应用
  309. 15.1 Android平台
  310. 15.1.1 自定义App图标
  311. 15.1.2 签名
  312. 15.1.3 代码混淆
  313. 15.1.4 检查AndroidManifest.xml
  314. 15.1.5 复查App兼容性配置
  315. 15.1.6 编译用于发布的Apk
  316. 15.1.7 将Apk发布到应用市场
  317. 15.2 iOS平台
  318. 15.2.1 在iTunes Connect上注册
  319. 15.2.2 复查XCode项目属性
  320. 15.2.3 自定义App图标
  321. 15.2.4 构建发布版本
  322. 15.2.5 在TestFlight上分发App
  323. 15.2.6 将App发布到App Store

常见问题

这本书需要读者有Dart语言基础吗?
不需要。本书开头部分会讲解Dart语言的必要基础,足以支撑后续的Flutter学习。当然,有其他编程语言经验会更容易上手。
书中的案例项目是否完整且可运行?
是的。本书采用一个贯穿始终的示例项目,从零开始构建,步骤详细,代码完整,最终形成一个可上线发布的应用。
这本书的内容是否已经过时?
技术书籍难免存在版本滞后性。本书核心在于传授Flutter应用开发的核心概念,设计模式和完整工作流,这些知识具有较长的时效性。对于具体的API变动或新特性,建议结合官方文档进行学习。

微信读书相关

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

作者简介

萧文翰 作者

萧文翰是一位活跃于编程设计类图书领域的作者,公开资料较为有限。目前库内收录其作品两种,分别为《Flutter从0基础到App上线》与《Go语言从入门到项目实战(视频版)》。从书名与分类可以看出,他的写作聚焦移动应用开发与后端编程语言入门,面向零基础及初学读者,注重从基础知识过渡到实际项目上线。两本书均以“从入门到实战”为线索,强调可操作性与项目驱动,并配有视频版内容,体现出面向自学人群、降低学习门槛的写作取向。在缺乏更多生平信息的情况下,可以将其定位为以实用技术教程见长的编程类图书作者,其作品对希望快速上手 Flutter 与 Go 语言的读者具有参考价值。

同一作者

同类高分