学习Flutter的第一天(开始使用)

1. 开始使用

1.1安装Flutter

1.1.1 准备

1、最新的系统

2、最新的xcode

3、安装brew https://brew.sh/

4、安装chrome浏览器

1.1.2 下载sdk

执行命令,查看要下载的sdk版本

uname -a
Darwin macdeMacBook-Pro-2.local 20.2.0 Darwin Kernel Version 20.2.0: Wed Dec  2 20:39:59 PST 2020; root:xnu-7195.60.75~1/RELEASE_X86_64 x86_64

根据版本下载对应的包

3.3.4   x64 eb6d86e 2022/10/6   2.18.2
3.3.4   arm64   eb6d86e 2022/10/6   2.18.2

1.1.3 配置环境变量

把下面的配置,分别复制到文件中

vim ~/.bash_profile 

vim ~/.zshrc 
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=/Users/mac/Documents/flutter/bin:$PATH

执行命令,使之生效

source ~/.bash_profile 

source ~/.zshrc 

查看是否成功

flutter --version

1.1.4 fultter升级

Flutter 有 3 个发布渠道,分别是 stablebetamaster。我们推荐使用 stable 渠道除非你需要体验最新更新的 Flutter 特性。

flutter channel

要切换到其它渠道,使用 flutter channel <channel-name>。当你切换了渠道以后,使用 flutter upgrade 下载 Flutter SDK 和依赖的 packages。例如:

flutter channel stable
flutter upgrade

1.2 遇到的问题

1.2.1 执行flutter doctor时,卡住不动

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

1.2.2 执行flutter upgrade时,卡住不动

删除缓存文件夹中的内容

/Users/mac/Documents/flutter/bin/cache

1.2.3 需要java11

在运行到android手机上的时候,需要java11。

https://www.oracle.com/java/technologies/downloads/#java11-mac

安装完成后,配置项目文件。

项目目录 -> android -> gradle.properties

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
// 新增下面的路径(mac)
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-11.0.16.1.jdk/Contents/Home
// window
# org.gradle.java.home=D\:\\Program Files\\Java\\jdk-11.0.6

项目目录 -> android -> app -> build.gradle

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }

    kotlinOptions {
        jvmTarget = '11'
    }

1.3 创建项目

flutter create my_app
cd my_app
flutter run

// 项目项目权限
chmod -R 777 my_app

// 或者直接运行
// flutter run -d chrome

// run后,会检查可运行设备
Multiple devices found:
macOS (desktop) • macos  • darwin-x64     • macOS 11.1 20C69 darwin-x64
Chrome (web)    • chrome • web-javascript • Google Chrome 102.0.5005.61
[1]: macOS (macos)
[2]: Chrome (chrome)
Please choose one (To quit, press "q/Q"): 2

1.4 项目目录

文件或目录 说明
.dart_tool 记录了一些dart工具库所在的位置和信息
.idea android studio 是基于idea开发的,.idea 记录了项目的一些文件的变更记录
lib lib文件夹内存放我们的dart语音代码
android Android项目文件夹
ios iOS项目文件夹
linux Linux项目文件夹
macos macos项目文件夹
web web项目文件夹
windows windows项目文件夹
test 用于存放我们的测试代码
build 编译后的文件目录
.gitignore git忽略配置文件
.metadata IDE 用来记录某个 Flutter 项目属性的的隐藏文件
pubspec.lock 当前项目依赖所生成的文件
pubspec.yaml 当前项目的一些配置文件,包括依赖的第三方库、图片资源文件等
项目名.iml 工程文件的本地路径配置
README.md READEME文件
analysis_options.yaml 分析dart语法的文件,老项目升级新项目有警告信息,内容可以注释或者删掉

1.5 项目入口文件

在lib中,main.dart

// 需要引入包
import 'package:flutter/material.dart';

//入口
void main() {
  runApp(const Center(
    child: Text(
      "hello nihao",
      textDirection: TextDirection.ltr,
      style: TextStyle(color: Colors.red, fontSize: 40),
    ),
  ));
}

1.6 调试

1.6.1 查看连接的设备

flutter devices 在任何目录下都可以执行

3 connected devices:

21091116AC (mobile) • KR79W4GMM7EAKRQG • android-arm64  • Android 12 (API 31)
macOS (desktop)     • macos            • darwin-x64     • macOS 11.1 20C69
darwin-x64
Chrome (web)        • chrome           • web-javascript • Google Chrome
106.0.5249.103

1.6.2 运行

flutter clean 清除build

flutter run 只能在项目对应的目录下运行

flutter run -d all 所有设备都运行

flutter run -d 指定设备运行

本地服务运行,可用手机访问

flutter run -d web-server --web-port 8989

flutter run -d web-server --web-hostname 192.168.31.191 --web-port 8989

192.168.31.191 : 自己本地的ip , 启动后,在手机上浏览器中,直接输入 192.168.31.191:8989 即可访问

常用快捷键
r键:热加载,重新加载
R键:热重启项目
p键:显示网格,可以很好的掌握布局情况
o键:切换android 和 ios预览模式
q键:退出调试预览模式

1.6.3 vscode

在vscode中安装插件

flutter
dart

代码提示工具

Flutter Widget Snippets
Awesome Flutter Snippets

1.7 打包

Android 打包

flutter build apk --no-shrink

web打包

flutter build web
// 不推荐使用第一种, 上面打出来的包,内容过多,如果是pc端使用,可以用上面的方式
flutter build web --web-renderer html
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容