前言

“小步快跑、快速迭代”的开发大环境下,“一套代码、多端运行”是很多开发团队的梦想,美团也一样。他们做了很多跨平台开发框架的尝试:React Native、Weex、PWA 等等。但都没有得到很好的解决,直至遇到Flutter。

Flutter 提供了一整套从底层渲染逻辑到上层开发语言的完整方案,有跨平台、高保真、高性能等优点。因此从发布开始,热度一路攀升,受到开发者们的热切青睐,也有了 阿里闲鱼、今日头条、腾讯 Now 等在内的一众知名商业案例。

我曾跟很多前端、Android、iOS 的开发者聊过,其中超过 80% 的人告诉我他正在或打算学 Flutter ,但他们中的大部分都遇到了这些问题:

1、Flutter 从语言到开发框架都是全新的,技术栈的积累必须从头开始,学起来很费力。

2、看了很多关于 Flutter 的教程,可它们都太重视应用层 API 各个参数的介绍或实现细节,感觉无从下手。

想学好 Flutter,不应该仅停留细节层面,更要深入它的原理、设计思路和通用理念。

分享一张我收藏的 Flutter 核心知识图谱,里面涵盖了开发、调试、测试、发布、线上运维及工程管理。只要你能掌握下面80%的知识点,绝对可以搞懂 Flutter。

Flutter 的优点

从出身来说,Flutter 是谷歌的,所以对于 Android 开发者来说,从开发环境上来说,上手要容易很多。

其次, Flutter 目前的更新与迭代非常频繁,在 3 月份发布了 Flutter的 2.0 版本,支持了Android、iOS、Windows、macOS、Linux 平台,甚至未来可以会被嵌入到一些智能设备:电视、智能家居甚至汽车。

回归到技术层面,大家都知道以前比较热门的跨端框架是 React Native,实现原理主要是利用 js 将页面上的控件转化为原生控件,这样就带来了很多问题,例如新控件的适配,以及不同平台控件的差异性没法磨平,一个页面Android、iOS展示效果有差异,UI 同学不会同意吧。

而 Flutter 彻底改变了之前「转化」的思路,采用了全新的 Widget,完全自己绘制,屏蔽掉平台的差异性。

最后,Flutter 整个社区的活跃度非常高,出问题有地方查,有大厂分享最佳实践,不香吗?

找工作的加分项

Flutter目前也是Android开发岗位的加分项,下面是我在Boss上面搜到的一部分招聘信息。

通过上图我们可以看出,很多大厂在高薪招聘这方面的人才,Flutter 确确实实可以成为我们找工作的一个帮助。

Android开发该如何快速上手Flutter?

我们可以利用 Flutter 官方网站的教程,搭建好环境,写出一些 Demo 示例,在此之后需要了解如何混合开发,“万物皆 Widget”到底怎么理解?对于 State 的理解等原理知识...

这些对我们Android开发来说都有一定的难度。

为了让大家快速无痛上手 Flutter,给大家分享一份阿里大神总结的《Flutter进阶学习笔记》。

整理大纲

  • 为什么Flutter是跨平台开发的终极之选

  • 在Windows上搭建Flutter开发环境

  • 编写您的第一个 Flutter App

  • Flutter开发环境搭建和调试

  • Dart语法篇之基础语法(一)

  • Dart语法篇之集合的使用与源码解析(二)

  • Dart语法篇之集合操作符函数与源码分析(三)

  • Dart语法篇之函数的使用(四)

  • Dart语法篇之面向对象基础(五)

  • Dart语法篇之面向对象继承和Mixins(六)

  • Dart语法篇之类型系统与泛型(七)

  • Flutter中的widget

第一章 为什么Flutter是跨平台开发的终极之选

  • 这是为什么?

  • 跨平台开发

  • 什么是 Flutter

  • Flutter 的特性

  • Flutter 构建应用的工具

  • 使用 Flutter 构建的热门应用

  • 构建 Flutter 应用的成本

  • ……

第二章 在Windows上搭建Flutter开发环境

  • 使用镜像

  • 系统要求

  • 获取Flutter SDK

  • 编辑器设置

  • Android设置

  • 起步: 配置编辑器

  • 起步: 体验

  • 体验热重载

  • 创建新的应用

  • 运行应用程序

  • ……

