FlutterFlutter移动开发进阶

2020年超全的Flutter入门教程 | Flutter

2020-01-07  本文已影响0人  LM林慕

此文项目代码:https://github.com/bei-yang/I-want-to-be-an-architect
码字不易,辛苦点个star,感谢!

引言

此篇文章主要涉及以下内容:

  1. 认识 Flutter
  2. Flutter的环境搭建
  3. Flutter的构成

认识Flutter

什么是Flutter

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码⼀起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

口号:

Beautiful native apps in record time

里程碑节点

热门问答

Flutter 和 React Native 有什么不同?

Flutter 用什么语言开发?

“我们”研究了很多语言和运行时,最终采用了 Dart 作为开发框架和 widget 的语言。底层图形框架和 Dart 虚拟机在 C /C++ 中实现。

学习 Flutter 需要哪些必备知识?

我在哪里可以获得 Flutter 学习资源?

Dart语言好学吗?

如果你有编程经验,尤其是了解 Java 或 Javascript ,那么你回发现 Dart 学习起来非常容易,“笔者”只用了两个小时基本就开始愉快的使用 Dart 编码了。

我在哪里可以获得Dart学习资源

Flutter 特点

Flutter框架

Flutter系统架构图

如上图所示为 Flutter 官方给出的系统架构图,可以看出 Flutter 框架分为三层: Framework 层、 Engine 层和 Embedder 层。

Flutter 原理

无论是 iOS 还是安卓都是提供一个平台的 View 给 Flutter 层,页面内容渲染交由Flutter 层自身来完成,所以其相对 React Native 等框架性能更好。 Flutter 中图形渲染流程:

大致流程如下:

  1. GPU 的 Vsync 信号同步到 UI 线程
  2. UI 线程使用 Dart 来构建抽象的视图结构
  3. 视图结构在 GPU 线程中进行图层合成
  4. 合成后的视图数据提供给 Skia 图形引擎处理成 GPU 数据
  5. 数据再通过 OpenGL 或 Vulkan 提供给 GPU 进行渲染

Flutter for Web

Flutter 之所以能够在移动平台上运行,主要是依赖的 Flutter Engine,就是 Flutter 所依赖的运行环境。这就导致在移动平台,只要你使用了 Flutter ,哪怕只用混合开发的模式写了一个页面,这也将为你的 App 增大大约4MB的体积。

而 Flutter for Web,完全是一种全新的模式,它可以将 Dart 编写的现有 Flutter 代码,编译成可嵌入浏览器并部署到任何 Web 服务器的代码。

编译后的代码,完全是基于 HTML、CSS 和 JavaScript 这些标准的 Web 技术,所以它也不需要任何浏览器插件的支持。

早期微软的 Silverlight 和 Adobe 的 Flash 都证明了,一切需要插件才能支持的 Web 应用,都是纸老虎,最终都会被基础的 HTML 技术所替代。

我想这也是 Flutter for Web 选择这种支持方式的一个考量因素。

  1. Flutter_web 的插件还不完善,暂时只提供了最基础的 dart:html 、 dart:js 、 dart:svg 、 dart:indexed_db ,可以通过他们访问绝大多数浏览器的 API。
  2. 并非所有的 Flutter 都在 Flutter_web 上实现了。
  3. Flutter_web 编译还很慢。
  4. 在桌面浏览器上运行,还有一些不足,大部分是基于移动应用的操作特性,而没有对桌面系统的操作习惯进行特殊的优化。
  5. 开发流程目前仅支持 Chrome。

环境搭建

参考Flutter中文网站教程

Mac:https://flutterchina.club/setup-macos/

Windows:https://flutterchina.club/setup-windows/

Linux:https://flutterchina.club/setup-linux/

开发工具配置

参考Flutter中文网站教程

Android Studio:https://flutterchina.club/get-started/editor/#androidsstudio

Vs Code: https://flutterchina.club/get-started/editor/#vscode

项目搭建(Windows为例)

在路径中包含Flutter目录的控制台窗口中(请参见上文),运行以下命令以查看是否需要任何平台依赖项来完成设置:

D:\software\Flutter\flutter>flutter doctor

该命令检查您的环境并显示Flutter安装状态的报告。请仔细检查输出,以了解您可能需要安装的其他软件或要执行的其他任务(以粗体显示)。

接下来介绍如何执行这些任务并完成设置过程。一旦安装了所有缺少的依赖项,就可以 flutter doctor 再次运行命令以验证是否正确设置了所有内容。

上一篇下一篇

猜你喜欢

热点阅读