Flutter简介,及鸿蒙版 Flutter简介
做移动端开发时,我们经常会遇到一个问题:Android 要写一套代码,iOS 又要写一套代码。如果还需要支持其他平台,维护成本就会越来越高。
Flutter 就是为了解决这类问题而出现的一套跨平台 UI 开发框架。
Flutter 是什么?
Flutter 是 Google 推出的开源跨平台开发框架,主要使用 Dart 语言开发。
它最大的特点就是:一套代码可以运行在多个平台上。
目前官方 Flutter 可以开发 Android、iOS、Web、Windows、macOS 和 Linux 应用。开发者主要编写 Dart 和 Flutter 代码,再由 Flutter 针对不同平台进行编译和适配。
比如一个简单的 Flutter 页面可能是这样的:
import 'package:flutter/material.dart';
void main() {
runApp(
const MaterialApp(
home: Scaffold(
body: Center(
child: Text("Hello Flutter"),
),
),
),
);
}
这段代码并没有写 Android 的 Kotlin,也没有写 iOS 的 Swift,但同样可以在 Android 和 iOS 上显示一个页面。
这也是 Flutter 最吸引人的地方:大部分 UI 和业务逻辑只需要维护一份。
Flutter 为什么能够跨平台?
Flutter 并不是简单地把 Android 控件换成 iOS 控件。
它有自己的一套 Widget 和渲染体系。
例如我们经常使用的:
Text()
Container()
Row()
Column()
ListView()
这些都是 Flutter 自己提供的组件。
程序运行以后,大致可以理解成:
Dart 代码
↓
Flutter Framework
↓
Flutter Engine
↓
Android / iOS / Windows / macOS ...
Flutter Engine 负责渲染、文字排版、事件处理等底层工作,而不同平台还会有对应的 Platform Embedder,用于让 Flutter Engine 和操作系统结合起来。
所以 Flutter 可以在不同系统上尽量保持一致的界面效果。
另外 Flutter 还有一个很受欢迎的功能——Hot Reload(热重载)。
修改代码之后,不需要每次重新启动整个 App,就能很快看到界面变化,因此开发 UI 时效率很高。
那“鸿蒙版 Flutter”是什么?
这里很容易产生一个误解。
所谓的“鸿蒙版 Flutter”,并不是说 Google 官方 Flutter 已经把 HarmonyOS 加进了官方支持平台。
截至 2026 年,Flutter 官方支持的平台列表仍然主要是 Android、iOS、Web、Windows、macOS 和 Linux,并没有把 HarmonyOS / OpenHarmony 列为官方 Flutter 支持平台。
目前我们平时说的“鸿蒙 Flutter”,主要指 OpenHarmony 社区针对 Flutter 做的适配版本。
OpenHarmony-SIG 维护了类似:
flutter_flutter
flutter_engine
flutter_packages
这样的项目。
其中 flutter_flutter 是在官方 Flutter SDK 基础上增加 OpenHarmony 支持,而 flutter_engine 则是在 Flutter Engine 基础上加入 OpenHarmony 平台相关的适配。
简单理解就是:
官方 Flutter
↓
Android / iOS / Windows ...
而鸿蒙版 Flutter 相当于:
官方 Flutter
↓
OpenHarmony 社区进行适配
↓
OHOS Flutter SDK
↓
HarmonyOS / OpenHarmony
也就是说,Flutter 本身的开发模式并没有完全改变,开发者依然可以写:
Text("Hello HarmonyOS")
依然使用 Dart,依然使用 Flutter 的 Widget。
主要变化发生在 Flutter SDK、Engine、构建工具以及系统接口适配这一层。
开发鸿蒙 Flutter 有什么不同?
普通 Flutter 创建项目时可能会指定 Android、iOS 等平台。
鸿蒙适配版本增加了 ohos 平台,例如:
flutter create --platforms ohos hello_flutter
编译时还可以生成鸿蒙应用使用的 HAP:
flutter build hap
OpenHarmony-SIG 的 Flutter SDK 已经提供了相关的 Flutter Tools 支持。
项目结构大概也会变成:
hello_flutter/
├── lib/
│ └── main.dart
├── android/
├── ios/
└── ohos/
其中:
lib/
依然主要放我们的 Dart 和 Flutter 业务代码。
而:
ohos/
则负责鸿蒙平台相关的工程配置、权限、签名以及原生代码。
最大的问题其实是插件
如果只是写普通 Flutter UI,那么迁移到鸿蒙 Flutter 通常比较容易。
真正麻烦的地方往往是第三方插件。
比如:
dio
provider
bloc
get
这类主要由 Dart 实现的库,因为并不严重依赖 Android 或 iOS 系统接口,通常比较容易继续使用。
但是像:
camera
webview
定位
蓝牙
扫码
文件选择
通知
地图
这些插件往往需要调用操作系统提供的能力。
例如一个 Flutter 相机插件,传统版本底层可能只有:
Flutter
↓
Android Camera API
和:
Flutter
↓
iOS AVFoundation
到了鸿蒙就需要额外实现:
Flutter
↓
HarmonyOS Camera API
所以很多 Flutter 项目迁移鸿蒙时,最大的工作并不是修改 Dart 页面,而是检查自己使用的插件有没有鸿蒙版本。实际迁移案例中也通常会把纯 Dart 插件直接复用,而对依赖系统底层能力的插件进行鸿蒙适配。
Flutter 和 ArkUI 有什么区别?
如果是纯鸿蒙应用开发,通常还会听到 ArkTS 和 ArkUI。
可以简单理解为:
ArkTS + ArkUI
→ 鸿蒙原生开发
而:
Dart + Flutter
→ 跨平台开发
如果一个项目只准备做 HarmonyOS,那么直接使用 ArkTS 和 ArkUI,通常能获得更直接的系统 API 支持。
但如果一个项目本来就有 Android 和 iOS 的 Flutter 版本,现在又需要增加鸿蒙版本,那么鸿蒙 Flutter 就很有吸引力。
因为理想情况下:
┌→ Android
│
一套 Flutter ├→ iOS
│
└→ HarmonyOS
大量页面、网络请求、数据处理和业务逻辑都可以继续复用。
总结
Flutter 的核心思想其实非常简单:
使用 Dart 和一套 Flutter UI 代码,尽可能运行在多个平台上。
而所谓的鸿蒙版 Flutter,本质上是在 Flutter 原有架构上增加了对 OpenHarmony / HarmonyOS 平台的适配。
它并不是一种全新的开发框架,也不是把 Flutter 改成 ArkTS,而是希望让原来的 Flutter 开发方式继续工作:
Dart
+
Flutter Widget
+
Flutter Engine
+
鸿蒙平台适配
对于已经使用 Flutter 的项目来说,这意味着在增加鸿蒙版本时,有机会继续复用原来的 UI 和业务代码。
当然,目前鸿蒙 Flutter 的生态完善程度还不能简单等同于 Android 和 iOS,尤其是涉及相机、地图、蓝牙、WebView 等平台插件时,仍然需要重点确认兼容情况。
但从跨平台开发的角度来看,Flutter 能够继续扩展到鸿蒙平台,本身就是一个相当值得关注的方向。
- 点赞
- 收藏
- 关注作者
评论(0)