第三章 编写您的第一个 Flutter App

  • 第1步: 创建 Flutter app

  • 第2步: 使用外部包(package)

  • 第3步: 添加一个 有状态的部件(Stateful widget)

  • 第4步: 创建一个无限滚动ListView

  • 第5步: 添加交互

  • 第6步: 导航到新页面

  • 第7步:使用主题更改UI

  • ……

第四章 Flutter开发环境搭建和调试

  • 开发环境的搭建

  • 模拟器的安装与调试

  • 开发环境的搭建

  • 模拟器的安装与调试

  • ……

第五章 Dart语法篇之基础语法(一)

  • Hello Dart

  • 数据类型

  • 变量和常量

  • 集合(List、Set、Map)

  • 流程控制

  • 运算符

  • 异常

  • 函数

  • ……

第六章 Dart语法篇之集合的使用与源码解析(二)

  • List

  • Set

  • Map

  • Queue

  • LinkedList

  • HashMap

  • Map、HashMap、LinkedHashMap、SplayTreeMap区别

  • 命名构造函数from和of的区别以及使用建议

  • ……

第七章 Dart语法篇之集合操作符函数与源码分析(三)

  • Iterable

    Iterable类关系图

    Iterable类方法图

  • forEach

    介绍

    使用方式

    源码解析

  • map

    介绍

    使用方式

    源码解析

  • any

    介绍

    使用方式

    源码解析

  • every

    介绍

    使用方式

    源码解析

  • where

    介绍

    使用方式

    源码解析

  • firstWhere和singleWhere和lastWhere

    介绍

    使用方式

    源码解析

  • join

    介绍

    使用方式

    源码解析

  • take

    介绍

    使用方式

    源码解析

  • takeWhile

    介绍

    使用方式

    源码解析

    ……

第八章 Dart语法篇之函数的使用(四)

  • 函数参数

  • 匿名函数(闭包,lambda)

  • 箭头函数

  • 局部函数

  • 顶层函数和静态函数

  • main函数

  • ……

第九章 Dart语法篇之面向对象基础(五)

  • 属性访问器(accessor)函数setter和getter

  • 面向对象中的变量

  • 构造函数

  • 抽象方法、抽象类和接口

  • 类函数

  • ……

第十章 Dart语法篇之面向对象继承和Mixins(六)

  • 类的单继承

  • 基于Mixins的多继承

  • ……

第十一章 Dart语法篇之类型系统与泛型(七)

  • 可选类型

  • 接口类型

  • 泛型

  • 类型具体化

  • ……

第十二章 Flutter中的widget

  • Flutter页面-基础Widget

  • Widget

  • StatelessWidget

  • Stateful Widget

  • State生命周期

  • 基础widget

  • 文本显示

  • ……

由于篇幅有限,进截图展示部分内容,朋友们如果有需要完整版学习手册,可以到我的【Github】阅读下载.

特别认同一句话:只有拥抱变化,才能比别人更早发现机会。

没有谁甘愿薪资增长缓慢或一直被无情压榨,或早或晚我们都会走上进阶之路。与其被动接受,不如主动出击,先争取成为技术强+思维深+视野广的工程师,机会来临时才能从容不迫地顺应而上,比别人更快一步。

