初学者如何高效的学习Flutter?

2020/11/9 8:15:34

本文主要是介绍初学者如何高效的学习Flutter?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

图片描述
为了高效快速学习Flutter初学者可以按照这样的步骤进行学习

  • 走进和认识它
  • 掌握它的语言
  • 掌握它的Widget
  • 熟悉它的状态机制
  • 调试技巧
  • 深入原理
  • 合理利用工具

其中Widget、状态机制、调试技巧以及深入原理在课程后面会有相应的章节进行讲解在这里以我们主要聚焦在走进和认识它掌握它的语言以及合理利用工具这些环节上。

认识Flutter

Flutter 是由Google 开发的一个跨平台UI开发工具包叫它UI开发工具包主要是因为它主要聚焦在UI搭建和渲染层的事情对于本台本身的一些功能比如调用蓝牙、摄像头一般还是需要原生代码去操作。但现在也会有一些第三方库帮我们解决这些问题

Flutter发展简史

从去2018年开始Flutter的热度在不断地上升那么它对很多同学造成了一个误区认为Flutter是最近新兴的一个开发框架。说Flutter是最流行的框架呢是没有任何问题的但它并不是一个最近才出现的开发框架。为什么这么说呢接下来让我们来看看一下Flutter的时间简史

图片描述

  • 2014.10 - Flutter的前身Sky在GitHub上开源
  • 2015.10 - 经过一年的开源Sky正式改名为Flutter低调期
  • 2017.5 - Google I/O正式向外界公布了Flutter这个时候Flutter才正式进去大家的视野
  • 2018.6 - 距5月Google I/O 1个月的时间Flutter1.0预览版
  • 2018.12 - Flutter1.0发布它的发布将大家对Flutter的学习和研究推到了一个新的起点
  • 2019.2 - Flutter1.2发布主要增加对web的支持
  • 2020.5 - Flutter1.17是2020年的第一个稳定版本此版本包括iOS平台Metal支持性能更快新的Material组件新的Network跟踪工具等等

由此开看Flutter在逐渐的走向成熟和壮大它的生态圈也在不断的发展所以现在学习Flutter是正当时

Flutter架构

图片描述
Flutter具有三个主要组成部分

  • 框架层Flutter框架建立在Dart语言的基础上在Flutter中一切UI皆WidgetFlutter有两大不同风格的Widget库一个是基于Material Design材料设计风格的组件库一个是基于cupertino的iOS设计风格的组件库
  • 引擎层Flutter引擎使用的是基于C++的2D图形库称为Skia。 在这一层中提供了Dart VM以提供一个执行环境用于将Dart代码转换为本地平台可执行代码。 Flutter引擎在AndroidiOS中运行以为widget呈现对应的外观并根据特定平台通过Channel进行通信
  • 平台层Flutter根据不同平台提供了其特定的shell即Android Shell和iOS Shell这些shell用来托管Dart VM以提供对特定的平台API的访问

Flutter的开发语言

Flutter是基于Dart语言开发的所以做Flutter开发我们首先要了解设熟悉Dart语言。

Dart是强类型语言静态类型

从Dart2开始Dart便是强类型语言而且是静态类型的这点可以类比JavaC#。

怎么理解呢如果在编译时已知变量的类型则静态键入语言。那么 对于某些语言这意味着作为开发人员必须指定每个变量的类型例如JavaC#;

>主要优点是所有类型的检查都可以由编译器完成因此很早就会发现许多琐碎的错误。

对于移动端同学来说因为Java和Kotlin等都是强类型静态类型语言所以这块会比较容易上手但对于前端开发的同学接触到比较多的编程语言通常是JavaScriptJS是弱类型动态类型语言所以在前端同学在学习Dart的时候一定要分清这两个概念。

Dart是面向对象的语言

Dart是面向对象的语言除Dart外再为大家列举几个面向对象的编程语言Python、C++、Objective-C、Java、Kotlin、Swift、C#、Ruby 与 PHP等。

>如果你有OOP也就是面向对象编程的经验那么学习Dart会很轻松。

对于移动端同学来说因为Java和Kotlin等都是面向对象语言所以学习Dart会轻松些但对于前端同学来说JavaScript不是面向对象的所以学习Dart会有一定的适应过程可以将Dart作为你的第一个面向对象的编程语言进行学习。

Dart的JIT&AOT

  • JIT即时编译开发期间更快编译更快的重载
  • AOT事前编译release期间更快更流畅

Dart支持JIT与AOTJIT全称 Just In Time(即时编译Flutter在开发期间采用的是JIT这样可以做到更快的编译与更快的代码重载但 JIT的劣势也是显而易见的JIT需要在运行时将代码编译成机器码给用户带来的直接感受就是慢你会发现在开发期间装的flutter包会有些卡顿release之后会变好其中一部分原因是因为AOT的存在

AOT全称 Ahead Of Time事前编译典型的例子就是 C/C++能直接编译成机器码也就是二进制代码AOT的优势也是显而易见的事先编译好的二进制代码加载和执行的速度都会非常快。当你的Flutter APP release时采用的是AOT这使得你的APP能够以更快的速度和流畅度来运行。

学习Flutter可以利用的工具

古文《荀子·劝学》中有一句名言君子生非异也善假于物也。所以快速高效的学习一门新知识要善假于物。在这里为大家列举了几种学习Flutter的抓手

  • Flutter学习教程如果你之前还没接触过Flutter或掌握的都是零散的知识那么可以通过学习教程来快速和系统的来学习Flutter并且可以节约你学习时间少走弯路
    • 可选学习教程《Flutter从入门到进阶 实战携程网App》
  • 官方文档Flutter官方文档也是一个了解Flutter的不错的途径但知识比较零散可以上面教程进行互补
    • flutter.dev
  • Flutter插件库Flutter无法实现的一些功能我们可以借助一些插件来实现
    • pub.dev
  • 常见问题学习Flutter的过程中难免会遇到各种各样的问题那么可以借助一些途径来解决
    • stackoverflow的Flutter专区
    • 《移动端架构师成长体系课》的问答区
    • 《Flutter从入门到进阶课》的问答区


这篇关于初学者如何高效的学习Flutter?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程