Flutter
Flutter — 用于 iOS 和 Android 的移动应用开发框架。
技术栈组成
为什么
Flutter 直接通过 Skia/Impeller GPU 画布渲染,从单一 Dart 代码库交付一致的 60-120fps UI。Dart AOT 直接编译为原生 ARM,避免 JIT 开销。热重载保持快速迭代,widget 树完全声明式。Flutter 已被 Google Pay、BMW 和阿里巴巴(闲鱼)用于生产环境。
何时使用
用于共享代码库的跨平台 iOS+Android UI 密集型应用。当需要大量平台原生 API 集成(后台服务、BLE、深度系统钩子)或产品以 Web 为主时避免 — Flutter Web 的 SEO 和 DOM 互操作较弱。
如何做
示例
常见问题
- ⚠Flutter SDK 版本不匹配 — 在 pubspec.yaml 中锁定版本
- ⚠iOS CocoaPods 依赖冲突 — 运行 flutter clean && pod install
- ⚠应用二进制体积过大 — 使用 --split-per-abi 并 tree-shake 图标
最佳实践
- ✓使用 Flutter DevTools 分析 widget 重建和内存
- ✓启用 impeller 渲染器(自 Flutter 3.10 起默认)以获得更流畅的动画
- ✓使用 const 构造函数以避免不必要的 widget 重建
常见问题解答
什么是Flutter?适合做什么项目?
Flutter — 用于 iOS 和 Android 的移动应用开发框架。 它通过分层组合提供端到端类型安全与开箱即用的部署体验,适合从 MVP 到生产 SaaS 的快速迭代。
如何用Flutter在 10 分钟内跑通一个 demo?
两步起步:① flutter create myapp;② cd myapp。先跑通本地 dev server,再接一个真实数据源验证端到端链路。
Flutter 最常见的坑是什么?怎么避免?
最高频的坑是:Flutter SDK 版本不匹配 — 在 pubspec.yaml 中锁定版本。避免方法:在 PR 模板里加入对应 checklist,CI 中跑类型检查 + lint + 单测,三重把关再合并。
Flutter 的最佳实践有哪些?
Flutter 的最佳实践包括:使用 Flutter DevTools 分析 widget 重建和内存;启用 impeller 渲染器(自 Flutter 3.10 起默认)以获得更流畅的动画;使用 const 构造函数以避免不必要的 widget 重建。其中首条「使用 Flutter DevTools 分析 widget 重建和内存」应在项目初始化时就落地,避免后期返工。
什么情况下不该选Flutter?
三种情况另选他栈:① 团队对该栈核心框架零经验且工期紧张(学习曲线风险);② 项目是纯内容/营销站(选 Astro 更轻);③ 需要极高吞吐(>1 万 RPS)或强一致微服务(选 Go/Rust)。Flutter 的强项是中高复杂度全栈与 API,别在简单静态页上过度工程。