Flutter入门:从零开始构建跨平台应用
开篇:Flutter 是什么?用来做什么?

你有没有想过,写一次代码,就能在手机、平板甚至电脑上运行?这就是 Flutter 要做的事!
Flutter 是 Google 推出的一个跨平台开发框架。你可以用它来开发:
- 手机 App(支持 Android 和 iOS)
- Web 页面
- 桌面软件(Windows、Mac、Linux)
而且它的界面非常漂亮、性能也很强大。最重要的是,它使用一门简单的编程语言 —— Dart,对于初学者来说非常友好!
环境准备:搭建你的第一个 Flutter 开发环境

🚀 小提示:所有操作都适用于 Windows、Mac 和 Linux。
第一步:安装 Flutter SDK
访问官网 https://flutter.dev,点击 Get Started。
下载与你系统匹配的安装包,然后按照指引解压并设置环境变量。
验证是否安装成功:
flutter doctor
终端会检查你的开发环境是否齐全。如果看到 ✅ 的标志,表示没问题了!
第二步:安装开发工具
推荐使用以下任意一种编辑器:
- Android Studio
- VS Code
在 VS Code 中安装 Flutter 插件步骤如下:
- 打开 VS Code。
- 进入 Extensions(扩展)界面。
- 搜索 “Flutter”,点击安装。
- 同时安装 “Dart” 插件。
安装完成后重启 VS Code。
第三步:创建你的第一个项目
打开终端,输入:
flutter create my_first_app
这行命令会在当前目录下创建一个叫做 my_first_app 的 Flutter 项目。
进入项目文件夹并运行:
cd my_first_app
flutter run
如果你连接了手机,程序就会自动安装到设备上。如果没有,可以启动模拟器或浏览器窗口查看效果。
核心概念:Flutter 入门必须知道的知识点

Flutter 有一套自己独特的“术语体系”。下面我用最简单的方式带你理解几个关键词。
Widget(部件)
Flutter 的整个界面都是由一个个小“积木”组成的,这些“积木”就叫 Widget。
想象你在搭乐高积木:
- 文字是一个 widget;
- 按钮是一个 widget;
- 图片也是一个 widget;
示例:显示一句话
import 'package:flutter/material.dart';
void main() {
runApp(
MaterialApp(
home: Text('你好,Flutter!'),
),
);
}
Scaffold(脚手架)
想做出标准的 App 页面?你需要一个“舞台”——那就是 Scaffold。
它可以帮你快速搭建标题栏、内容区、按钮栏等常见结构。
示例:带标题的页面
home: Scaffold(
appBar: AppBar(title: Text("我的第一页")),
body: Center(child: Text("这是页面正文")),
),
StatelessWidget vs StatefulWidget
这两个是两种最基本的组件类型:
| 类型 | 用途 | 是否可变 |
|---|---|---|
| StatelessWidget | 显示不变的内容 | ❌ 不可变 |
| StatefulWidget | 可以动态更新内容 | ✅ 可以变 |
示例:点击次数计数器(StatefulWidget)
class CounterApp extends StatefulWidget {
@override
_CounterAppState createState() => _CounterAppState();
}
class _CounterAppState extends State<CounterApp> {
int count = 0;
void increment() {
setState(() {
count++;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("计数器")),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text("点击次数:$count", style: TextStyle(fontSize: 24)),
ElevatedButton(
onPressed: increment,
child: Text("点我"),
),
],
),
),
),
);
}
}
实战项目:做一个天气预报 App(简化版)


我们来一步步做个超级简单的“天气预报 App”。
第一步:设计 UI 结构
我们要实现的功能:
- 输入城市名称
- 显示“查询中...”
- 显示模拟的温度数据
TextEditingController cityController = TextEditingController();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("天气预报")),
body: Padding(
padding: EdgeInsets.all(16),
child: Column(
children: [
TextField(
controller: cityController,
decoration: InputDecoration(labelText: "请输入城市名"),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {},
child: Text("查询天气"),
),
SizedBox(height: 20),
Text("气温:-- ℃"),
],
),
),
),
);
}
第二步:添加功能逻辑
将上面的 StatelessWidget 改为 StatefulWidget,并在按钮点击后显示一个随机温度:
onPressed: () {
final temperature = Random().nextInt(40);
setState(() {
this.temperature = temperature;
});
},
加上一个变量 _temperature 并初始化为 -1。
最终你会看到一个完整的“模拟天气预报 App”。
常见问题解答
📌 Q:为什么按下运行没反应?
✅ A:确保已正确配置设备(真机 / 模拟器 / 浏览器)。也可以尝试 flutter doctor 检查是否有缺失依赖项。
📌 Q:Dart 难学吗?
✅ A:不难!它是专门为前端和移动开发优化的语言,语法简洁清晰,适合新手。
📌 Q:Flutter 只能做移动端吗?
✅ A:不是!现在 Flutter 支持 Android/iOS/网页/桌面多端开发。
📌 Q:可以用 Flutter 做游戏吗?
✅ A:虽然不是专为游戏设计,但已经有人用它做出小型游戏了。建议复杂的游戏还是用专门引擎如 Unity。
学习建议:接下来该做什么?
掌握了基础之后,你可以沿着以下几个方向继续深入学习:
UI 组件进阶
- 掌握 Layout 布局技巧(Row, Column, Stack)
- 使用内置主题、图标库美化界面
网络请求 & 数据绑定
- 学习如何调用 API 获取真实天气数据
- 使用 Future 和 async/await 异步处理
状态管理初步
- 理解 InheritedWidget、Provider 等状态管理机制
实战项目挑战
- 尝试做个 Todo List、备忘录 App
- 使用 Firebase 做后台数据同步
发布 App
- 创建签名密钥
- 提交到 Google Play 或 Apple App Store
🎉 总结:
Flutter 正在成为最受欢迎的跨平台开发方案之一。它不仅高效、强大,而且对新手非常友好。只要你肯动手、多写代码,相信不久你就能独立完成自己的 App!
记住一句话:学编程最重要的就是“边学边练”!
如果你想获取完整示例代码或需要答疑,欢迎留言或加入 Flutter 初学者交流群 😊

评论 0