Flutter环境搭建及版本管理

news2024/11/25 22:43:30

前言

Flutter已成为移动应用开发的主流选择,其跨平台优势日益凸显,使学习Flutter成为现代开发者的必备技能。越来越多的公司和团队选择Flutter构建应用,这为开发者提供了更广阔的就业机会和职业发展空间。Flutter的热度源自其强大的特性和生态系统支持,包括快速的开发周期、高性能的渲染引擎、丰富的UI组件和易学的Dart编程语言。此外,Flutter不仅适用于移动应用开发,还可用于桌面和Web应用,为开发者提供了更多创作空间和机会。学习Flutter能够帮助开发者快速掌握跨平台开发技能,促进职业发展,助力在竞争激烈的市场中脱颖而出,实现个人的技术和职业目标。

Flutter环境搭建

俗话说的好,万层高楼平地起,学习Flutter首先第一步就是环境的搭建,那么这里第一课就是学习搭建Flutter环境,因为我们开发都提倡使用Mac开发,所以本篇文章主要是围绕Mac系统搭建Flutter环境。其他系统可以参考官方教学或者博文文章自行学习。

1、查看本机环境配置

  1. 查看本机环境文件
  • 命令查看:
echo $SHELL

结果:

image.png

  • 直接打开终端,看顶部标题如果是zsh,如上图红圈1所示,就是说明环境配置文件是那个了。
  1. 查看本机环境配置

在 macOS 系统中,使用的是 bash 终端:

cat ~/.bash_profile

使用的是 zsh 终端:

cat ~/.zshrc

执行命令后,就能看到当前环境配置了。如下图

image.png

2、修改本机环境配置

  • 打开环境变量文件

bash 终端:

vim ~/.bash_profile

zsh 终端:

vim ~/.zshrc
  • 修改终端编辑状态

英文键盘状态下按 “i”切换到可编辑状态。

  • 修改环境变量设置:

在配置文件中添加、修改或删除您需要的环境变量设置。

  • 保存并退出编辑器:

首先按“esc”键退出编辑状态, 在按“:wq”+回车,进行保存修改并退出编辑器。

  • 生效配置文件

bash 终端则运行:

source ~/.bash_profile      

zsh 终端 则运行:

source ~/.zshrc 

通过这些步骤,您可以切换终端使用的环境变量文件,并确保终端在启动时加载所需的环境变量设置。

3、下载Flutter SDK

  • SDK 下载链接

https://flutter.cn/docs/release/archive?tab=macos

  • 解压SDK放置位置

如:Users/zhouweilong/fvm/versions/3.10.0

4、配置Flutter环境配置

  • 执行命令 vim ~/.bash_profile or vim ~/.zshrc 打开配置文件。

  • 点击“i” 进入编辑状态

  • 在配置文件中加上Flutter sdk配置信息

export PATH=$HOME/fvm/versions/3.10.0/bin:$PATH
  • 按esc退出编辑状态,输入“:wq”保存退出。

  • 执行命令“source ~/.bash_profile or source ~/.zshrc”让配置生效。

  • 执行“flutter --version”如下

image.png

代表flutter环境配置好了。

5、重点提醒

国内的网络环境下可能需要对 Flutter 工具进行一些额外配置,请参考文档 在中国网络环境下使用 Flutter。

根据文档可知需而外配置2项

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

Flutter版本管理

1、为什么要版本管理

  • 多个项目和团队协作

在开发多个 Flutter 项目或与其他开发者协作的情况下,每个项目可能需要使用不同的 Flutter 版本。通过版本管理,您可以为每个项目指定特定的 Flutter 版本,从而确保团队成员在同一开发环境中工作,减少因 Flutter 版本不一致而导致的问题。

  • 测试和回滚

当您的应用程序在新版本的 Flutter 上运行时出现问题时,版本管理可以使您更轻松地回滚到之前的稳定版本,从而减少测试和修复问题所需的时间和精力。

  • 新功能和实验性特性

Flutter 的新版本可能包含实验性特性或试验性功能,这些功能可能对您的应用程序产生积极或负面的影响。版本管理可以帮助您在开发过程中轻松切换和测试这些功能,以便您可以更好地了解它们,并确定是否要在应用程序中使用它们。

  • 学习开源项目

