三个多月的时间转瞬即逝,转眼间《Flutter 核心技术与实战》已经走到了尾声。在这里,**我要感谢你对我和这个专栏的鼓励和支持,也要向你表示祝贺**:你已经完整地学习了专栏的全部课程,实现了从入门到进阶 Flutter 技术的目标,你的坚持一定有所收获。现在专栏课程已经结束了,但还不能松懈,我们的 Flutter 学习旅程并未结束,从进阶到精通还有很长的一段路需要走,希望你能保持持续学习的习惯。
在这三个月的时间里,我们先后扫清了 Dart 语言基础语法及常用特性障碍;系统学习了 Flutter 框架原理和核心设计思想,掌握了构建炫酷页面从底层原理到上层应用的关键技术;学习了 Flutter 疑难问题及高阶特性的背后原理,并通过一些围绕效率和质量典型的场景,分析了在企业级应用迭代中,如何构建自己的 Flutter 开发体系。
专栏正文虽然已经更新完毕了,但我们的交流还会继续。同时**针对专栏前面的课后题及留言,我也会从中专门挑选一些有代表性的问题进行深入讲解**。
与此同时,我也很高兴地看到,在 Google 针对前端和移动端的布局愿景和强力带动的形势下,Flutter 的发展方向愈加清晰。
在 2019 年,Flutter 有了越来越多的知名公司加持背书,其开发者生态正在日益繁荣,开发者体验越来越好,支持的终端类型越来越广,使用的项目也越来越多。在开源社区里,Flutter 是目前最火的大前端技术,正在经历着从小范围验证到大面积商业应用的过程。
大前端的技术更新迭代快、东西多,很容易让人挑花了眼。如果仅仅停留在对应用层 API 的使用上,不仅容易滋生学不动的困扰,也会让人产生工程师杂而不精的观点。**大前端技术都是相似相通的,我认为一名优秀的大前端工程师应该具备以下特征:**
* 在技术层面应该抛开对开发框架的站队,除了应用层 API 之外,能够更多地关注其底层原理、设计思路和通用理念,对中短期技术发展方向有大致思路,并思考如何与过往的开发经验相结合,融汇进属于自己的知识体系抽象网络;
* 而在业务上应该跳出自身职能的竖井,更多关注产品交互设计层面背后的决策思考,在推进项目时,能够结合大前端直面用户的优势,将自己的专业性和影响力辐射到协作方上下游,综合提升自己统筹项目的能力。
**做好一件事从来都不是一蹴而就的。**
以我写专栏的过程来说,我自认为在大前端领域摸爬滚打多年,撰写专栏应该是一件驾轻就熟的事情。但从一开始的筹备阶段,我就慢慢发现这个事情远比我想象的要困难。与之前零散的总结输出相比,专栏的组织形式和交付方式需要花费数倍的精力。
为了把每一个知识点讲透,我需要花费大量的时间和精力去构思文章结构、验证设计、准备素材、代码实践。期间也不乏为了确认一个知识细节,花费数天时间去查阅资料、阅读源码、验证实现。
就这样从初春写到深秋,整整 7 个月,几乎每个工作日的夜晚和周末,都用在了学习、写作和录音上,这个过程虽然很痛苦,但对我来说收获是巨大的。可以说,《Flutter 核心技术与实战》这个专栏对我自己也是一个认知重塑的过程。
**进步很难,其实是因为那些可以让人进步的事情往往都是那些让人焦虑、带来压力的。**而人生的高度,可能就在于你怎么面对困难,真正能够减轻焦虑的办法就是走出舒适区,迎难而上,去搞定那些给你带来焦虑和压力的事情,这样人生的高度才能被一点点垫起来。解决问题的过程通常并不是一帆风顺的,这就需要坚持。所谓胜利者,往往是能比别人多坚持一分钟的人。
勿畏难,勿轻略,让我们在技术路上继续扩大自己的边界,保持学习,持续成长。
[
](https://jinshuju.net/f/LOrQOp)
- 前言
- 开篇词
- 预习篇
- 01丨预习篇 · 从0开始搭建Flutter工程环境
- 02丨预习篇 · Dart语言概览
- Flutter开发起步
- 03丨深入理解跨平台方案的历史发展逻辑
- 04丨Flutter区别于其他方案的关键技术是什么?
- 05丨从标准模板入手,体会Flutter代码是如何运行在原生系统上的
- Dart语言基础
- 06丨基础语法与类型变量:Dart是如何表示信息的?
- 07丨函数、类与运算符:Dart是如何处理信息的?
- 08丨综合案例:掌握Dart核心特性
- Flutter基础
- 09丨Widget,构建Flutter界面的基石
- 10丨Widget中的State到底是什么?
- 11丨提到生命周期,我们是在说什么?
- 12丨经典控件(一):文本、图片和按钮在Flutter中怎么用?
- 13丨ListView在Flutter中是什么?
- 14 丨 经典布局:如何定义子控件在父容器中排版位置?
- 15 丨 组合与自绘,我该选用何种方式自定义Widget?
- 16 丨 从夜间模式说起,如何定制不同风格的App主题?
- 17丨依赖管理(一):图片、配置和字体在Flutter中怎么用?
- 18丨依赖管理(二):第三方组件库在Flutter中要如何管理?
- 19丨用户交互事件该如何响应?
- 20丨关于跨组件传递数据,你只需要记住这三招
- 21丨路由与导航,Flutter是这样实现页面切换的
- Flutter进阶
- 22丨如何构造炫酷的动画效果?
- 23丨单线程模型怎么保证UI运行流畅?
- 24丨HTTP网络编程与JSON解析
- 25丨本地存储与数据库的使用和优化
- 26丨如何在Dart层兼容Android-iOS平台特定实现?(一)
- 27丨如何在Dart层兼容Android-iOS平台特定实现?(二)
- 28丨如何在原生应用中混编Flutter工程?
- 29丨混合开发,该用何种方案管理导航栈?
- 30丨为什么需要做状态管理,怎么做?
- 31丨如何实现原生推送能力?
- 32丨适配国际化,除了多语言我们还需要注意什么
- 33丨如何适配不同分辨率的手机屏幕?
- 34丨如何理解Flutter的编译模式?
- 35丨HotReload是怎么做到的?
- 36丨如何通过工具链优化开发调试效率?
- 37丨如何检测并优化FlutterApp的整体性能表现?
- 38丨如何通过自动化测试提高交付质量?
- Flutter综合应用
- 39丨线上出现问题,该如何做好异常捕获与信息采集?
- 40丨衡量FlutterApp线上质量,我们需要关注这三个指标
- 41丨组件化和平台化,该如何组织合理稳定的Flutter工程结构?
- 42丨如何构建高效的FlutterApp打包发布环境?
- 43丨如何构建自己的Flutter混合开发框架(一)?
- 44丨如何构建自己的Flutter混合开发框架(二)?
- 结束语
- 结束语丨勿畏难,勿轻略