工做以来,我在学习新知识的时候,经常与在应试教育阶段被传授的方法做斗争——把书本的内容100%复制到脑中才算学会吗?不会被使用或者不经常使用的知识,花费大量功夫去记忆才算完美吗?git
Flutter的入门文档给予了我很大的启发,它并无把API文档或者是整个框架的内容直接展示给初学者,而是经过一个简单的计数器例子,从基础的组件到手势的监听,再到状态的改变,将Flutter最核心的思想展示的淋漓尽致。github
我见过许多初学者,喜欢先将入门文档、API文档和教学视频一字不漏地所有看完,却历来没有打开编辑器,哪怕写上一句Hello World。小程序
我认为的高效学习的方法是,学习掌握恰到好处能够开始的基础知识,经过操做来深刻学习,边玩边学,在这个过程当中发现本身不懂的部分,经过查阅资料,掌握不懂的知识,最后将所学知识从大脑中提取出来,以别人可以理解的方式教授给别人。微信小程序
拆分组件,能够按照业务逻辑拆分,也能够按照布局是否相同来拆分,在这里笔者选择的是按照布局是否相同来进行拆分,缘由是业务逻辑并不复杂,布局能够复用的地方更多。如图所示,以NumberButton组件及NumberButtonGroup组件为例:微信
实现每一部分的组件以后,就要回到总体的计算器逻辑,即如何完成 输入->处理->输出 ?框架
实际上,这是我第一个完整完成的Flutter App,尽管我开发过数十个Android App和微信小程序,可是我好久没有在完成一个项目以后如此兴奋了,我找回了学生时代为了求知而努力学习的感受。在提炼了本身的学习方法,并付诸行动,获得的收获让人难以置信。less
项目地址编辑器