Flutter 学习笔记 - 搭建(macOS 版)

📌 本文记录我第一次使用 Flutter 时的本地环境搭建过程,包括 SDK 安装、环境变量配置、遇到的问题及解决方案,适合刚入门 Flutter 的开发者参考。

🧱 一、我的开发环境

  • 系统环境:macOS 15.2(Sequoia)
  • Flutter SDK:3.32.8(stable channel)
  • IDE:VS Code(也支持 Android Studio)
  • Node.js:已安装(辅助工具链)

📦 二、下载并安装 Flutter SDK

✅ 步骤 1:下载 Flutter SDK

从官方获取最新稳定版本:

docs.flutter.dev/get-started...

下载 flutter_macos_3.32.8-stable.zip 并解压:

bash 复制代码
cd ~/Downloads
unzip flutter_macos_3.32.8-stable.zip -d ~/development

建议路径为 ~/development/flutter

✅ 步骤 2:添加环境变量

打开终端,编辑 ~/.zshrc 文件:

bash 复制代码
nano ~/.zshrc

在末尾添加:

bash 复制代码
export PATH="$PATH:$HOME/development/flutter/bin"

保存并刷新:

bash 复制代码
source ~/.zshrc

✅ 三、验证安装

在终端运行:

bash 复制代码
flutter doctor

确保各项依赖都准备好(Android SDK、Xcode、模拟器等),若有报错按提示安装。

💡 四、创建并运行项目

bash 复制代码
flutter create my_app
cd my_app
flutter run -d chrome     # 运行 Web
flutter run -d macos      # 运行桌面

也可使用 VS Code 启动调试(需安装 Flutter 插件)。

🧠 五、遇到的常见问题及解决

❗ 问题:Web 模式字体加载失败,文字不显示

bash 复制代码
Failed to load font Noto Sans HK ...

📌 原因:

Flutter Web 默认会从 Google Fonts 加载字体(如 Noto Sans、Roboto 等)。在一些网络环境(如公司内网)中,访问 fonts.gstatic.com 失败,导致文字内容不显示。

✅ 解决方法:

MaterialApp 中添加字体配置,使用系统字体避免网络加载:

php 复制代码
theme: ThemeData(
  fontFamily: 'Arial',
  textTheme: const TextTheme(
    bodyMedium: TextStyle(
      fontFamilyFallback: ['PingFang SC', 'Helvetica', 'sans-serif'],
      color: Colors.black,
    ),
  ),
)

✅ 常用命令速查

bash 复制代码
flutter doctor            # 检查环境
flutter create my_app     # 创建项目
flutter run -d chrome     # 运行 Web 应用
flutter run -d macos      # 运行桌面
flutter devices           # 查看设备列表

如你也准备尝试 Flutter,建议直接从 Web 或桌面版入手,不需要配置模拟器也能快速看到效果。

后续我会继续记录 Flutter 的组件开发、状态管理和平台适配部分,欢迎关注 👋

相关推荐
前端·柱子6 小时前
q-floodfill白边锯齿?一招搞定抗锯齿边缘问题
前端·html·canva可画
葡萄城技术团队7 小时前
SpreadJS V19.2新特性揭秘:功能区键盘提示
前端
计算机魔术师7 小时前
AI 幻觉导致的错误情报险些引发美军拦截中国船只
前端
万物智能7 小时前
SARADC模数转换—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
前端·后端
志尊宝7 小时前
Vue3 零基础每日笔记(037):动手封装 useMouse 与 useWindowSize——事件监听的标准模板
前端·javascript·vue.js·笔记·html5
aixingpan8 小时前
aixingpan.cn API开发文档:api_docs_bichart_natalvssolar_return2接口指南
前端·php
八荒启·交互动画8 小时前
Web特效019-Web特效的定义与边界核心算法手写一遍:先跑起来,再谈高级效果
前端·webgl·网页特效·八荒启-交互动画·八荒启
晨枫阳9 小时前
Keycloak 授权体系详解:资源、策略、权限
前端
志尊宝9 小时前
Vue3 零基础每日笔记(047):动态路由与路由参数——:id 传参、query 传参、props 解耦
前端·javascript·vue.js·笔记·html5
黑马程序员毕设10 小时前
基于微信小程序的二手交易平台设计与实现报告
前端·人工智能·spring boot·后端·考研