前言
对于一个喜欢追求新技术的人来说,flutter 火爆了一年多我却没有尝鲜,实在是说不过去。我之所以对 flutter 不感冒,源于我对 flutter 所使用的 dart 语言的无知 —— 我觉得既然市面上有 typescript 这样可以满足 flutter 需要的语言,为何要用 dart 这样一个行将就木的语言呢?但最近有个朋友给我展示了他用 flutter 做的一个私人项目,惊艳到我,于是我开始学 flutter。
我学 flutter 的历程和其它语言有些不同 —— 比如学 rust,我直接边看官方文档边写代码,整个过程非常顺畅;而学 flutter,可能是我没有什么移动端开发经验的缘故吧,我读官方文档总有种**「从入门到放弃」**的感觉,于是我便找了一些视频课程来看。
需要的点击文末的 了解更多 自行领取!
我先是跟着** youtube **上的 Flutter Crash Course for Beginners 2020[1] 大致过了一遍。这个课程虽然有差不多 6 个小时,但因为是面对没什么编程基础的听众,所以大部分时候可以用 1.5 倍速看。有些非常基础的内容,如介绍 dart 的部分,甚至可以跳过,自己去看 Learn Dart in Y minutes,就足以满足课程的需要。这个课程介绍了一些非常基础的组件,跟着它我最终完成了一个很简陋的 app。
随后,我又在** B站**上找到了一个叫 卡泰本田6 的免费学习视频的教程。这个教程深入一些,由 开发12年的工程师讲解,主要是介绍概念,往往抛出一些知识后就直接让你自己上手。这个课程不太适合初学者,但因为有大量的习题,可以很好地消化和熟练概念。如果你有一些 react 的经验,通过这门课程掌握 flutter 的基础知识很不错。整个课程因为有大量的练习,所以整体所花的时间大概在 8-12 小时。
有了这两个课程垫底,又读了 flutter gallery 的部分源码,花了些时间深入学习 dart,我对 flutter 算是有了一些基本的了解,下面就谈谈我个人对 flutter 的感悟。
flutter 好在哪里?
和其它跨平台移动应用解决方案不同,flutter 更像是一个游戏引擎,而 flutter 应用是一个披着普通应用外衣的游戏。你可以停下来仔细想想这意味着什么。是的,flutter 构建在一个 2D 图形引擎 Skia 之上。可能很少有人听过 Skia,它是 google 2005 年收购的一家图形引擎公司,由 Michael Reed 创建。有趣的是,05 年 google 还收购了 android。Michael Reed 此人非常低调,我想找和他有关的更多信息却无从下手,这哥们连 LinkedIn 页面都懒得建立。唯一和他有关的消息来自于一篇 2017 年的 techwire 报道:“Inside Google’s Chapel Hill outpost”,里面提到这哥们依旧