乐趣区

关于flutter:2021-关于-Flutter-v2-我整理了16个重要特性

B 站

https://www.bilibili.com/vide…

谷歌开发者官文

https://mp.weixin.qq.com/s/Ez…

7 大平台 -> windows、macos、linux、web、embedded、ios、android

  • https://flutter.gskinner.com/
  • https://github.com/gskinnerTe…

web 平台优化、进入稳定版

  • 3 个方向

    • pwa: 缓存、push 推送服务、桌面快捷、音讯提醒
    • spa: 单页程序相似 vue rect
    • expanding mobile: 疾速迁徙 app、复用代码
  • irobot 构建基于 flutter

https://edu.irobot.com/the-la…

  • 技术架构

2D 3D 渲染 WebGL Skia WebAssembly Canvas

  • 稳固的版本

  • 性能

    • HTML renderer: HTML 渲染器: Uses a combination of HTML elements, CSS, Canvas elements, and SVG elements. This renderer has a smaller download size. 应用 HTML 元素、CSS、Canvas 元素和 SVG 元素的组合
    • CanvasKit renderer: CanvasKit 渲染器: This renderer is fully consistent with Flutter mobile and desktop, has faster performance with higher widget density, but adds about 2MB in download size.
  • 试水我的项目

    • 编辑器
      https://rive.app/
    • 动画
      https://flutterplasma.dev/
    • invoice
      https://www.invoiceninja.com/

canonical 反对

https://medium.com/flutter/an…

https://canonical.com/

Canonical 公司是一个私营公司,由南非的企业家马克·沙特尔沃思创立,次要为了促成开源软件我的项目。Canonical 在马恩岛登记注册,其雇员散布在世界各地,其次要办事处在伦敦,在蒙特利尔也有办事处。Canonical 公司反对并创立了几个我的项目,次要都是自在 / 开源软件(FOSS)或是一些旨在改善自由软件开发者和贡献者的工具。

  • why canonical 鼎力推 flutter !,次要以下几点

    • 快速增长的 flutter 利用
    • 多平台反对
    • 设施优化的好
    • 丰盛的组件库
    • IDE 环境成熟 Visual Studio Code, Android Studio, and IntelliJ
  • 繁难装置

https://snapcraft.io/flutter

$ snap install --classic flutter
$ snap install --classic code
$ code --install-extension dart-code.flutter
  • 疾速模板

$ flutter channel dev
$ flutter upgrade
$ flutter config --enable-linux-desktop

$ flutter create counter
$ cd counter
$ flutter run -d linux

现有我的项目降级

$ cd my_flutter_app
$ flutter create .
  • 代码示例

    • https://github.com/flutter/sa…

    • https://github.com/flutter/ga…

  • 教程 Write a Flutter desktop application

https://codelabs.developers.g…

组件库降级、对 ios 反对增强

  • 新增 iOS 性能

    • CupertinoSearchTextField
      https://api.flutter-io.cn/flu…
    • CupertinoFormSection、CupertinoFormRow 和 CupertinoTextFormFieldRow
      https://api.flutter.cn/flutte…
      https://api.flutter.cn/flutte…
      https://api.flutter.cn/flutte…
    • 整体性能优化
      https://github.com/flutter/fl…
  • 新增 Widget: Autocomplete 和 ScaffoldMessenger

    • AutocompleteCore
      https://github.com/flutter/fl…
    • ScaffoldMessenger
      https://github.com/flutter/fl…

Flutter for Surface Duo & 折叠屏

  • https://docs.microsoft.com/zh…
  • https://docs.microsoft.com/zh…

混合编程

https://flutter.cn/docs/devel…

过来,额定 Flutter 实例的内存占用量与第一个 Flutter 实例雷同。在 Flutter 2 中,咱们将创立额定 Flutter 引擎的动态内存占用量升高了约 99%,使每个实例的占用量大概为 180kB。

Dart Null Safety