当我们在github或者其他地方下载值得学习的项目时,会发现项目使用的Flutter版本不一样,来回切换环境配置非常麻烦。所以版本管理可以有效的解决这个问题。

综上所述,版本管理对于确保 Flutter 应用程序的稳定性、兼容性和可维护性非常重要。它可以帮助开发者更好地管理 Flutter 的使用和更新,并确保团队之间的协作顺畅。

2、FVM 版本管理

  • FVM是什么

官方:https://fvm.app/

  • FVM安装

Mac使用brew进行安装 ,其他系统安装具体链接:点击这里

brew tap leoafarias/fvm
brew install fvm

确定是否安装成功

image.png

  • FVM环境配置

官方:https://fvm.app/documentation/getting-started/configuration

FVM_CACHE_PATH:指定Flutter版本的缓存路径。

FVM_GIT_CACHE:全局启用/禁用 git 缓存 ( true/ false)。

FVM_GIT_CACHE_PATH:设置本地git引用缓存的路径。

FVM_FLUTTER_URL:定义 Flutter 存储库 git URL。

FVM_PRIVILEDGED_ACCESS:启用/禁用 FVM 的特权访问 ( true/ false)。

案例:

export FVM_FLUTTER_URL=https://github.com/flutter/flutter.git
export FVM_CACHE_PATH=$HOME/fvm
export PATH=$PATH:~/fvm/default/bin
  • 执行 fvm use 3.10.0

image.png

  • 全局配置Flutter版本
fvm global 3.0.5

//环境变量配置
export PATH=$PATH:~/fvm/default/bin

执行命令后,全局flutter使用版本就变成了3.0.5,不用修改配置文件了

3、如何在项目中使用FVM切换版本

  • 打开案例项目flutter_project ,执行 fvm use ,项目根目录会出现一个.fvm文件夹

image.png

  • 我们可以复制flutter_sdk全局路径配置flutter使用路径,方便fvm切换版本

第一步:
image.png

第二步:

image.png

第三步:

image.png

配置完后,直接使用fvm use xxx,xxx就是flutter的版本号,执行命令后,项目就会自动切换到xxx版本上了,是不是很方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1554500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

某红队面试经验

背景 据小道消息说今年的国护疑似提前到了五月份,所以最近也是HW面试的一个高峰期啊,这里分享一下上次的红队面试问题 面试问答 问:Java 反序列化的原理? 答:如果Java应用对用户输入,即不可信数据做了反…

Docker命令及部署Java项目

文章目录 简介Docker镜像镜像列表查找镜像拉取镜像删除镜像镜像标签 Docker容器容器启动容器查看容器停止和重启后台模式和进入强制停止容器清理停止的容器容器错误日志容器别名及操作 Docker部署Java项目 简介 Docker是一种容器化技术,可以帮助开发者轻松打包应用…

大话设计模式之代理模式

代理模式(Proxy Pattern)是一种结构型设计模式,它允许通过代理对象控制对另一个对象的访问。代理对象充当客户端和实际对象之间的中介,客户端通过代理对象间接访问实际对象,从而可以在访问控制、缓存、延迟加载等方面提…

yolo系列热力图,即插即用。

原地址:https://github.com/z1069614715/objectdetection_script/tree/master/yolo-gradcam

反应式编程(二)什么是粘包、拆包?如何解决?

目录 一、粘包、拆包介绍1.1 什么是 TCP 协议?1.2 什么是粘包、拆包?1.3 粘包、拆包的四种情况1.4 粘包、拆包的原因1)TCP协议中的滑动窗口机制2)传输层的 MSS 与链路层的 MTU3)TCP协议中的 Nagle 算法4)应…

git配置SSH 密钥

git配置SSH 密钥 1.window配置ssh1.安装ssh2.安装 Git(安装教程参见安装Git)并保证版本大于 1.9![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e59f4e16b83c45649f1d9d7bd6bf92c0.png)3.SSH 尽量保持最新,6.5之前的版本由于使用…

