Skip to content
返回技术栈推荐

Flutter

Flutter — 用于 iOS 和 Android 的移动应用开发框架。

移动端复杂

技术栈组成

FrameworkFlutter 3.27
LanguageDart 3.6
Buildflutter build

为什么

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 互操作较弱。

如何做

1. flutter create myapp 2. cd myapp 3. flutter run 4. flutter build apk / flutter build ios

示例

// Flutter widget import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return const MaterialApp( home: Scaffold( body: Center(child: Text('Hello Flutter')), ), ); } }

常见问题

  • ⚠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,别在简单静态页上过度工程。