爱了!阿里大神最佳总结“Flutter进阶学习笔记”,理论与实战的更多相关文章

  1. 爱了,字节跳动大神最佳整理:582页Android NDK七大模块学习宝典,理论与实践

    前言 时至今日,短视频App可谓是如日中天,一片兴兴向荣.随着短视频的兴起,音视频开发也越来越受到重视,而且薪资水涨船高,以一线城市为例,音视频工程开发的薪资比Android应用层开发高出40%. 但 ...

  2. 阿里大神favoorr提供的书单

     Thoughtwoks中国的推荐书单 <http://www.douban.com/doulist/2012097/ >新浪微博-秦迪 <http://blog.2baxb.me/ ...

  3. 看看大神 Paul Graham 对如何学习编程的回答

    前言 我翻阅自己之前写的博客文章,发现在 2015 年我刚开始学习编程的时候,翻译了一段 Paul Graham 关于"How can I learn to program?"的回 ...

  4. Python 最佳实践指南 2018 学习笔记

    基础信息 版本 Python 2.7 Python 3.x Python2.7 版本在 2020 年后不再提供支持,建议新手使用 3.x 版本进行学习 实现 CPython:Python的标准实现: ...

  5. 《Hadoop大数据架构与实践》学习笔记

    学习慕课网的视频:Hadoop大数据平台架构与实践--基础篇http://www.imooc.com/learn/391 一.第一章 #,Hadoop的两大核心:     #,HDFS,分布式文件系统 ...

  6. GIS-"地理空间大数据与AI的碰撞"学习笔记

    1.关系 人工智能>机器学习>神经网络>深度学习 2.机器学习-两个过程 训练/学习过程:样本数据.学习器.模型参数 测试/预测过程:预测.预测值 3.神经网络 机器学习模拟人脑神经 ...

  7. 大数据学习笔记——Hadoop编程实战之Mapreduce

    Hadoop编程实战——Mapreduce基本功能实现 此篇博客承接上一篇总结的HDFS编程实战,将会详细地对mapreduce的各种数据分析功能进行一个整理,由于实际工作中并不会过多地涉及原理,因此 ...

  8. 大数据学习笔记——Hadoop编程实战之HDFS

    HDFS基本API的应用(包含IDEA的基本设置) 在上一篇博客中,本人详细地整理了如何从0搭建一个HA模式下的分布式Hadoop平台,那么,在上一篇的基础上,我们终于可以进行编程实操了,同样,在编程 ...

  9. 阿里云server改动MySQL初始password---Linux学习笔记

    主要方法就是改动 MySQL依照文件以下的my.cnf文件 首先是找到my.cnf文件. # find / -name "my.cnf" # cd /etc 接下来最好是先备份my ...

随机推荐

  1. 对volatile的理解--从JMM以及单例模式剖析

    请谈谈你对volatile的理解 1.volitale是Java虚拟机提供的一种轻量级的同步机制 三大特性1.1保证可见性 1.2不保证原子性 1.3禁止指令重排 首先保证可见性 1.1 可见性 概念 ...

  2. 聊一聊我在 B 站自学 Java 的经历吧

    Hey guys ,这里是 cxuan,欢迎你收看我最新一期的文章. 这是一篇鸽了很久的文章...... 事情还要从上回说起...... 我爱 B 站! 这篇文章我汇总了 B 站上计算机基础(操作系统 ...

  3. 【译】在运行时编辑代码的 .NET 热重载

    今天,我们很高兴向你介绍 Visual Studio 2019 中 16.11(预览版1)中的 .NET 热重载(通过 .NET 6(预览版4)中的 dotnet watch 命令行工具).在这篇文章 ...

  4. 计算机、程序和java简介

    内存 计算机的内存是由一个有序的字节序列组成,用于存储程序及程序需要的数据.你可以将内存想象成计算机执行程序的工作区域.一个程序和它的数据在被CPU执行前必须移到计算机的内存中. 每个字节都是有一个唯 ...

  5. SonarQube插件

    关于插件我本身使用不多,如果看不惯英文界面,那么就先装个中文插件吧. 或者上微软的官方网站进行下载 将下载的插件上传到自己的sonarqube的服务的机器上,放置插件目录下,重启sonarqube即可 ...

  6. webpack(5)webpack处理css文件

    css文件处理-准备工作 (以下项目配置都是基于上一篇webpack(4)的基础上) 在项目开发中,我们必然需要添加很多的样式,而样式我们往往写到一个单独的文件中. 这里我们就在src目录中创建一个n ...

  7. Java核心基础第3篇-Java流程控制

    Java流程控制 本章一起来探讨下Java的流程控制语句.主要从以下几个方面展开: Java分支语句 Java循环语句 Java其实和其他任何的开发语言一样,分支语句和循环语句是必不可少的,有个这两个 ...

  8. 升级IDEA后Lombok不能用了,如何解决?

    今天到工作室比较晚,在电脑前吃着早饭,看到提示IDEA提示升级,寻思已经有好久没有升过级了.一样等着,就升级下吧. 升级完毕重启之后,突然发现好多错误,原来的应用也没法启动了.仔细一看报错信息,是由于 ...

  9. 获取 Windows 密码「GitHub 热点速览 v.21.28」

    作者:HelloGitHub-小鱼干 安全问题一直是 GitHub 的一大热点,因为数据安全问题诞生的各类自托管服务便是.而本周周榜上的 2 个和安全主题相关的项目,有些不同.mimikatz 是个老 ...

  10. docker下创建redis cluster集群

    概述 在Redis中,集群的解决方案有三种 主从复制 哨兵机制 Cluster Redis Cluster是Redis的分布式解决方案,在 3.0 版本正式推出. 准备工作 1.确定本机IP地址 2. ...