【文献分享】PyPlume程序:快速海洋表面传输评估的工具包

PyPlume: A toolkit for rapid ocean surface transport assessments PyPlume:快速海洋表面传输评估的工具包 PyPlume 是一个 Python 工具箱和管道,用于统一从模型和观测加载二维洋流矢量场、模拟轨迹模型以及分析和可视化粒子轨迹的过程。提供了 Ju…

python 如何安装redis

一、redis介绍 redis是一个非关系型的缓存数据库,因为是缓存所以redis的速度会非常快。redis主要是依靠键值对进行存储,类似于java的map、python的字典。redis支持许多的语言,如java、C、C、C#、PHP、JavaScript、Perl、python等。 二、pyt…

基于SSM的高校普法系统(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的高校普法系统(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring Spri…

redis 的设计与实现(三)——对象

1. 前言: 在第一章节我们了解到了,redis底层所涉及的数据结构,但是这并非是离我们最近的一层,在此之上,redis实现了一层对象与我们交互。我们在本篇内容中将了解到: 对象对应的实现redis一些常用特性的实现…

物联网实战--入门篇之(三)嵌入式STM32

目录 一、Keil简介 二、工程结构 三、文件目录 四、STM32简介 五、编码风格 六、总结 一、Keil简介 Keil是一款常用的单片机开发工具,主要包含了编译、仿真、调试和开发界面(IDE),后被ARM公司收购,与其MDK-ARM合并为MDK-ARM Keil软件包…

宝塔面板操作一个服务器域名部署多个网站

此处记录IP一样,端口不一样的操作方式: 宝塔面板操作: 1、创建第一个网站: 网站名用IP地址,默认80端口。 创建好后,直接IP访问就可以了。看到自带的默认首页 2、接下来部署第二个网站: 仍然是…

Spark-Scala语言实战(7)

在之前的文章中,我们学习了如何在IDEA中导入jars包,并做了一道例题,了解了RDD。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢…

自建机房私有云吗?

大家好,我是小码哥,之前一种有没搞清楚公有云、私有云的概念,今天算是弄清楚了,这里给大家分享一下公有云、私有云的区别,以及自建机房算不算私有云! 其实私有云(Private Cloud)和公…

修复系统中缺失的VCRUNTIME140.dll文件DLL错误问题

在计算机编程中,动态链接库(DLL)是一种重要的组件,它提供了许多功能和资源供程序使用。其中,VCRuntime140.dll是Visual C Redistributable Packages的一部分,它包含了运行C应用程序所需的运行时库。本文将详…

双端队列deque和vector以及list的优缺点比较

参考:https://blog.csdn.net/TWRenHao/article/details/123483085 一、vector vector具体用法详情点这里 优点: 支持随机访问 CPU高速环缓存命中率很高 缺点: 空间不够,便需要增容。而增容代价很大,还存在一定的空间浪费。 头部…

DSVPN实验报告

一、分析要求 1. 配置R5为ISP,只能进行IP地址配置,所有地址均配为公有IP地址。 - 在R5上,将接口配置为公有IP地址,并确保只进行了IP地址配置。 2. R1和R5之间使用PPP的PAP认证,R5为主认证方;R2于R5之间…

DC-5靶机

一.环境搭建 1.下载地址 靶机下载地址:https://download.vulnhub.com/dc/DC-5.zip 2.虚拟机配置 切换nat模式,有问题全选重试和是,打到这了,我感觉这个配置我都不用写了,启动靶机如下图所示即可 二.开始渗透 1.信…

Unity | 工具类-UV滚动

一、内置渲染管线Shader Shader"Custom/ImageRoll" {Properties {_MainTex ("Main Tex", 2D) "white" {}_Width ("Width", float) 0.5_Distance ("Distance", float) 0}SubShader {Tags {"Queue""Trans…

ARMv8-A架构下的外部debug模型(external debug)简介

Armv8-A external debug Armv8-A debug模型一,外部调试 External debug 简介二,Debug state2.1 Debug state的进入与退出 三,DAP,Debug Access Port3.1 EDSCR, External Debug Status and Control Register调试状态标识&#xff0…