Android 程序员入坑 Flutter

作者: 泽毛 | 来源:发表于2019-07-08 21:11 被阅读153次

一、前言

闲来无事,花了两个多星期入了Flutter的坑,总结了一下这段时间学到的东西以及学习过程中看过的资料,也是想看看自己有哪些遗漏的地方,感谢网上的各位大神。

框架搭好了,之后也会根据总结好的知识体系,写一些自己的文章。

二、准备工作

2.1 Dart 语言

学习下来,Dart语言很多地方和Java都很类似,对于Android程序员来说没有什么难度。我学习的时候主要关注的几点:

  • 变量定义
  • 函数定义(可选参数是最常用的点)。
  • 类(构造函数定义的一些变种)
  • 一些Java中没有遇到的操作符,例如?.expr1 ?? expr2b ??=1
  • ListMap等数据结构的定义方式。
  • 单例的实现方式。

推荐文章

2.2 找一篇完整的教程

找到一篇完整的教程,从头到尾的跟着学习一遍,不要看独立的博客,有助于对整个Flutter涉及的方面有一个整体的认识

在学习完之后,再去针对有疑问的点去针对性地学习。我是跟着下面这篇教程学下来的,受益匪浅,感谢!

推荐文章

三、知识点拆解

经过了上面两步准备工作,就开始对知识点进行拆解,找一个笔记软件,按照拆解的分类,无论是别人写的,还是自己总结的,都要形成“知识组块”填入到脑海中,才不容易遗忘。

3.1 Widget

Widget的学习是单独的体力活,这里分为两步:

  • 第一步:了解一些Android中没有的概念
    • StatelessWidgetStatefullWidget的对比。
    • BoxConstraints的概念。
  • 第二步:采用类比的思维,在Android中,我们有ViewGroup/View,在Flutter中也一样,将控件分为MultiChild/SingleChild的方式针对性地学习,这里不建议花太多的时间,大家可以找一些在项目中做过的比较复杂的界面,试着用 Flutter的方式写一遍,找找感觉就好。

大家可以把下面阿里巴巴提供的应用下载下来,用到控件的时候去看它是怎么实现的。

推荐文章

3.2 资源导入

  • 资源导入,分辨率的适配。
  • 第三方插件导入

推荐文章

3.3 动画

动画的话简单的看 Flutter 实战 中这部分的代码就行了,主要了解动画组成,掌握:

  • 单个、组合动画。
  • 页面跳转动画。
  • 共享元素动画。

推荐文章

3.4 自定义组件

这部分和Android的很类似,如果之前有自定义组件的经验,那么肯定不成问题。

3.5 手势处理

手势处理目前只是简单地了解了系统提供的API等,实现自定义的手势监听还等待研究。

3.6 异步操作

Android里面,异步操作的工具五花八门,AsyncTaskHandlerThread,但是在Flutter里面,一个async/await就解决问题了,主要掌握下面几点:

  • Flutter的事件模型,isolate的概念。
  • Future的概念。
  • async/await的使用方式,以及他们在事件循环中运行的时间点。
  • isolate之间如何通信。
  • RxDart的用法,这个和RxJava很类似,如果之前学过的应该很容易能够掌握。

推荐文章

3.7 路由

掌握页面间跳转和传递参数的方式。

推荐文章

Flutter 实战之路由管理

3.8 数据操作

数据操作分为以下几类,都有开源的包可以使用,查看说明文档即可。

3.9 Flutter 与 Native 的通信

  • FlutterNative之间如何进行数据和方法的传递。
  • 如何在Flutter中嵌入Android View

参考文章

3.10 状态管理

mclzone 写的一系列关于状态管理的文章很棒!看完之后就明白了,没有再看过其它的文章。

推荐文章

3.11 国际化

国际化的掌握分为三步:

推荐文章

3.12 进阶

(1) 编译 & 打包原理

(2) 初始化流程

(3) 绘制框架分析

ad6623 - 掘金 写的下面这系列关于渲染流水线的文章很棒,我每篇都边看边画流程图跟着学了下来,虽然很痛苦,但是收货很大,感谢!

(4) 绘制框架的一些补充文章

(5) Dart

3.13 看一下实际的 App 是如何实现的

3.14 性能优化

刚入门,还没到性能优化的地步,还需继续努力。= =

3.15 打包 & 发布

四、小结

当然,这只是一篇入门的教程,离工程化的标准还很远,这种只能到项目中实践了。

相关文章

网友评论

    本文标题:Android 程序员入坑 Flutter

    本文链接:https://www.haomeiwen.com/subject/nphzhctx.html