<返回目录     Powered by claud/xia兄

第1课:Flutter基础入门

环境搭建、第一个应用、核心概念理解

📋 学习前提

🎯 课程目标

通过本课程,你将能够:

🚀 什么是Flutter?

Flutter是Google推出的开源UI工具包,用于构建美观、快速的原生应用。它使用Dart语言开发,具有以下核心特点:

核心优势

💡 重要概念:声明式UI

Flutter采用声明式UI编程范式,这意味着你描述UI应该是什么样子,而不是如何构建它。这与传统的命令式UI(如Android的XML布局)有本质区别。

🛠️ 环境搭建步骤

步骤1:安装Flutter SDK

访问 Flutter官网 下载对应操作系统的SDK:

  • Windows:下载flutter_windows_xxx.zip,解压到合适位置
  • macOS:下载flutter_macos_xxx.zip,解压到合适位置
  • Linux:下载flutter_linux_xxx.tar.xz,解压到合适位置

步骤2:配置环境变量

将Flutter的bin目录添加到系统PATH环境变量中:

# Windows PowerShell $env:PATH += ";C:\path\to\flutter\bin" # macOS/Linux export PATH="$PATH:/path/to/flutter/bin"

步骤3:安装IDE

推荐使用以下IDE之一:

  • Android Studio:官方推荐,功能完整
  • Visual Studio Code:轻量快速,插件丰富
  • IntelliJ IDEA:功能强大,适合大型项目

步骤4:安装Flutter和Dart插件

在IDE中安装必要的插件:

  • Flutter插件:提供Flutter开发支持
  • Dart插件:提供Dart语言支持

步骤5:运行flutter doctor

验证安装是否成功:

flutter doctor

这个命令会检查你的开发环境并给出修复建议。

💡 提示

如果遇到Android SDK相关问题,确保已安装Android Studio并配置好Android SDK。

📱 创建第一个Flutter应用

创建新项目

# 创建新项目 flutter create my_first_app # 进入项目目录 cd my_first_app # 运行应用 flutter run

项目结构解析

创建的项目包含以下重要文件和目录:

my_first_app/ ├── lib/ │ └── main.dart # 应用入口文件 ├── android/ # Android平台相关代码 ├── ios/ # iOS平台相关代码 ├── test/ # 测试文件 ├── pubspec.yaml # 项目配置文件 └── README.md # 项目说明

理解main.dart文件

打开lib/main.dart文件,这是Flutter应用的入口:

import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: const MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({super.key, required this.title}); final String title; @override State createState() => _MyHomePageState(); } class _MyHomePageState extends State { int _counter = 0; void _incrementCounter() { setState(() { _counter++; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const Text('You have pushed the button this many times:'), Text( '$_counter', style: Theme.of(context).textTheme.headlineMedium, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: const Icon(Icons.add), ), ); } }
💡 核心概念解析
  • main()函数:Dart程序的入口点
  • runApp():启动Flutter应用,传入根Widget
  • StatelessWidget:无状态组件,UI不会改变
  • StatefulWidget:有状态组件,UI可以动态变化
  • setState():通知Flutter框架重新构建UI

🔥 热重载(Hot Reload)

热重载是Flutter开发中最强大的功能之一:

如何使用热重载

热重载的限制

💡 最佳实践

对于需要完全重启的情况,使用热重启(Hot Restart):在终端中按R键(大写)。

📚 实践练习

练习1:修改计数器应用

尝试修改计数器应用:

  1. 修改应用标题为"我的第一个应用"
  2. 将按钮颜色改为红色
  3. 添加一个减少计数的按钮
  4. 修改文本显示样式

练习2:创建自定义界面

创建一个简单的个人信息展示界面:

  1. 显示姓名、年龄、职业
  2. 添加头像图片
  3. 使用不同的文本样式
  4. 添加背景颜色

🔍 常见问题解答

Q: Flutter doctor显示错误怎么办?

A: 根据错误信息逐一解决,常见问题包括:Android SDK未安装、许可证未接受、模拟器未配置等。

Q: 应用无法在模拟器上运行?

A: 确保模拟器已启动,或使用flutter devices命令查看可用设备。

Q: 热重载不工作?

A: 检查是否在调试模式下运行,某些修改需要热重启才能生效。

📖 总结

在本课程中,我们学习了:

现在你已经具备了Flutter开发的基础环境,准备好进入下一课程学习Dart语言基础!