Dart 是一种类型平安的语言,这意味着当开发者获取某种类型的变量时,编译器能够保障它是该类型,然而类型平安自身不能保障变量不是 null。

Null errors 十分常见的问题,在 GitHub 上 能够搜寻到成千上万因为 null 导致 Dart 代码出现异常的问题,甚至有成千上万的 commits 试图解决这些问题。

  • https://dartpad.dev/
  • https://nullsafety.dartpad.dev/
void main() {ps(null);
}

void ps(List<String> files) {for (var file in files) {print(file.isEmpty());
  }
}

最初,集体的额定揭示,目前在根目录的 analysis_options.yaml 增加如下配置就能够开启 null safety,另外 Flutter 须要 dart sdk 2.9。

analyzer:
 enable-experiment:
 - non-nullable

flutter fix

  • 统计
dart fix --dry-run
  • 利用
dart fix --apply

flutter DevTools 开发工具降级

  • 性能监控

https://flutter.dev/docs/perf…

.vscode/launch.json

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "flutter_learn_news-1.0.15",
      "request": "launch",
      "type": "dart"
    },
    {
      "name": "profile",
      "request": "launch",
      "type": "dart",
      "flutterMode": "profile"
    }
  ]
}

  • Invert Oversized Images

DevTools 的另一个新性能是可能轻松发现所显示的分辨率低于其理论分辨率的图像,这有助于追踪利用过大和内存占用过多等状况。若要启用此性能,请在 Flutter Inspector 中启用 Invert Oversized Images。

  • 弹性布局

Android Studio/IntelliJ 扩大

咱们也为 IntelliJ 系列 IDE 的 Flutter 插件增加了一些实用于 Flutter 2 的新性能。首先,咱们在其中新增了一个我的项目向导,该向导与 IntelliJ 中的新向导格调统一。

Visual Studio Code 扩大

实用于 Visual Studio Code 的 Flutter 扩大也针对 Flutter 2 进行了优化,咱们首先引入了一些测试加强性能,例如从新运行失败测试的能力。

通过两年的逐渐倒退,对 Dart 的 LSP (语言服务器协定) 反对曾经成为在 Flutter 扩大中将 Dart 分析器集成到 Visual Studio Code 中的默认形式。LSP 反对为 Flutter 开发带来了许多改良,包含在以后的 Dart 文件中利用特定的所有修复,以及可能补全代码以生成残缺函数调用 (包含括号和所需参数) 的能力。

LSP 反对不仅限于 Dart,它还反对 pubspec.yaml 及 analysis_options.yaml 文件中的代码补全。

sentry 降级对 flutter 的反对

https://docs.sentry.io/platfo…

整合了对设施端谬误的收集

upgraded firebase plugins for flutter

https://firebase.flutter.dev/

Flutter Community Plus Plugins

https://plus.fluttercommunity…

google mobile ads for flutter

DartPad 降级到反对 Flutter 2

https://dartpad.dev/

配置 flutter 2

  • 下载 Dev channel (macOS)

https://flutter.dev/docs/deve…

  • fvm 切换

https://github.com/leoafarias…

复制 sdk 到 /Users/{youname}/.fvm/versions

fvm list
fvm use 2.1.0
  • 启用个性
flutter config --enable-macos-desktop
flutter config --enable-windows-desktop
flutter config --enable-linux-desktop
  • 编译
flutter run -d windows
flutter run -d macos
flutter run -d linux
flutter run -d android
flutter run -d ios
flutter run -d web

参考

  • https://flutter.gskinner.com/
  • https://github.com/gskinnerTe…
  • https://mp.weixin.qq.com/s/Ez…
  • https://docs.sentry.io/platfo…
  • https://snapcraft.io/flutter
  • https://plus.fluttercommunity…
  • https://medium.com/flutter/fl…
  • https://rive.app/
  • https://medium.com/flutter/an…
  • https://www.windowscentral.co…
退出移动版