用途:Flutter 是 Google 的 UI 工具包,用 Dart 语言从单一代码库构建移动、Web、桌面端原生编译应用,通过 Skia/Impeller 渲染高性能、像素级精确的界面。适用于高保真跨平台应用、自定义品牌与动画体验、快速原型迭代(亚秒级 Stateful Hot Reload)以及统一的多屏企业应用。
主要能力:声明式不可变组件树(Widget/Element/RenderObject 架构);Bloc/Cubit 等事件驱动状态管理;自定义绘制与复杂交互画布;通过 MethodChannel 实现 Dart 与 Swift/Kotlin 的双向异步平台通道;go_router 路由配置。
使用方式:以 main.dart 入口运行应用,用 MaterialApp.router 配置路由,通过 BlocProvider 注入状态,用 context.read/watch 或 BlocBuilder 消费状态。常见架构模式包括按功能优先组织目录(features/auth、features/products、shared)以及基于仓库的 Clean Architecture,将 UI 与数据源解耦。
最佳实践:广泛使用 const 构造函数、启用 Impeller 引擎、将大型 build 方法拆分为子组件、在 analysis_options.yaml 中启用 flutter_lints 或 very_good_analysis。避免在 build() 中执行异步操作、在根组件滥用 setState、硬编码固定像素尺寸。
常见问题:RenderFlex 溢出可用 Expanded/Flexible/SingleChildScrollView 解决;ProviderNotFoundException 需确保 BlocProvider 包裹访问组件;LateInitializationError 需保证初始化;ListView 无界高度需用 Expanded 或 SizedBox 包裹。
限制:资料未提供收费、价格、平台支持范围或性能数据等具体信息。