flutter初步了解和常用网站

  1. Flutter的简单介绍
  2. UI 组件
  3. 架构设计
  4. sdk 源码目录
  5. widget 分类

Flutter的简单介绍

Flutter不是一门语言,而是一个 跨平台的 UI 框架(工具 + SDK)。

用它,你只需要写一套代码,就能同时做:

  • 安卓 APP
  • iOS APP
  • Web 网页
  • Windows/Mac/Linux 桌面应用

Flutter 自己不发明新语言,它用的是 Dart 语言(Google 也造的)。

写的 Flutter 代码,本质就是 Dart + Flutter 提供的各种 UI/功能库

UI 组件

Flutter的UI文档:https://docs.flutter.dev/ui/widgets

可视化展示UI组件的网站:

  • https://www.flutter-gallery.com/

    一个简洁的网站,收集并展示了大量 Flutter 官方 Widget 示例,覆盖按钮、输入框、对话框、工具提示等常用 UI 控件。

  • https://www.fluwix.com/

    一个多平台的 Flutter showcase 平台,展示各类 Widget 或模块的应用效果。你可以在网页上浏览示例,并查看 Flutter 在移动与 Web 上的表现。

  • https://fluttersuro.com/

    一个类似 Dribbble 的社区平台,专门为 Flutter 开发者提供 UI 展示和灵感分享的空间。

    特点:社区驱动,支持上传 UI 截图/演示 + 贴代码片段,集成 DartPad,可在线运行代码查看效果。

  • https://x-wei.github.io/flutter_catalog

架构设计

Flutter 的架构设计可以简单分为三层,各自负责不同的功能,下面用通俗的语言来讲解:

  1. Framework(框架层,绿色部分) :这是 Flutter 的上层,基于 Dart 语言开发,主要提供给开发者使用的工具和组件。

    • Material 和 Cupertino:提供 Android 和 iOS 风格的界面组件,让你快速打造原生感的用户界面。
    • Widgets:所有界面元素的基础,像积木一样组合起来构建界面。
    • Rendering:负责把这些积木渲染成屏幕上的画面。
    • Animation、Painting、Gestures:分别处理动画效果、绘制内容和用户的手势操作。
    • Foundation:底层支持,提供了很多基础功能,确保一切正常运行。
  2. Engine(引擎层,蓝色部分) :这是 Flutter 的核心,用 C++ 编写,负责底层的性能和与设备交互。

    • Flutter用的引擎:https://skia.org/

    • Service Protocol、Composition、Platform Channels:处理通信、画面合成和与设备平台的交互。

    • Dart Isolate Setup 和 Dart Runtime Mgmt:管理 Dart 代码的运行环境,确保多线程安全。

    • Rendering、Frame Scheduling、Frame Pipelining:优化画面的渲染和帧率,让动画流畅。

    • System Events、Asset Resolution、Text Layout:处理系统事件、资源加载和文字排版。

  3. Embedder(嵌入层,橙色部分) :这是平台特定的部分,负责将 Flutter 嵌入到不同设备上。

    • Render Surface Setup 和 Thread Setup:设置渲染界面和线程管理。
    • Native Plugins 和 Event Loop Interop:支持原生插件和事件循环,与设备原生功能对接。
    • App Packaging:打包应用,适配不同平台。

sdk 源码目录

目录:../packages/flutter/lib/src

名称 说明
Foundation 基础部分
Animation 动画
Painting 边框绘制、颜色、裁剪图像处理、画笔、插值器等跟绘制、图像、装饰相关的类
Gestures 事件类、长按、触摸、放大等等
Rendering 渲染 Widget 的基础库
Widget 依赖 Rendering 层进行构建,Widget 是 Flutter 的核心
Material Android 平台的风格
Cupertino iOS 平台风格的扁平化

widget 分类

×

喜欢就点赞,疼爱就打赏